Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(669)

Unified Diff: src/interpreter/bytecode-register-optimizer.cc

Issue 2894293003: Save/restore only live registers in the generator suspend/resume. (Closed)
Patch Set: Fix comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/interpreter/bytecode-register-optimizer.cc
diff --git a/src/interpreter/bytecode-register-optimizer.cc b/src/interpreter/bytecode-register-optimizer.cc
index 859f0e18285bf86589ea731a5c56dfa7f08fd48c..850d4bd377eb380708bb7299e0eeb08ff957a522 100644
--- a/src/interpreter/bytecode-register-optimizer.cc
+++ b/src/interpreter/bytecode-register-optimizer.cc
@@ -246,6 +246,8 @@ void BytecodeRegisterOptimizer::Flush() {
}
equivalent->MoveToNewEquivalenceSet(NextEquivalenceId(), true);
}
+ } else if (reg_info->GetEquivalent() == reg_info) {
+ reg_info->MoveToNewEquivalenceSet(NextEquivalenceId(), true);
rmcilroy 2017/06/01 10:44:44 Why do these need moved here? If it's because they
Jarin 2017/06/01 12:48:22 Yes, it's because they do not count as materialize
}
}
@@ -304,6 +306,7 @@ BytecodeRegisterOptimizer::GetMaterializedEquivalentNotAccumulator(
void BytecodeRegisterOptimizer::Materialize(RegisterInfo* info) {
if (!info->materialized()) {
RegisterInfo* materialized = info->GetMaterializedEquivalent();
+ DCHECK_NOT_NULL(materialized);
OutputRegisterTransfer(materialized, info);
}
}

Powered by Google App Engine
This is Rietveld 408576698