OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler.h" | 5 #include "src/compiler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "src/ast/ast-numbering.h" | 9 #include "src/ast/ast-numbering.h" |
10 #include "src/ast/prettyprinter.h" | 10 #include "src/ast/prettyprinter.h" |
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 CanonicalHandleScope canonical(isolate); | 832 CanonicalHandleScope canonical(isolate); |
833 TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate); | 833 TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate); |
834 TRACE_EVENT0("v8", "V8.OptimizeCode"); | 834 TRACE_EVENT0("v8", "V8.OptimizeCode"); |
835 | 835 |
836 bool use_turbofan = UseTurboFan(info.get()); | 836 bool use_turbofan = UseTurboFan(info.get()); |
837 base::SmartPointer<CompilationJob> job( | 837 base::SmartPointer<CompilationJob> job( |
838 use_turbofan ? compiler::Pipeline::NewCompilationJob(info.get()) | 838 use_turbofan ? compiler::Pipeline::NewCompilationJob(info.get()) |
839 : new HCompilationJob(info.get())); | 839 : new HCompilationJob(info.get())); |
840 | 840 |
841 // TruboFan can optimize directly from existing bytecode. | 841 // TruboFan can optimize directly from existing bytecode. |
842 if (use_turbofan && info->shared_info()->HasBytecodeArray()) { | 842 if (FLAG_turbo_from_bytecode && use_turbofan && |
| 843 info->shared_info()->HasBytecodeArray()) { |
843 info->MarkAsOptimizeFromBytecode(); | 844 info->MarkAsOptimizeFromBytecode(); |
844 } | 845 } |
845 | 846 |
846 if (mode == Compiler::CONCURRENT) { | 847 if (mode == Compiler::CONCURRENT) { |
847 if (GetOptimizedCodeLater(job.get())) { | 848 if (GetOptimizedCodeLater(job.get())) { |
848 info.Detach(); // The background recompile job owns this now. | 849 info.Detach(); // The background recompile job owns this now. |
849 job.Detach(); // The background recompile job owns this now. | 850 job.Detach(); // The background recompile job owns this now. |
850 return isolate->builtins()->InOptimizationQueue(); | 851 return isolate->builtins()->InOptimizationQueue(); |
851 } | 852 } |
852 } else { | 853 } else { |
(...skipping 960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1813 MaybeHandle<Code> code; | 1814 MaybeHandle<Code> code; |
1814 if (cached.code != nullptr) code = handle(cached.code); | 1815 if (cached.code != nullptr) code = handle(cached.code); |
1815 Handle<Context> native_context(function->context()->native_context()); | 1816 Handle<Context> native_context(function->context()->native_context()); |
1816 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code, | 1817 SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code, |
1817 literals, BailoutId::None()); | 1818 literals, BailoutId::None()); |
1818 } | 1819 } |
1819 } | 1820 } |
1820 | 1821 |
1821 } // namespace internal | 1822 } // namespace internal |
1822 } // namespace v8 | 1823 } // namespace v8 |
OLD | NEW |