Index: src/interpreter/bytecode-register-optimizer.cc |
diff --git a/src/interpreter/bytecode-register-optimizer.cc b/src/interpreter/bytecode-register-optimizer.cc |
index 9d3e21b392a3429c6566216ac6c83f527d598485..01915fa4e7c0919b3cee4205b2351d3c28e556e9 100644 |
--- a/src/interpreter/bytecode-register-optimizer.cc |
+++ b/src/interpreter/bytecode-register-optimizer.cc |
@@ -416,8 +416,16 @@ void BytecodeRegisterOptimizer::GrowRegisterMap(Register reg) { |
} |
} |
+void BytecodeRegisterOptimizer::SetRegisterAllocated(Register reg) { |
rmcilroy
2017/06/07 13:01:58
nit - could you pull out the GetOrCreateRegisterIn
Jarin
2017/06/07 15:14:07
Done.
|
+ RegisterInfo* info = GetOrCreateRegisterInfo(reg); |
+ info->set_allocated(true); |
+ if (!info->materialized()) { |
+ info->MoveToNewEquivalenceSet(NextEquivalenceId(), true); |
+ } |
+} |
+ |
void BytecodeRegisterOptimizer::RegisterAllocateEvent(Register reg) { |
- GetOrCreateRegisterInfo(reg)->set_allocated(true); |
+ SetRegisterAllocated(reg); |
} |
void BytecodeRegisterOptimizer::RegisterListAllocateEvent( |
@@ -426,7 +434,7 @@ void BytecodeRegisterOptimizer::RegisterListAllocateEvent( |
int first_index = reg_list.first_register().index(); |
GrowRegisterMap(Register(first_index + reg_list.register_count() - 1)); |
for (int i = 0; i < reg_list.register_count(); i++) { |
- GetRegisterInfo(Register(first_index + i))->set_allocated(true); |
+ SetRegisterAllocated(Register(first_index + i)); |
} |
} |
} |