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); |
}; |