5#ifndef RUNTIME_VM_COMPILER_AOT_AOT_CALL_SPECIALIZER_H_
6#define RUNTIME_VM_COMPILER_AOT_AOT_CALL_SPECIALIZER_H_
8#if defined(DART_PRECOMPILED_RUNTIME)
9#error "AOT runtime should not use compiler sources (including header files)"
17class SpeculativeInliningPolicy;
47 bool IsSupportedIntOperandForStaticDoubleOp(
CompileType* operand_type);
60 void ReplaceWithConditionalDispatchTableCall(
80 bool TryExpandCallThroughGetter(
const Class& receiver_class,
92 bool has_unique_no_such_method_;
virtual void ReplaceInstanceCallsWithDispatchTableCalls()
virtual void VisitInstanceCall(InstanceCallInstr *instr)
virtual bool TryReplaceInstanceOfWithRangeCheck(InstanceCallInstr *call, const AbstractType &type)
virtual bool TryOptimizeStaticCallUsingStaticTypes(StaticCallInstr *call)
virtual void VisitPolymorphicInstanceCall(PolymorphicInstanceCallInstr *instr)
virtual ~AotCallSpecializer()
virtual void VisitStaticCall(StaticCallInstr *instr)
AotCallSpecializer(Precompiler *precompiler, FlowGraph *flow_graph, SpeculativeInliningPolicy *speculative_policy)
virtual bool TryCreateICData(InstanceCallInstr *call)
FlowGraph * flow_graph() const