Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 236e7f655267e36f7aa20ced8a607a58bf2a03b1..10bbe7c1bc6d38e5b962b0646d6465b4b0e811cf 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -533,6 +533,15 @@ struct AllocateDoubleRegistersPhase { |
}; |
+struct ReuseSpillSlotsPhase { |
+ static const char* phase_name() { return "reuse spill slots"; } |
+ |
+ void Run(PipelineData* data, Zone* temp_zone) { |
+ data->register_allocator()->ReuseSpillSlots(); |
+ } |
+}; |
+ |
+ |
struct PopulatePointerMapsPhase { |
static const char* phase_name() { return "populate pointer maps"; } |
@@ -935,6 +944,7 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config, |
data->set_compilation_failed(); |
return; |
} |
+ Run<ReuseSpillSlotsPhase>(); |
Run<PopulatePointerMapsPhase>(); |
Run<ConnectRangesPhase>(); |
Run<ResolveControlFlowPhase>(); |