| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index 2e9ef98b657cf4d4b91bf710660c6e1324371052..22a344f342acbfce544e3bc89902bf4a686eac24 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -185,11 +185,12 @@ Handle<Code> Pipeline::GenerateCode() {
|
|
|
| VerifyAndPrintGraph(&graph, "Initial untyped");
|
|
|
| + JSContextSpecializer spec(info(), &jsgraph, context_node);
|
| +
|
| if (FLAG_context_specialization) {
|
| SourcePositionTable::Scope pos_(&source_positions,
|
| SourcePosition::Unknown());
|
| // Specialize the code to the context as aggressively as possible.
|
| - JSContextSpecializer spec(info(), &jsgraph, context_node);
|
| spec.SpecializeToContext();
|
| VerifyAndPrintGraph(&graph, "Context specialized");
|
| }
|
| @@ -224,6 +225,7 @@ Handle<Code> Pipeline::GenerateCode() {
|
|
|
| Handle<Code> code = Handle<Code>::null();
|
| if (SupportedTarget()) {
|
| + Linkage linkage(info());
|
| {
|
| // Lower any remaining generic JSOperators.
|
| PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH,
|
| @@ -231,7 +233,7 @@ Handle<Code> Pipeline::GenerateCode() {
|
| SourcePositionTable::Scope pos(&source_positions,
|
| SourcePosition::Unknown());
|
| MachineOperatorBuilder machine(zone());
|
| - JSGenericLowering lowering(info(), &jsgraph, &machine);
|
| + JSGenericLowering lowering(&jsgraph, &spec, &linkage, &machine);
|
| GraphReducer graph_reducer(&graph);
|
| graph_reducer.AddReducer(&lowering);
|
| graph_reducer.ReduceGraph();
|
| @@ -246,7 +248,7 @@ Handle<Code> Pipeline::GenerateCode() {
|
| {
|
| // Generate optimized code.
|
| PhaseStats codegen_stats(info(), PhaseStats::CODEGEN, "codegen");
|
| - Linkage linkage(info());
|
| +
|
| code = GenerateCode(&linkage, &graph, schedule, &source_positions);
|
| info()->SetCode(code);
|
| }
|
|
|