| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index 1c1bcd848f6ae712d7848ffbd666c31ee973994e..3e3b87951d141ae3e3e736574f316bab83aae5d2 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -945,6 +945,14 @@ struct RepresentationSelectionPhase {
|
| }
|
| };
|
|
|
| +struct LoopExitEliminationPhase {
|
| + static const char* phase_name() { return "loop exit elimination"; }
|
| +
|
| + void Run(PipelineData* data, Zone* temp_zone) {
|
| + LoopPeeler::EliminateLoopExits(data->graph(), temp_zone);
|
| + }
|
| +};
|
| +
|
| struct EarlyOptimizationPhase {
|
| static const char* phase_name() { return "early optimization"; }
|
|
|
| @@ -1433,6 +1441,10 @@ bool PipelineImpl::CreateGraph() {
|
| Run<TypedLoweringPhase>();
|
| RunPrintAndVerify("Lowered typed");
|
|
|
| + // Eventually, loop peeling will be done here.
|
| + Run<LoopExitEliminationPhase>();
|
| + RunPrintAndVerify("Loop exits eliminated", true);
|
| +
|
| if (FLAG_turbo_stress_loop_peeling) {
|
| Run<StressLoopPeelingPhase>();
|
| RunPrintAndVerify("Loop peeled");
|
|
|