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

Unified Diff: runtime/vm/flow_graph_compiler.cc

Issue 10825282: Put PushArgument into the environment instead of raw values. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: revert changes in deopt instructions Created 8 years, 4 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
« no previous file with comments | « runtime/vm/flow_graph_builder.cc ('k') | runtime/vm/flow_graph_compiler_x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler.cc
diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc
index b4339603ebfb4461d1755e46667d6f4334df41b4..73624e9afdab48e66c059e211c001475de623c22 100644
--- a/runtime/vm/flow_graph_compiler.cc
+++ b/runtime/vm/flow_graph_compiler.cc
@@ -45,7 +45,17 @@ RawDeoptInfo* DeoptimizationStub::CreateDeoptInfo(FlowGraphCompiler* compiler) {
// All locals between TOS and PC-marker.
const GrowableArray<Value*>& values = deoptimization_env_->values();
- // const intptr_t local_slot_count = values.length() - fixed_parameter_count;
+
+ // Assign locations to values pushed above spill slots with PushArgument.
+ intptr_t height = compiler->StackSize();
+ for (intptr_t i = 0; i < values.length(); i++) {
+ if (deoptimization_env_->LocationAt(i).IsInvalid() &&
+ !values[i]->IsConstant()) {
+ ASSERT(values[i]->AsUse()->definition()->IsPushArgument());
+ *deoptimization_env_->LocationSlotAt(i) = Location::StackSlot(height++);
+ }
+ }
+
for (intptr_t i = values.length() - 1; i >= fixed_parameter_count; i--) {
builder.AddCopy(deoptimization_env_->LocationAt(i), *values[i], slot_ix++);
}
« no previous file with comments | « runtime/vm/flow_graph_builder.cc ('k') | runtime/vm/flow_graph_compiler_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698