Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 50846d6e81f6c03c69fa4e2b40c33f8e0b93a96e..415fd5be3d55255c2eeb9143c2aae9cc22418cf1 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -1002,8 +1002,9 @@ struct OptimizeMovesPhase { |
struct FrameElisionPhase { |
static const char* phase_name() { return "frame elision"; } |
- void Run(PipelineData* data, Zone* temp_zone) { |
- FrameElider(data->sequence()).Run(); |
+ void Run(PipelineData* data, Zone* temp_zone, |
+ const CallDescriptor* descriptor) { |
+ FrameElider(data->sequence()).Run(descriptor); |
} |
}; |
@@ -1484,12 +1485,6 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config, |
Run<MergeSplintersPhase>(); |
} |
- // We plan to enable frame elision only for stubs and bytecode handlers. |
- if (FLAG_turbo_frame_elision && info()->IsStub()) { |
- Run<LocateSpillSlotsPhase>(); |
- Run<FrameElisionPhase>(); |
- } |
- |
Run<AssignSpillSlotsPhase>(); |
Run<CommitAssignmentPhase>(); |
@@ -1500,6 +1495,9 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config, |
Run<OptimizeMovesPhase>(); |
} |
+ Run<LocateSpillSlotsPhase>(); |
+ Run<FrameElisionPhase>(descriptor); |
+ |
if (FLAG_trace_turbo_graph) { |
OFStream os(stdout); |
PrintableInstructionSequence printable = {config, data->sequence()}; |