| 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 <memory> | 8 #include <memory> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 #include "src/compiler/js-inlining-heuristic.h" | 41 #include "src/compiler/js-inlining-heuristic.h" |
| 42 #include "src/compiler/js-intrinsic-lowering.h" | 42 #include "src/compiler/js-intrinsic-lowering.h" |
| 43 #include "src/compiler/js-native-context-specialization.h" | 43 #include "src/compiler/js-native-context-specialization.h" |
| 44 #include "src/compiler/js-typed-lowering.h" | 44 #include "src/compiler/js-typed-lowering.h" |
| 45 #include "src/compiler/jump-threading.h" | 45 #include "src/compiler/jump-threading.h" |
| 46 #include "src/compiler/live-range-separator.h" | 46 #include "src/compiler/live-range-separator.h" |
| 47 #include "src/compiler/load-elimination.h" | 47 #include "src/compiler/load-elimination.h" |
| 48 #include "src/compiler/loop-analysis.h" | 48 #include "src/compiler/loop-analysis.h" |
| 49 #include "src/compiler/loop-peeling.h" | 49 #include "src/compiler/loop-peeling.h" |
| 50 #include "src/compiler/loop-variable-optimizer.h" | 50 #include "src/compiler/loop-variable-optimizer.h" |
| 51 #include "src/compiler/machine-graph-verifier.h" |
| 51 #include "src/compiler/machine-operator-reducer.h" | 52 #include "src/compiler/machine-operator-reducer.h" |
| 52 #include "src/compiler/memory-optimizer.h" | 53 #include "src/compiler/memory-optimizer.h" |
| 53 #include "src/compiler/move-optimizer.h" | 54 #include "src/compiler/move-optimizer.h" |
| 54 #include "src/compiler/osr.h" | 55 #include "src/compiler/osr.h" |
| 55 #include "src/compiler/pipeline-statistics.h" | 56 #include "src/compiler/pipeline-statistics.h" |
| 56 #include "src/compiler/redundancy-elimination.h" | 57 #include "src/compiler/redundancy-elimination.h" |
| 57 #include "src/compiler/register-allocator-verifier.h" | 58 #include "src/compiler/register-allocator-verifier.h" |
| 58 #include "src/compiler/register-allocator.h" | 59 #include "src/compiler/register-allocator.h" |
| 59 #include "src/compiler/schedule.h" | 60 #include "src/compiler/schedule.h" |
| 60 #include "src/compiler/scheduler.h" | 61 #include "src/compiler/scheduler.h" |
| (...skipping 1681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1742 DCHECK_NOT_NULL(data->graph()); | 1743 DCHECK_NOT_NULL(data->graph()); |
| 1743 | 1744 |
| 1744 if (data->schedule() == nullptr) Run<ComputeSchedulePhase>(); | 1745 if (data->schedule() == nullptr) Run<ComputeSchedulePhase>(); |
| 1745 TraceSchedule(data->info(), data->schedule()); | 1746 TraceSchedule(data->info(), data->schedule()); |
| 1746 | 1747 |
| 1747 if (FLAG_turbo_profiling) { | 1748 if (FLAG_turbo_profiling) { |
| 1748 data->set_profiler_data(BasicBlockInstrumentor::Instrument( | 1749 data->set_profiler_data(BasicBlockInstrumentor::Instrument( |
| 1749 info(), data->graph(), data->schedule())); | 1750 info(), data->graph(), data->schedule())); |
| 1750 } | 1751 } |
| 1751 | 1752 |
| 1753 if (FLAG_turbo_verify_machine_graph) { |
| 1754 Zone temp_zone(data->isolate()->allocator()); |
| 1755 MachineGraphVerifier::Run(data->graph(), data->schedule(), linkage, |
| 1756 &temp_zone); |
| 1757 } |
| 1758 |
| 1752 data->InitializeInstructionSequence(call_descriptor); | 1759 data->InitializeInstructionSequence(call_descriptor); |
| 1753 | 1760 |
| 1754 data->InitializeFrameData(call_descriptor); | 1761 data->InitializeFrameData(call_descriptor); |
| 1755 // Select and schedule instructions covering the scheduled graph. | 1762 // Select and schedule instructions covering the scheduled graph. |
| 1756 Run<InstructionSelectionPhase>(linkage); | 1763 Run<InstructionSelectionPhase>(linkage); |
| 1757 | 1764 |
| 1758 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { | 1765 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { |
| 1759 AllowHandleDereference allow_deref; | 1766 AllowHandleDereference allow_deref; |
| 1760 TurboCfgFile tcf(isolate()); | 1767 TurboCfgFile tcf(isolate()); |
| 1761 tcf << AsC1V("CodeGen", data->schedule(), data->source_positions(), | 1768 tcf << AsC1V("CodeGen", data->schedule(), data->source_positions(), |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1942 data->DeleteRegisterAllocationZone(); | 1949 data->DeleteRegisterAllocationZone(); |
| 1943 } | 1950 } |
| 1944 | 1951 |
| 1945 CompilationInfo* PipelineImpl::info() const { return data_->info(); } | 1952 CompilationInfo* PipelineImpl::info() const { return data_->info(); } |
| 1946 | 1953 |
| 1947 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } | 1954 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } |
| 1948 | 1955 |
| 1949 } // namespace compiler | 1956 } // namespace compiler |
| 1950 } // namespace internal | 1957 } // namespace internal |
| 1951 } // namespace v8 | 1958 } // namespace v8 |
| OLD | NEW |