Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 7937daf1bc8c65361fcbf322200fe577dad6d9ba..706e4f73352631ad4c290711feb4169a296319d3 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -16,11 +16,13 @@ |
#include "src/compiler/js-generic-lowering.h" |
#include "src/compiler/js-inlining.h" |
#include "src/compiler/js-typed-lowering.h" |
+#include "src/compiler/machine-operator-reducer.h" |
#include "src/compiler/phi-reducer.h" |
#include "src/compiler/register-allocator.h" |
#include "src/compiler/schedule.h" |
#include "src/compiler/scheduler.h" |
#include "src/compiler/simplified-lowering.h" |
+#include "src/compiler/simplified-operator-reducer.h" |
#include "src/compiler/typer.h" |
#include "src/compiler/verifier.h" |
#include "src/hydrogen.h" |
@@ -247,15 +249,20 @@ Handle<Code> Pipeline::GenerateCode() { |
} |
{ |
// Lower changes that have been inserted before. |
- PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH, |
+ PhaseStats lowering_stats(info(), PhaseStats::OPTIMIZATION, |
"change lowering"); |
SourcePositionTable::Scope pos(&source_positions, |
SourcePosition::Unknown()); |
Linkage linkage(info()); |
MachineOperatorBuilder machine(zone()); |
+ SimplifiedOperatorReducer simple_reducer(&jsgraph, &machine); |
ChangeLowering lowering(&jsgraph, &linkage, &machine); |
+ MachineOperatorReducer mach_reducer(&graph); |
GraphReducer graph_reducer(&graph); |
+ // TODO(titzer): Figure out if we should run all reducers at once here. |
+ graph_reducer.AddReducer(&simple_reducer); |
graph_reducer.AddReducer(&lowering); |
+ graph_reducer.AddReducer(&mach_reducer); |
graph_reducer.ReduceGraph(); |
VerifyAndPrintGraph(&graph, "Lowered changes"); |