Chromium Code Reviews| Index: runtime/vm/flow_graph_builder.h |
| diff --git a/runtime/vm/flow_graph_builder.h b/runtime/vm/flow_graph_builder.h |
| index a4bbd8ec33b4cef191fbfe32638fadad56056be5..bad46dce5fe11c9b6ec1536e49ae45b48d26494e 100644 |
| --- a/runtime/vm/flow_graph_builder.h |
| +++ b/runtime/vm/flow_graph_builder.h |
| @@ -115,7 +115,6 @@ class EffectGraphVisitor : public AstNodeVisitor { |
| protected: |
| // Helpers for translating parts of the AST. |
| void TranslateArgumentList(const ArgumentListNode& node, |
| - intptr_t next_temp_index, |
| ZoneGrowableArray<Value*>* values); |
| // Build the load part of a instance field increment. Translates the |
| @@ -151,22 +150,19 @@ class EffectGraphVisitor : public AstNodeVisitor { |
| ZoneGrowableArray<Value*>* args); |
| // Returns the value of the type arguments of the instantiator. |
| - Value* BuildInstantiatorTypeArguments(intptr_t token_index, |
| - intptr_t start_index); |
| + Value* BuildInstantiatorTypeArguments(intptr_t token_index); |
| // Perform a type check on the given value. |
| void BuildAssertAssignable(intptr_t token_index, |
| Value* value, |
| const AbstractType& dst_type, |
| - const String& dst_name, |
| - intptr_t start_index); |
| + const String& dst_name); |
| // Perform a type check on the given value and return it. |
| Value* BuildAssignableValue(AstNode* value_node, |
| Value* value, |
| const AbstractType& dst_type, |
| - const String& dst_name, |
| - intptr_t start_index); |
| + const String& dst_name); |
| virtual void BuildInstanceOf(ComparisonNode* node); |
| @@ -177,7 +173,10 @@ class EffectGraphVisitor : public AstNodeVisitor { |
| void CloseFragment() { exit_ = NULL; } |
| intptr_t AllocateTempIndex() { return temp_index_++; } |
| - void DeallocateTempIndex() { --temp_index_; } |
| + void DeallocateTempIndex(intptr_t n = 1) { |
|
srdjan
2012/05/02 22:07:32
Remove default value, please.
Kevin Millikin (Google)
2012/05/03 08:26:23
Yikes, I meant to do that. Thanks.
|
| + ASSERT(temp_index_ >= n); |
| + temp_index_ -= n; |
| + } |
| virtual void CompiletimeStringInterpolation(const Function& interpol_func, |
| const Array& literals); |
| @@ -248,10 +247,9 @@ class ValueGraphVisitor : public EffectGraphVisitor { |
| // the graph and returns its temporary value (i.e., set the output |
| // parameters). |
| virtual void ReturnComputation(Computation* computation) { |
| - BindInstr* defn = new BindInstr(temp_index(), computation); |
| + BindInstr* defn = new BindInstr(computation); |
| AddInstruction(defn); |
| - AllocateTempIndex(); |
| - value_ = new UseVal(defn); |
| + ReturnValue(new UseVal(defn)); |
| } |
| virtual void CompiletimeStringInterpolation(const Function& interpol_func, |
| @@ -305,14 +303,6 @@ class TestGraphVisitor : public ValueGraphVisitor { |
| // Closes the fragment and sets the output parameters. |
| virtual void ReturnValue(Value* value); |
| - // Specify a computation as the final result. Adds a Bind instruction to |
| - // the graph and branches on its value. |
| - virtual void ReturnComputation(Computation* computation) { |
| - BindInstr* defn = new BindInstr(temp_index(), computation); |
| - AddInstruction(defn); |
| - ReturnValue(new UseVal(defn)); |
| - } |
| - |
| // Output parameters. |
| TargetEntryInstr** true_successor_address_; |
| TargetEntryInstr** false_successor_address_; |