| Index: runtime/vm/intermediate_language.h
|
| diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
|
| index 60f2db93e046a0e573d2f0424d8418bb7f322ea3..68a88003ae9f82908939a20774010ccc51ee3983 100644
|
| --- a/runtime/vm/intermediate_language.h
|
| +++ b/runtime/vm/intermediate_language.h
|
| @@ -610,13 +610,12 @@ class Instruction : public ZoneAllocated {
|
|
|
| explicit Instruction(intptr_t deopt_id = Isolate::kNoDeoptId)
|
| : deopt_id_(deopt_id),
|
| - lifetime_position_(-1),
|
| + lifetime_position_(kNoPlaceId),
|
| previous_(NULL),
|
| next_(NULL),
|
| env_(NULL),
|
| locs_(NULL),
|
| - inlining_id_(-1),
|
| - place_id_(kNoPlaceId) { }
|
| + inlining_id_(-1) { }
|
|
|
| virtual ~Instruction() { }
|
|
|
| @@ -889,13 +888,15 @@ FOR_EACH_ABSTRACT_INSTRUCTION(INSTRUCTION_TYPE_CHECK)
|
| };
|
|
|
| intptr_t deopt_id_;
|
| - intptr_t lifetime_position_; // Position used by register allocator.
|
| + union {
|
| + intptr_t lifetime_position_; // Position used by register allocator.
|
| + intptr_t place_id_;
|
| + };
|
| Instruction* previous_;
|
| Instruction* next_;
|
| Environment* env_;
|
| LocationSummary* locs_;
|
| intptr_t inlining_id_;
|
| - intptr_t place_id_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(Instruction);
|
| };
|
| @@ -2158,6 +2159,7 @@ class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| explicit GotoInstr(JoinEntryInstr* entry)
|
| : TemplateInstruction(Isolate::Current()->GetNextDeoptId()),
|
| + block_(NULL),
|
| successor_(entry),
|
| edge_weight_(0.0),
|
| parallel_move_(NULL) {
|
| @@ -2165,6 +2167,9 @@ class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
|
|
| DECLARE_INSTRUCTION(Goto)
|
|
|
| + BlockEntryInstr* block() const { return block_; }
|
| + void set_block(BlockEntryInstr* block) { block_ = block; }
|
| +
|
| JoinEntryInstr* successor() const { return successor_; }
|
| void set_successor(JoinEntryInstr* successor) { successor_ = successor; }
|
| virtual intptr_t SuccessorCount() const;
|
| @@ -2206,6 +2211,7 @@ class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
| virtual void PrintTo(BufferFormatter* f) const;
|
|
|
| private:
|
| + BlockEntryInstr* block_;
|
| JoinEntryInstr* successor_;
|
| double edge_weight_;
|
|
|
|
|