| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index c8ce77e00f5df4c6ada56254a687b4a4b6d31f3b..538b0d880aa256251245b5e04847e1daac2e8596 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -559,6 +559,15 @@ struct ReuseSpillSlotsPhase {
|
| };
|
|
|
|
|
| +struct CommitAssignmentPhase {
|
| + static const char* phase_name() { return "commit assignment"; }
|
| +
|
| + void Run(PipelineData* data, Zone* temp_zone) {
|
| + data->register_allocator()->CommitAssignment();
|
| + }
|
| +};
|
| +
|
| +
|
| struct PopulatePointerMapsPhase {
|
| static const char* phase_name() { return "populate pointer maps"; }
|
|
|
| @@ -990,7 +999,9 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config,
|
| os << "----- Instruction sequence before register allocation -----\n"
|
| << printable;
|
| }
|
| - DCHECK(!data->register_allocator()->ExistsUseWithoutDefinition());
|
| + if (verifier != nullptr) {
|
| + CHECK(!data->register_allocator()->ExistsUseWithoutDefinition());
|
| + }
|
| Run<AllocateGeneralRegistersPhase>();
|
| if (!data->register_allocator()->AllocationOk()) {
|
| data->set_compilation_failed();
|
| @@ -1004,6 +1015,7 @@ void Pipeline::AllocateRegisters(const RegisterConfiguration* config,
|
| if (FLAG_turbo_reuse_spill_slots) {
|
| Run<ReuseSpillSlotsPhase>();
|
| }
|
| + Run<CommitAssignmentPhase>();
|
| Run<PopulatePointerMapsPhase>();
|
| Run<ConnectRangesPhase>();
|
| Run<ResolveControlFlowPhase>();
|
|
|