| Index: runtime/vm/flow_graph_optimizer.h
|
| diff --git a/runtime/vm/flow_graph_optimizer.h b/runtime/vm/flow_graph_optimizer.h
|
| index 0878cee87a27b1e2552d6e53c3153ce582ac2142..c28739aaba676eb64fe3a24caaa1ee07c8d27831 100644
|
| --- a/runtime/vm/flow_graph_optimizer.h
|
| +++ b/runtime/vm/flow_graph_optimizer.h
|
| @@ -28,44 +28,35 @@ class FlowGraphOptimizer : public FlowGraphVisitor {
|
|
|
| void SelectRepresentations();
|
|
|
| - virtual void VisitStaticCall(StaticCallComp* comp, BindInstr* instr);
|
| - virtual void VisitInstanceCall(InstanceCallComp* comp, BindInstr* instr);
|
| - virtual void VisitRelationalOp(RelationalOpComp* comp, BindInstr* instr);
|
| - virtual void VisitEqualityCompare(EqualityCompareComp* comp,
|
| - BindInstr* instr);
|
| - virtual void VisitBind(BindInstr* instr);
|
| + virtual void VisitStaticCall(StaticCallInstr* instr);
|
| + virtual void VisitInstanceCall(InstanceCallInstr* instr);
|
| + virtual void VisitRelationalOp(RelationalOpInstr* instr);
|
| + virtual void VisitEqualityCompare(EqualityCompareInstr* instr);
|
| virtual void VisitBranch(BranchInstr* instr);
|
|
|
| // TODO(fschneider): Once we get rid of the distinction between Instruction
|
| // and computation, this can be made private again.
|
| - BindInstr* InsertBefore(Instruction* instr,
|
| - Computation* comp,
|
| - Environment* env,
|
| - BindInstr::UseKind use_kind);
|
| + void InsertBefore(Instruction* instr,
|
| + Definition* defn,
|
| + Environment* env,
|
| + Definition::UseKind use_kind);
|
|
|
| private:
|
| - bool TryReplaceWithArrayOp(BindInstr* instr,
|
| - InstanceCallComp* comp,
|
| - Token::Kind op_kind);
|
| - bool TryReplaceWithBinaryOp(BindInstr* instr,
|
| - InstanceCallComp* comp,
|
| - Token::Kind op_kind);
|
| - bool TryReplaceWithUnaryOp(BindInstr* instr,
|
| - InstanceCallComp* comp,
|
| - Token::Kind op_kind);
|
| + bool TryReplaceWithArrayOp(InstanceCallInstr* call, Token::Kind op_kind);
|
| + bool TryReplaceWithBinaryOp(InstanceCallInstr* call, Token::Kind op_kind);
|
| + bool TryReplaceWithUnaryOp(InstanceCallInstr* call, Token::Kind op_kind);
|
|
|
| - bool TryInlineInstanceGetter(BindInstr* instr,
|
| - InstanceCallComp* comp);
|
| - bool TryInlineInstanceSetter(BindInstr* instr, InstanceCallComp* comp);
|
| + bool TryInlineInstanceGetter(InstanceCallInstr* call);
|
| + bool TryInlineInstanceSetter(InstanceCallInstr* call);
|
|
|
| - bool TryInlineInstanceMethod(BindInstr* instr, InstanceCallComp* comp);
|
| + bool TryInlineInstanceMethod(InstanceCallInstr* call);
|
|
|
| - void AddCheckClass(BindInstr* instr, InstanceCallComp* comp, Value* value);
|
| + void AddCheckClass(InstanceCallInstr* call, Value* value);
|
|
|
| - BindInstr* InsertAfter(Instruction* instr,
|
| - Computation* comp,
|
| - Environment* env,
|
| - BindInstr::UseKind use_kind);
|
| + void InsertAfter(Instruction* instr,
|
| + Definition* defn,
|
| + Environment* env,
|
| + Definition::UseKind use_kind);
|
|
|
| void InsertConversionsFor(Definition* def);
|
|
|
| @@ -110,19 +101,19 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
|
|
|
| void PropagateTypes();
|
|
|
| - virtual void VisitAssertAssignable(AssertAssignableComp* comp,
|
| - BindInstr* instr);
|
| - virtual void VisitAssertBoolean(AssertBooleanComp* comp, BindInstr* instr);
|
| - virtual void VisitInstanceOf(InstanceOfComp* comp, BindInstr* instr);
|
| + private:
|
| + virtual void VisitBlocks();
|
| +
|
| + virtual void VisitAssertAssignable(AssertAssignableInstr* instr);
|
| + virtual void VisitAssertBoolean(AssertBooleanInstr* instr);
|
| + virtual void VisitInstanceOf(InstanceOfInstr* instr);
|
|
|
| virtual void VisitGraphEntry(GraphEntryInstr* graph_entry);
|
| virtual void VisitJoinEntry(JoinEntryInstr* join_entry);
|
| - virtual void VisitBind(BindInstr* bind);
|
| virtual void VisitPhi(PhiInstr* phi);
|
| virtual void VisitParameter(ParameterInstr* param);
|
| virtual void VisitPushArgument(PushArgumentInstr* bind);
|
|
|
| - private:
|
| const ParsedFunction& parsed_function_;
|
| bool still_changing_;
|
| DISALLOW_COPY_AND_ASSIGN(FlowGraphTypePropagator);
|
| @@ -138,7 +129,7 @@ class DominatorBasedCSE : public AllStatic {
|
| private:
|
| static void OptimizeRecursive(
|
| BlockEntryInstr* entry,
|
| - DirectChainedHashMap<BindInstr*>* map);
|
| + DirectChainedHashMap<Definition*>* map);
|
| };
|
|
|
|
|
|
|