OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/pipeline.h" | 5 #include "src/compiler/pipeline.h" |
6 | 6 |
7 #include <fstream> // NOLINT(readability/streams) | 7 #include <fstream> // NOLINT(readability/streams) |
8 #include <sstream> | 8 #include <sstream> |
9 | 9 |
10 #include "src/base/platform/elapsed-timer.h" | 10 #include "src/base/platform/elapsed-timer.h" |
11 #include "src/bootstrapper.h" // TODO(mstarzinger): Only temporary. | |
12 #include "src/compiler/ast-graph-builder.h" | 11 #include "src/compiler/ast-graph-builder.h" |
13 #include "src/compiler/ast-loop-assignment-analyzer.h" | 12 #include "src/compiler/ast-loop-assignment-analyzer.h" |
14 #include "src/compiler/basic-block-instrumentor.h" | 13 #include "src/compiler/basic-block-instrumentor.h" |
15 #include "src/compiler/change-lowering.h" | 14 #include "src/compiler/change-lowering.h" |
16 #include "src/compiler/code-generator.h" | 15 #include "src/compiler/code-generator.h" |
17 #include "src/compiler/common-operator-reducer.h" | 16 #include "src/compiler/common-operator-reducer.h" |
18 #include "src/compiler/control-flow-optimizer.h" | 17 #include "src/compiler/control-flow-optimizer.h" |
19 #include "src/compiler/control-reducer.h" | 18 #include "src/compiler/control-reducer.h" |
20 #include "src/compiler/graph-replay.h" | 19 #include "src/compiler/graph-replay.h" |
21 #include "src/compiler/graph-visualizer.h" | 20 #include "src/compiler/graph-visualizer.h" |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 if (info()->is_osr() && !FLAG_turbo_osr) { | 829 if (info()->is_osr() && !FLAG_turbo_osr) { |
831 // TODO(turbofan): remove this flag and always handle OSR | 830 // TODO(turbofan): remove this flag and always handle OSR |
832 info()->RetryOptimization(kOsrCompileFailed); | 831 info()->RetryOptimization(kOsrCompileFailed); |
833 return Handle<Code>::null(); | 832 return Handle<Code>::null(); |
834 } | 833 } |
835 | 834 |
836 // TODO(mstarzinger): This is just a temporary hack to make TurboFan work, | 835 // TODO(mstarzinger): This is just a temporary hack to make TurboFan work, |
837 // the correct solution is to restore the context register after invoking | 836 // the correct solution is to restore the context register after invoking |
838 // builtins from full-codegen. | 837 // builtins from full-codegen. |
839 Handle<SharedFunctionInfo> shared = info()->shared_info(); | 838 Handle<SharedFunctionInfo> shared = info()->shared_info(); |
840 if (isolate()->bootstrapper()->IsActive() || | 839 for (int i = 0; i < Builtins::NumberOfJavaScriptBuiltins(); i++) { |
841 shared->disable_optimization_reason() == | 840 Builtins::JavaScript id = static_cast<Builtins::JavaScript>(i); |
842 kBuiltinFunctionCannotBeOptimized) { | 841 Object* builtin = isolate()->js_builtins_object()->javascript_builtin(id); |
843 shared->DisableOptimization(kBuiltinFunctionCannotBeOptimized); | 842 if (*info()->closure() == builtin) return Handle<Code>::null(); |
844 return Handle<Code>::null(); | |
845 } | 843 } |
846 | 844 |
847 // TODO(dslomov): support turbo optimization of subclass constructors. | 845 // TODO(dslomov): support turbo optimization of subclass constructors. |
848 if (IsSubclassConstructor(shared->kind())) { | 846 if (IsSubclassConstructor(shared->kind())) { |
849 shared->DisableOptimization(kSuperReference); | 847 shared->DisableOptimization(kSuperReference); |
850 return Handle<Code>::null(); | 848 return Handle<Code>::null(); |
851 } | 849 } |
852 | 850 |
853 ZonePool zone_pool; | 851 ZonePool zone_pool; |
854 SmartPointer<PipelineStatistics> pipeline_statistics; | 852 SmartPointer<PipelineStatistics> pipeline_statistics; |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1197 | 1195 |
1198 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { | 1196 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { |
1199 TurboCfgFile tcf(data->isolate()); | 1197 TurboCfgFile tcf(data->isolate()); |
1200 tcf << AsC1VAllocator("CodeGen", data->register_allocator()); | 1198 tcf << AsC1VAllocator("CodeGen", data->register_allocator()); |
1201 } | 1199 } |
1202 } | 1200 } |
1203 | 1201 |
1204 } // namespace compiler | 1202 } // namespace compiler |
1205 } // namespace internal | 1203 } // namespace internal |
1206 } // namespace v8 | 1204 } // namespace v8 |
OLD | NEW |