OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/compiler.h" | 5 #include "vm/compiler.h" |
6 | 6 |
7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
8 | 8 |
9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
10 #include "vm/block_scheduler.h" | 10 #include "vm/block_scheduler.h" |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 "Trace only optimizing compiler operations."); | 100 "Trace only optimizing compiler operations."); |
101 DEFINE_FLAG(bool, trace_bailout, false, "Print bailout from ssa compiler."); | 101 DEFINE_FLAG(bool, trace_bailout, false, "Print bailout from ssa compiler."); |
102 DEFINE_FLAG(bool, use_inlining, true, "Enable call-site inlining"); | 102 DEFINE_FLAG(bool, use_inlining, true, "Enable call-site inlining"); |
103 DEFINE_FLAG(bool, | 103 DEFINE_FLAG(bool, |
104 verify_compiler, | 104 verify_compiler, |
105 false, | 105 false, |
106 "Enable compiler verification assertions"); | 106 "Enable compiler verification assertions"); |
107 | 107 |
108 DECLARE_FLAG(bool, huge_method_cutoff_in_code_size); | 108 DECLARE_FLAG(bool, huge_method_cutoff_in_code_size); |
109 DECLARE_FLAG(bool, trace_failed_optimization_attempts); | 109 DECLARE_FLAG(bool, trace_failed_optimization_attempts); |
110 DECLARE_FLAG(bool, unbox_numeric_fields); | |
111 | |
112 static void PrecompilationModeHandler(bool value) { | |
113 if (value) { | |
114 #if defined(TARGET_ARCH_IA32) | |
115 FATAL("Precompilation not supported on IA32"); | |
116 #endif | |
117 | |
118 FLAG_background_compilation = false; | |
119 FLAG_enable_mirrors = false; | |
120 FLAG_fields_may_be_reset = true; | |
121 FLAG_interpret_irregexp = true; | |
122 FLAG_lazy_dispatchers = false; | |
123 FLAG_link_natives_lazily = true; | |
124 FLAG_optimization_counter_threshold = -1; | |
125 FLAG_polymorphic_with_deopt = false; | |
126 FLAG_precompiled_mode = true; | |
127 FLAG_reorder_basic_blocks = false; | |
128 FLAG_use_field_guards = false; | |
129 FLAG_use_cha_deopt = false; | |
130 | |
131 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME) | |
132 // Set flags affecting runtime accordingly for dart_bootstrap. | |
133 // These flags are constants with PRODUCT and DART_PRECOMPILED_RUNTIME. | |
134 FLAG_collect_code = false; | |
135 FLAG_deoptimize_alot = false; // Used in some tests. | |
136 FLAG_deoptimize_every = 0; // Used in some tests. | |
137 FLAG_load_deferred_eagerly = true; | |
138 FLAG_print_stop_message = false; | |
139 FLAG_unbox_numeric_fields = false; | |
140 FLAG_use_osr = false; | |
141 #endif | |
142 } | |
143 } | |
144 | |
145 DEFINE_FLAG_HANDLER(PrecompilationModeHandler, | |
146 precompilation, | |
147 "Precompilation mode"); | |
148 | 110 |
149 #ifndef DART_PRECOMPILED_RUNTIME | 111 #ifndef DART_PRECOMPILED_RUNTIME |
150 | 112 |
151 bool UseKernelFrontEndFor(ParsedFunction* parsed_function) { | 113 bool UseKernelFrontEndFor(ParsedFunction* parsed_function) { |
152 const Function& function = parsed_function->function(); | 114 const Function& function = parsed_function->function(); |
153 return (function.kernel_offset() > 0) || | 115 return (function.kernel_offset() > 0) || |
154 (function.kind() == RawFunction::kNoSuchMethodDispatcher) || | 116 (function.kind() == RawFunction::kNoSuchMethodDispatcher) || |
155 (function.kind() == RawFunction::kInvokeFieldDispatcher); | 117 (function.kind() == RawFunction::kInvokeFieldDispatcher); |
156 } | 118 } |
157 | 119 |
(...skipping 2162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2320 } | 2282 } |
2321 | 2283 |
2322 bool BackgroundCompiler::IsDisabled() { | 2284 bool BackgroundCompiler::IsDisabled() { |
2323 UNREACHABLE(); | 2285 UNREACHABLE(); |
2324 return true; | 2286 return true; |
2325 } | 2287 } |
2326 | 2288 |
2327 #endif // DART_PRECOMPILED_RUNTIME | 2289 #endif // DART_PRECOMPILED_RUNTIME |
2328 | 2290 |
2329 } // namespace dart | 2291 } // namespace dart |
OLD | NEW |