| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/globals.h" // Needed here to get TARGET_ARCH_XXX. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_XXX. |
| 6 | 6 |
| 7 #include "vm/flow_graph_compiler.h" | 7 #include "vm/flow_graph_compiler.h" |
| 8 | 8 |
| 9 #include "vm/bit_vector.h" | 9 #include "vm/bit_vector.h" |
| 10 #include "vm/cha.h" | 10 #include "vm/cha.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 } | 96 } |
| 97 | 97 |
| 98 | 98 |
| 99 // --noopt disables optimizer and tunes unoptimized code to run as fast | 99 // --noopt disables optimizer and tunes unoptimized code to run as fast |
| 100 // as possible. | 100 // as possible. |
| 101 DEFINE_FLAG_HANDLER(NooptModeHandler, | 101 DEFINE_FLAG_HANDLER(NooptModeHandler, |
| 102 noopt, | 102 noopt, |
| 103 "Run fast unoptimized code only."); | 103 "Run fast unoptimized code only."); |
| 104 | 104 |
| 105 | 105 |
| 106 DECLARE_FLAG(bool, lazy_dispatchers); |
| 107 DECLARE_FLAG(bool, interpret_irregexp); |
| 108 DECLARE_FLAG(bool, enable_mirrors); |
| 109 |
| 110 |
| 111 static void PrecompileModeHandler(bool value) { |
| 112 if (value) { |
| 113 NooptModeHandler(true); |
| 114 FLAG_lazy_dispatchers = false; |
| 115 FLAG_interpret_irregexp = true; |
| 116 FLAG_enable_mirrors = false; |
| 117 } |
| 118 } |
| 119 |
| 120 |
| 121 DEFINE_FLAG_HANDLER(PrecompileModeHandler, |
| 122 precompile, |
| 123 "Precompilation mode"); |
| 124 |
| 125 |
| 106 // Assign locations to incoming arguments, i.e., values pushed above spill slots | 126 // Assign locations to incoming arguments, i.e., values pushed above spill slots |
| 107 // with PushArgument. Recursively allocates from outermost to innermost | 127 // with PushArgument. Recursively allocates from outermost to innermost |
| 108 // environment. | 128 // environment. |
| 109 void CompilerDeoptInfo::AllocateIncomingParametersRecursive( | 129 void CompilerDeoptInfo::AllocateIncomingParametersRecursive( |
| 110 Environment* env, | 130 Environment* env, |
| 111 intptr_t* stack_height) { | 131 intptr_t* stack_height) { |
| 112 if (env == NULL) return; | 132 if (env == NULL) return; |
| 113 AllocateIncomingParametersRecursive(env->outer(), stack_height); | 133 AllocateIncomingParametersRecursive(env->outer(), stack_height); |
| 114 for (Environment::ShallowIterator it(env); !it.Done(); it.Advance()) { | 134 for (Environment::ShallowIterator it(env); !it.Done(); it.Advance()) { |
| 115 if (it.CurrentLocation().IsInvalid() && | 135 if (it.CurrentLocation().IsInvalid() && |
| (...skipping 1663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1779 | 1799 |
| 1780 | 1800 |
| 1781 void FlowGraphCompiler::FrameStateClear() { | 1801 void FlowGraphCompiler::FrameStateClear() { |
| 1782 ASSERT(!is_optimizing()); | 1802 ASSERT(!is_optimizing()); |
| 1783 frame_state_.TruncateTo(0); | 1803 frame_state_.TruncateTo(0); |
| 1784 } | 1804 } |
| 1785 #endif | 1805 #endif |
| 1786 | 1806 |
| 1787 | 1807 |
| 1788 } // namespace dart | 1808 } // namespace dart |
| OLD | NEW |