| Index: runtime/vm/flow_graph_compiler.cc
|
| diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
|
| index c50584fa508a11a4a644617276cef540f34b022b..9c37ed5c64d671f655508b03ed56b5043f77617c 100644
|
| --- a/runtime/vm/flow_graph_compiler.cc
|
| +++ b/runtime/vm/flow_graph_compiler.cc
|
| @@ -13,6 +13,7 @@
|
| #include "vm/debugger.h"
|
| #include "vm/deopt_instructions.h"
|
| #include "vm/exceptions.h"
|
| +#include "vm/flags.h"
|
| #include "vm/flow_graph_allocator.h"
|
| #include "vm/il_printer.h"
|
| #include "vm/intrinsifier.h"
|
| @@ -39,9 +40,6 @@ DEFINE_FLAG(int, min_optimization_counter_threshold, 5000,
|
| "The minimum invocation count for a function.");
|
| DEFINE_FLAG(int, optimization_counter_scale, 2000,
|
| "The scale of invocation count, by size of the function.");
|
| -DEFINE_FLAG(bool, polymorphic_with_deopt, true,
|
| - "Polymorphic calls can be generated so that failure either causes "
|
| - "deoptimization or falls through to a megamorphic call");
|
| DEFINE_FLAG(bool, source_lines, false, "Emit source line as assembly comment.");
|
| DEFINE_FLAG(bool, trace_inlining_intervals, false,
|
| "Inlining interval diagnostics");
|
| @@ -65,10 +63,8 @@ DECLARE_FLAG(int, reoptimization_counter_threshold);
|
| DECLARE_FLAG(int, stacktrace_every);
|
| DECLARE_FLAG(charp, stacktrace_filter);
|
| DECLARE_FLAG(bool, use_field_guards);
|
| -DECLARE_FLAG(bool, use_cha_deopt);
|
| DECLARE_FLAG(bool, use_osr);
|
| DECLARE_FLAG(bool, print_stop_message);
|
| -DECLARE_FLAG(bool, lazy_dispatchers);
|
| DECLARE_FLAG(bool, interpret_irregexp);
|
| DECLARE_FLAG(bool, link_natives_lazily);
|
| DECLARE_FLAG(bool, trace_compiler);
|
| @@ -90,7 +86,6 @@ static void PrecompilationModeHandler(bool value) {
|
| FLAG_precompilation = true;
|
|
|
| FLAG_always_megamorphic_calls = true;
|
| - FLAG_polymorphic_with_deopt = false;
|
| FLAG_optimization_counter_threshold = -1;
|
| FLAG_use_field_guards = false;
|
| FLAG_use_osr = false;
|
| @@ -103,14 +98,10 @@ static void PrecompilationModeHandler(bool value) {
|
| FLAG_load_deferred_eagerly = true;
|
| FLAG_deoptimize_alot = false; // Used in some tests.
|
| FLAG_deoptimize_every = 0; // Used in some tests.
|
| - // Precompilation finalizes all classes and thus allows CHA optimizations.
|
| - // Do not require CHA triggered deoptimization.
|
| - FLAG_use_cha_deopt = false;
|
| // Calling the PrintStopMessage stub is not supported in precompiled code
|
| // since it is done at places where no pool pointer is loaded.
|
| FLAG_print_stop_message = false;
|
|
|
| - FLAG_lazy_dispatchers = false;
|
| FLAG_interpret_irregexp = true;
|
| #ifndef PRODUCT
|
| FLAG_enable_mirrors = false;
|
| @@ -137,6 +128,17 @@ static void PrecompilationModeHandler(bool value) {
|
| // while precompilation has only one.
|
| FLAG_background_compilation = false;
|
| FLAG_collect_dynamic_function_names = true;
|
| +#if !defined(DART_PRECOMPILED_RUNTIME)
|
| + FLAG_lazy_dispatchers = false;
|
| + FLAG_polymorphic_with_deopt = false;
|
| + // Precompilation finalizes all classes and thus allows CHA optimizations.
|
| + // Do not require CHA triggered deoptimization.
|
| + FLAG_use_cha_deopt = false;
|
| +#else
|
| + COMPILE_ASSERT(!FLAG_lazy_dispatchers);
|
| + COMPILE_ASSERT(!FLAG_polymorphic_with_deopt);
|
| + COMPILE_ASSERT(!FLAG_use_cha_deopt);
|
| +#endif
|
| }
|
| }
|
|
|
|
|