| Index: src/compiler/instruction.h
|
| diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h
|
| index b42e17ba72ee28e999a9c25aa7917a9321960743..426d4cd28d20015fc2dc6d5e0aead20cebdfea12 100644
|
| --- a/src/compiler/instruction.h
|
| +++ b/src/compiler/instruction.h
|
| @@ -624,9 +624,10 @@ class BlockStartInstruction FINAL : public GapInstruction {
|
| BasicBlock::RpoNumber rpo_number() const { return rpo_number_; }
|
| BasicBlock::Id id() const { return id_; }
|
|
|
| - static BlockStartInstruction* New(Zone* zone, BasicBlock* block) {
|
| + static BlockStartInstruction* New(Zone* zone, BasicBlock::Id id,
|
| + BasicBlock::RpoNumber rpo_number) {
|
| void* buffer = zone->New(sizeof(BlockStartInstruction));
|
| - return new (buffer) BlockStartInstruction(block);
|
| + return new (buffer) BlockStartInstruction(id, rpo_number);
|
| }
|
|
|
| static BlockStartInstruction* cast(Instruction* instr) {
|
| @@ -635,10 +636,10 @@ class BlockStartInstruction FINAL : public GapInstruction {
|
| }
|
|
|
| private:
|
| - explicit BlockStartInstruction(BasicBlock* block)
|
| + BlockStartInstruction(BasicBlock::Id id, BasicBlock::RpoNumber rpo_number)
|
| : GapInstruction(kBlockStartInstruction),
|
| - id_(block->id()),
|
| - rpo_number_(block->GetRpoNumber()) {}
|
| + id_(id),
|
| + rpo_number_(rpo_number) {}
|
|
|
| BasicBlock::Id id_;
|
| BasicBlock::RpoNumber rpo_number_;
|
| @@ -799,7 +800,11 @@ class PhiInstruction FINAL : public ZoneObject {
|
| // Analogue of BasicBlock for Instructions instead of Nodes.
|
| class InstructionBlock FINAL : public ZoneObject {
|
| public:
|
| - explicit InstructionBlock(Zone* zone, const BasicBlock* block);
|
| + InstructionBlock(Zone* zone, BasicBlock::Id id,
|
| + BasicBlock::RpoNumber ao_number,
|
| + BasicBlock::RpoNumber rpo_number,
|
| + BasicBlock::RpoNumber loop_header,
|
| + BasicBlock::RpoNumber loop_end, bool deferred);
|
|
|
| // Instruction indexes (used by the register allocator).
|
| int first_instruction_index() const {
|
| @@ -943,8 +948,8 @@ class InstructionSequence FINAL {
|
|
|
| // Used by the instruction selector while adding instructions.
|
| int AddInstruction(Instruction* instr);
|
| - void StartBlock(BasicBlock* block);
|
| - void EndBlock(BasicBlock* block);
|
| + void StartBlock(BasicBlock::RpoNumber rpo);
|
| + void EndBlock(BasicBlock::RpoNumber rpo);
|
|
|
| int AddConstant(int virtual_register, Constant constant) {
|
| DCHECK(virtual_register >= 0 && virtual_register < next_virtual_register_);
|
|
|