| Index: src/compiler/register-allocator.h
|
| diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
|
| index 443232abb18f13e929b0aa2a4c7ba5def79285b2..55b4cc59633dccf4c307e39db20465eb0013ea9f 100644
|
| --- a/src/compiler/register-allocator.h
|
| +++ b/src/compiler/register-allocator.h
|
| @@ -532,16 +532,16 @@ class TopLevelLiveRange final : public LiveRange {
|
|
|
| AllocatedOperand GetSpillRangeOperand() const;
|
|
|
| - void SpillAtDefinition(Zone* zone, int gap_index,
|
| - InstructionOperand* operand);
|
| + void RecordSpillLocation(Zone* zone, int gap_index,
|
| + InstructionOperand* operand);
|
| void SetSpillOperand(InstructionOperand* operand);
|
| void SetSpillStartIndex(int start) {
|
| spill_start_index_ = Min(start, spill_start_index_);
|
| }
|
|
|
| - void CommitSpillsAtDefinition(InstructionSequence* sequence,
|
| - const InstructionOperand& operand,
|
| - bool might_be_duplicated);
|
| + void CommitSpillMoves(InstructionSequence* sequence,
|
| + const InstructionOperand& operand,
|
| + bool might_be_duplicated);
|
|
|
| // If all the children of this range are spilled in deferred blocks, and if
|
| // for any non-spilled child with a use position requiring a slot, that range
|
| @@ -576,10 +576,10 @@ class TopLevelLiveRange final : public LiveRange {
|
| return spilled_in_deferred_blocks_;
|
| }
|
|
|
| - struct SpillAtDefinitionList;
|
| + struct SpillMoveInsertionList;
|
|
|
| - SpillAtDefinitionList* spills_at_definition() const {
|
| - return spills_at_definition_;
|
| + SpillMoveInsertionList* spill_move_insertion_locations() const {
|
| + return spill_move_insertion_locations_;
|
| }
|
| void set_last_child(LiveRange* range) { last_child_ = range; }
|
| LiveRange* last_child() const { return last_child_; }
|
| @@ -594,6 +594,9 @@ class TopLevelLiveRange final : public LiveRange {
|
| splinter->SetSplinteredFrom(this);
|
| }
|
|
|
| + void MarkHasPreassignedSlot() { has_preassigned_slot_ = true; }
|
| + bool has_preassigned_slot() const { return has_preassigned_slot_; }
|
| +
|
| private:
|
| void SetSplinteredFrom(TopLevelLiveRange* splinter_parent);
|
|
|
| @@ -610,7 +613,7 @@ class TopLevelLiveRange final : public LiveRange {
|
| InstructionOperand* spill_operand_;
|
| SpillRange* spill_range_;
|
| };
|
| - SpillAtDefinitionList* spills_at_definition_;
|
| + SpillMoveInsertionList* spill_move_insertion_locations_;
|
| // TODO(mtrofin): generalize spilling after definition, currently specialized
|
| // just for spill in a single deferred block.
|
| bool spilled_in_deferred_blocks_;
|
| @@ -618,6 +621,7 @@ class TopLevelLiveRange final : public LiveRange {
|
| LiveRange* last_child_;
|
| UsePosition* last_pos_;
|
| TopLevelLiveRange* splinter_;
|
| + bool has_preassigned_slot_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TopLevelLiveRange);
|
| };
|
|
|