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

Unified Diff: runtime/vm/flow_graph_allocator.cc

Issue 504143003: Support Int32 representation for selected binary operations. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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
Index: runtime/vm/flow_graph_allocator.cc
diff --git a/runtime/vm/flow_graph_allocator.cc b/runtime/vm/flow_graph_allocator.cc
index 09716961aced5d6b0f1fb6ef11601d8c0d75561a..9259bf6b0e5c13cf1a2a4d08739d2ee80518c7b8 100644
--- a/runtime/vm/flow_graph_allocator.cc
+++ b/runtime/vm/flow_graph_allocator.cc
@@ -623,8 +623,8 @@ void FlowGraphAllocator::ProcessInitialDefinition(Definition* defn,
} else {
ConstantInstr* constant = defn->AsConstant();
ASSERT(constant != NULL);
- range->set_assigned_location(Location::Constant(constant->value()));
- range->set_spill_slot(Location::Constant(constant->value()));
+ range->set_assigned_location(Location::Constant(constant));
+ range->set_spill_slot(Location::Constant(constant));
}
AssignSafepoints(defn, range);
range->finger()->Initialize(range);
@@ -734,7 +734,7 @@ Instruction* FlowGraphAllocator::ConnectOutgoingPhiMoves(
ConstantInstr* constant = val->definition()->AsConstant();
if (constant != NULL) {
- move->set_src(Location::Constant(constant->value()));
+ move->set_src(Location::Constant(constant));
move_idx++;
continue;
}
@@ -849,7 +849,7 @@ void FlowGraphAllocator::ProcessEnvironmentUses(BlockEntryInstr* block,
ConstantInstr* constant = def->AsConstant();
if (constant != NULL) {
- locations[i] = Location::Constant(constant->value());
+ locations[i] = Location::Constant(constant);
continue;
}
@@ -912,7 +912,7 @@ void FlowGraphAllocator::ProcessMaterializationUses(
ConstantInstr* constant = def->AsConstant();
if (constant != NULL) {
- locations[i] = Location::Constant(constant->value());
+ locations[i] = Location::Constant(constant);
continue;
}
@@ -1150,9 +1150,9 @@ void FlowGraphAllocator::ProcessOneInstruction(BlockEntryInstr* block,
// TODO(vegorov): improve allocation when we have enough registers to keep
// constants used in the loop in them.
if (HasOnlyUnconstrainedUses(range)) {
- const Object& value = def->AsConstant()->value();
- range->set_assigned_location(Location::Constant(value));
- range->set_spill_slot(Location::Constant(value));
+ ConstantInstr* constant_instr = def->AsConstant();
+ range->set_assigned_location(Location::Constant(constant_instr));
+ range->set_spill_slot(Location::Constant(constant_instr));
range->finger()->Initialize(range);
ConvertAllUses(range);

Powered by Google App Engine
This is Rietveld 408576698