| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index f38065e411834e7e30fc592321ba3698d7478749..df8673797a0ce7eb888078c91291fb01951d17e6 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -454,11 +454,12 @@ Handle<Code> Pipeline::GenerateCode(Linkage* linkage, Graph* graph,
|
| }
|
|
|
| Zone* instruction_zone = schedule->zone();
|
| - InstructionSequence sequence(instruction_zone, linkage, graph, schedule);
|
| + InstructionSequence sequence(instruction_zone, graph, schedule);
|
|
|
| // Select and schedule instructions covering the scheduled graph.
|
| {
|
| - InstructionSelector selector(&sequence, schedule, source_positions);
|
| + InstructionSelector selector(linkage, &sequence, schedule,
|
| + source_positions);
|
| selector.SelectInstructions();
|
| }
|
|
|
| @@ -471,13 +472,14 @@ Handle<Code> Pipeline::GenerateCode(Linkage* linkage, Graph* graph,
|
| }
|
|
|
| // Allocate registers.
|
| + Frame frame;
|
| {
|
| int node_count = graph->NodeCount();
|
| if (node_count > UnallocatedOperand::kMaxVirtualRegisters) {
|
| linkage->info()->AbortOptimization(kNotEnoughVirtualRegistersForValues);
|
| return Handle<Code>::null();
|
| }
|
| - RegisterAllocator allocator(&sequence);
|
| + RegisterAllocator allocator(&frame, linkage->info(), &sequence);
|
| if (!allocator.Allocate()) {
|
| linkage->info()->AbortOptimization(kNotEnoughVirtualRegistersRegalloc);
|
| return Handle<Code>::null();
|
| @@ -494,7 +496,7 @@ Handle<Code> Pipeline::GenerateCode(Linkage* linkage, Graph* graph,
|
| }
|
|
|
| // Generate native sequence.
|
| - CodeGenerator generator(&sequence);
|
| + CodeGenerator generator(&frame, linkage, &sequence);
|
| Handle<Code> code = generator.GenerateCode();
|
| if (profiler_data != NULL) {
|
| #if ENABLE_DISASSEMBLER
|
|
|