Index: runtime/vm/flow_graph_builder.cc |
=================================================================== |
--- runtime/vm/flow_graph_builder.cc (revision 7951) |
+++ runtime/vm/flow_graph_builder.cc (working copy) |
@@ -59,8 +59,8 @@ |
void EffectGraphVisitor::AddInstruction(Instruction* instruction) { |
ASSERT(is_open()); |
DeallocateTempIndex(instruction->InputCount()); |
- if (instruction->IsDefinition()) { |
- instruction->AsDefinition()->set_temp_index(AllocateTempIndex()); |
+ if (instruction->IsBindInstr()) { |
+ instruction->AsBindInstr()->set_temp_index(AllocateTempIndex()); |
} |
if (is_empty()) { |
entry_ = exit_ = instruction; |
@@ -600,11 +600,11 @@ |
// Preserve instantiator. |
const LocalVariable& expr_temp = |
*owner()->parsed_function().expression_temp_var(); |
- Definition* saved = |
+ BindInstr* saved = |
new BindInstr(BuildStoreLocal(expr_temp, instantiator)); |
AddInstruction(saved); |
instantiator = new UseVal(saved); |
- Definition* loaded = new BindInstr(BuildLoadLocal(expr_temp)); |
+ BindInstr* loaded = new BindInstr(BuildLoadLocal(expr_temp)); |
AddInstruction(loaded); |
instantiator_type_arguments = |
BuildInstantiatorTypeArguments(token_index, new UseVal(loaded)); |
@@ -650,7 +650,7 @@ |
value, |
dst_type, |
dst_name); |
- Definition* assert_assignable = new BindInstr(comp); |
+ BindInstr* assert_assignable = new BindInstr(comp); |
AddInstruction(assert_assignable); |
return new UseVal(assert_assignable); |
} |
@@ -771,7 +771,7 @@ |
if (node->kind() == Token::kEQ) { |
ReturnComputation(comp); |
} else { |
- Definition* eq_result = new BindInstr(comp); |
+ BindInstr* eq_result = new BindInstr(comp); |
AddInstruction(eq_result); |
if (FLAG_enable_type_checks) { |
eq_result = |
@@ -1426,7 +1426,7 @@ |
} |
-Definition* EffectGraphVisitor::BuildObjectAllocation( |
+BindInstr* EffectGraphVisitor::BuildObjectAllocation( |
ConstructorCallNode* node) { |
const Class& cls = Class::ZoneHandle(node->constructor().owner()); |
const bool requires_type_arguments = cls.HasTypeArguments(); |
@@ -1512,7 +1512,7 @@ |
// t_n+2... <- constructor arguments start here |
// StaticCall(constructor, t_n+1, t_n+2, ...) |
// No need to preserve allocated value (simpler than in ValueGraphVisitor). |
- Definition* allocate = BuildObjectAllocation(node); |
+ BindInstr* allocate = BuildObjectAllocation(node); |
BuildConstructorCall(node, new UseVal(allocate)); |
} |
@@ -1594,7 +1594,7 @@ |
} |
-Definition* EffectGraphVisitor::BuildInstantiatedTypeArguments( |
+BindInstr* EffectGraphVisitor::BuildInstantiatedTypeArguments( |
intptr_t token_index, |
const AbstractTypeArguments& type_arguments) { |
if (type_arguments.IsNull() || type_arguments.IsInstantiated()) { |
@@ -1650,7 +1650,7 @@ |
Value* instantiator_type_arguments = BuildInstantiatorTypeArguments( |
node->token_index(), NULL); |
ASSERT(instantiator_type_arguments->IsUse()); |
- Definition* stored_instantiator = new BindInstr( |
+ BindInstr* stored_instantiator = new BindInstr( |
BuildStoreLocal(t1, instantiator_type_arguments)); |
AddInstruction(stored_instantiator); |
// t1: instantiator type arguments. |
@@ -1667,7 +1667,7 @@ |
BuildStoreLocal(t2, new UseVal(extract_type_arguments))); |
AddInstruction(stored_type_arguments); |
// t2: extracted constructor type arguments. |
- Definition* load_instantiator = new BindInstr(BuildLoadLocal(t1)); |
+ BindInstr* load_instantiator = new BindInstr(BuildLoadLocal(t1)); |
AddInstruction(load_instantiator); |
BindInstr* extract_instantiator = |
@@ -1679,9 +1679,9 @@ |
BuildStoreLocal(t1, new UseVal(extract_instantiator)))); |
// t2: extracted constructor type arguments. |
// t1: extracted constructor instantiator. |
- Definition* load_0 = new BindInstr(BuildLoadLocal(t2)); |
+ BindInstr* load_0 = new BindInstr(BuildLoadLocal(t2)); |
AddInstruction(load_0); |
- Definition* load_1 = new BindInstr(BuildLoadLocal(t1)); |
+ BindInstr* load_1 = new BindInstr(BuildLoadLocal(t1)); |
AddInstruction(load_1); |
args->Add(new UseVal(load_0)); |
args->Add(new UseVal(load_1)); |
@@ -1702,11 +1702,11 @@ |
// StaticCall(constructor, t_n, t_n+1, ...) |
// tn <- LoadLocal(temp) |
- Definition* allocate = BuildObjectAllocation(node); |
+ BindInstr* allocate = BuildObjectAllocation(node); |
Computation* store_allocated = BuildStoreLocal( |
node->allocated_object_var(), |
new UseVal(allocate)); |
- Definition* allocated_value = new BindInstr(store_allocated); |
+ BindInstr* allocated_value = new BindInstr(store_allocated); |
AddInstruction(allocated_value); |
BuildConstructorCall(node, new UseVal(allocated_value)); |
Computation* load_allocated = BuildLoadLocal( |
@@ -2223,9 +2223,6 @@ |
AstPrinter::PrintFunctionNodes(parsed_function()); |
} |
// Compilation can be nested, preserve the computation-id. |
- Isolate* isolate = Isolate::Current(); |
- const intptr_t prev_cid = isolate->computation_id(); |
- isolate->set_computation_id(0); |
const Function& function = parsed_function().function(); |
TargetEntryInstr* normal_entry = new TargetEntryInstr(); |
graph_entry_ = new GraphEntryInstr(normal_entry); |
@@ -2256,7 +2253,6 @@ |
GrowableArray<BitVector*> dominance_frontier; |
ComputeDominators(&preorder_block_entries_, &parent, &dominance_frontier); |
} |
- isolate->set_computation_id(prev_cid); |
if (FLAG_print_flow_graph) { |
intptr_t length = postorder_block_entries_.length(); |
GrowableArray<BlockEntryInstr*> reverse_postorder(length); |