Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(895)

Unified Diff: runtime/vm/intermediate_language.cc

Issue 1149713002: With --noopt run unoptimized code through optimizer, more optimizations can be done later. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: m Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language.cc
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
index bd570f7214d077ca84ed2df02dcdc898d71657dc..c5077d0f7ff4059fde57faa0d71c1e0395a8afe0 100644
--- a/runtime/vm/intermediate_language.cc
+++ b/runtime/vm/intermediate_language.cc
@@ -2950,7 +2950,8 @@ static uword TwoArgsSmiOpInlineCacheEntry(Token::Kind kind) {
void InstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Zone* zone = compiler->zone();
const ICData* call_ic_data = NULL;
- if (!FLAG_propagate_ic_data || !compiler->is_optimizing()) {
+ if (!FLAG_propagate_ic_data || !compiler->is_optimizing() ||
+ (ic_data() == NULL)) {
const Array& arguments_descriptor =
Array::Handle(zone, ArgumentsDescriptor::New(ArgumentCount(),
argument_names()));
@@ -2960,7 +2961,7 @@ void InstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
} else {
call_ic_data = &ICData::ZoneHandle(zone, ic_data()->raw());
}
- if (compiler->is_optimizing()) {
+ if (compiler->is_optimizing() && HasICData()) {
ASSERT(HasICData());
if (ic_data()->NumberOfUsedChecks() > 0) {
const ICData& unary_ic_data =
@@ -3066,7 +3067,8 @@ LocationSummary* StaticCallInstr::MakeLocationSummary(Zone* zone,
void StaticCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
const ICData* call_ic_data = NULL;
- if (!FLAG_propagate_ic_data || !compiler->is_optimizing()) {
+ if (!FLAG_propagate_ic_data || !compiler->is_optimizing() ||
+ (ic_data() == NULL)) {
const Array& arguments_descriptor =
Array::Handle(ArgumentsDescriptor::New(ArgumentCount(),
argument_names()));
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698