| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index 1202a0c9f06cb8ba4e17b65d7d64408ba72379ed..10daaefc490d6354a7a0cbc43bfbd8d341ed2526 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -979,6 +979,17 @@ struct LoopExitEliminationPhase {
|
| }
|
| };
|
|
|
| +struct GenericLoweringPrepPhase {
|
| + static const char* phase_name() { return "generic lowering prep"; }
|
| +
|
| + void Run(PipelineData* data, Zone* temp_zone) {
|
| + // Make sure we cache these code stubs.
|
| + data->jsgraph()->CEntryStubConstant(1);
|
| + data->jsgraph()->CEntryStubConstant(2);
|
| + data->jsgraph()->CEntryStubConstant(3);
|
| + }
|
| +};
|
| +
|
| struct GenericLoweringPhase {
|
| static const char* phase_name() { return "generic lowering"; }
|
|
|
| @@ -1565,9 +1576,8 @@ bool PipelineImpl::CreateGraph() {
|
| RunPrintAndVerify("Untyped", true);
|
| #endif
|
|
|
| - // Run generic lowering pass.
|
| - Run<GenericLoweringPhase>();
|
| - RunPrintAndVerify("Generic lowering", true);
|
| + // Do some hacky things to prepare generic lowering.
|
| + Run<GenericLoweringPrepPhase>();
|
|
|
| data->EndPhaseKind();
|
|
|
| @@ -1577,6 +1587,10 @@ bool PipelineImpl::CreateGraph() {
|
| bool PipelineImpl::OptimizeGraph(Linkage* linkage) {
|
| PipelineData* data = this->data_;
|
|
|
| + // Run generic lowering pass.
|
| + Run<GenericLoweringPhase>();
|
| + RunPrintAndVerify("Generic lowering", true);
|
| +
|
| data->BeginPhaseKind("block building");
|
|
|
| // Run early optimization pass.
|
|
|