Flutter Engine
The Flutter Engine
Public Member Functions | Private Member Functions | List of all members
dart::AotCallSpecializer Class Reference

#include <aot_call_specializer.h>

Inheritance diagram for dart::AotCallSpecializer:
dart::CallSpecializer dart::FlowGraphVisitor dart::InstructionVisitor dart::ValueObject

Public Member Functions

 AotCallSpecializer (Precompiler *precompiler, FlowGraph *flow_graph, SpeculativeInliningPolicy *speculative_policy)
 
virtual ~AotCallSpecializer ()
 
virtual void VisitInstanceCall (InstanceCallInstr *instr)
 
virtual void VisitStaticCall (StaticCallInstr *instr)
 
virtual void VisitPolymorphicInstanceCall (PolymorphicInstanceCallInstr *instr)
 
virtual bool TryReplaceInstanceOfWithRangeCheck (InstanceCallInstr *call, const AbstractType &type)
 
- Public Member Functions inherited from dart::CallSpecializer
 CallSpecializer (FlowGraph *flow_graph, SpeculativeInliningPolicy *speculative_policy, bool should_clone_fields)
 
virtual ~CallSpecializer ()
 
FlowGraphflow_graph () const
 
void set_flow_graph (FlowGraph *flow_graph)
 
void ApplyICData ()
 
void ApplyClassIds ()
 
virtual void ReplaceInstanceCallsWithDispatchTableCalls ()
 
void InsertBefore (Instruction *next, Instruction *instr, Environment *env, FlowGraph::UseKind use_kind)
 
void InsertSpeculativeBefore (Instruction *next, Instruction *instr, Environment *env, FlowGraph::UseKind use_kind)
 
virtual void VisitStaticCall (StaticCallInstr *instr)
 
virtual void VisitLoadCodeUnits (LoadCodeUnitsInstr *instr)
 
- Public Member Functions inherited from dart::FlowGraphVisitor
 FlowGraphVisitor (const GrowableArray< BlockEntryInstr * > &block_order)
 
virtual ~FlowGraphVisitor ()
 
ForwardInstructionIteratorcurrent_iterator () const
 
virtual void VisitBlocks ()
 
- Public Member Functions inherited from dart::InstructionVisitor
 InstructionVisitor ()
 
virtual ~InstructionVisitor ()
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Private Member Functions

virtual bool TryCreateICData (InstanceCallInstr *call)
 
virtual bool TryOptimizeStaticCallUsingStaticTypes (StaticCallInstr *call)
 
virtual void ReplaceInstanceCallsWithDispatchTableCalls ()
 

Additional Inherited Members

- Protected Member Functions inherited from dart::CallSpecializer
Threadthread () const
 
IsolateGroupisolate_group () const
 
Zonezone () const
 
const Functionfunction () const
 
bool TryReplaceWithBinaryOp (InstanceCallInstr *call, Token::Kind op_kind)
 
bool TryReplaceWithUnaryOp (InstanceCallInstr *call, Token::Kind op_kind)
 
bool TryReplaceWithEqualityOp (InstanceCallInstr *call, Token::Kind op_kind)
 
bool TryReplaceWithRelationalOp (InstanceCallInstr *call, Token::Kind op_kind)
 
bool TryInlineInstanceGetter (InstanceCallInstr *call)
 
bool TryInlineInstanceSetter (InstanceCallInstr *call)
 
bool TryInlineInstanceMethod (InstanceCallInstr *call)
 
void ReplaceWithInstanceOf (InstanceCallInstr *instr)
 
void ReplaceCallWithResult (Definition *call, Instruction *replacement, Definition *result)
 
void ReplaceCall (Definition *call, Definition *replacement)
 
void AddReceiverCheck (InstanceCallInstr *call)
 
void AddCheckNull (Value *to_check, const String &function_name, intptr_t deopt_id, Environment *deopt_environment, Instruction *insert_before)
 
virtual bool TryCreateICData (InstanceCallInstr *call)
 
virtual bool TryReplaceInstanceOfWithRangeCheck (InstanceCallInstr *call, const AbstractType &type)
 
virtual bool TryOptimizeStaticCallUsingStaticTypes (StaticCallInstr *call)=0
 
void InlineImplicitInstanceGetter (Definition *call, const Field &field)
 
void AddCheckClass (Definition *to_check, const Cids &cids, intptr_t deopt_id, Environment *deopt_environment, Instruction *insert_before)
 
- Protected Member Functions inherited from dart::FlowGraphVisitor
void set_block_order (const GrowableArray< BlockEntryInstr * > &block_order)
 
- Protected Attributes inherited from dart::CallSpecializer
SpeculativeInliningPolicyspeculative_policy_
 
const bool should_clone_fields_
 
- Protected Attributes inherited from dart::FlowGraphVisitor
ForwardInstructionIteratorcurrent_iterator_
 

Detailed Description

Definition at line 19 of file aot_call_specializer.h.

Constructor & Destructor Documentation

◆ AotCallSpecializer()

dart::AotCallSpecializer::AotCallSpecializer ( Precompiler precompiler,
FlowGraph flow_graph,
SpeculativeInliningPolicy speculative_policy 
)

◆ ~AotCallSpecializer()

virtual dart::AotCallSpecializer::~AotCallSpecializer ( )
inlinevirtual

Definition at line 25 of file aot_call_specializer.h.

25{}

Member Function Documentation

◆ ReplaceInstanceCallsWithDispatchTableCalls()

virtual void dart::AotCallSpecializer::ReplaceInstanceCallsWithDispatchTableCalls ( )
privatevirtual

Reimplemented from dart::CallSpecializer.

◆ TryCreateICData()

virtual bool dart::AotCallSpecializer::TryCreateICData ( InstanceCallInstr call)
privatevirtual

Reimplemented from dart::CallSpecializer.

◆ TryOptimizeStaticCallUsingStaticTypes()

virtual bool dart::AotCallSpecializer::TryOptimizeStaticCallUsingStaticTypes ( StaticCallInstr call)
privatevirtual

Implements dart::CallSpecializer.

◆ TryReplaceInstanceOfWithRangeCheck()

virtual bool dart::AotCallSpecializer::TryReplaceInstanceOfWithRangeCheck ( InstanceCallInstr call,
const AbstractType type 
)
virtual

Reimplemented from dart::CallSpecializer.

◆ VisitInstanceCall()

virtual void dart::AotCallSpecializer::VisitInstanceCall ( InstanceCallInstr instr)
virtual

◆ VisitPolymorphicInstanceCall()

virtual void dart::AotCallSpecializer::VisitPolymorphicInstanceCall ( PolymorphicInstanceCallInstr instr)
virtual

◆ VisitStaticCall()

virtual void dart::AotCallSpecializer::VisitStaticCall ( StaticCallInstr instr)
virtual

Reimplemented from dart::CallSpecializer.


The documentation for this class was generated from the following file: