Flutter Engine
The Flutter Engine
|
#include <il.h>
Classes | |
struct | InputsTrait |
struct | SuccessorsTrait |
Public Types | |
enum | Tag { FOR_EACH_INSTRUCTION =(DECLARE_TAG) kNumInstructions } |
enum | SpeculativeMode { kGuardInputs , kNotSpeculative } |
using | InputsIterable = InstructionIndexedPropertyIterable< InputsTrait > |
using | SuccessorsIterable = InstructionIndexedPropertyIterable< SuccessorsTrait > |
Static Public Member Functions | |
static const ICData * | GetICData (const ZoneGrowableArray< const ICData * > &ic_data_array, intptr_t deopt_id, bool is_static_call) |
static LocationSummary * | MakeCallSummary (Zone *zone, const Instruction *instr, LocationSummary *locs=nullptr) |
static bool | SlowPathSharingSupported (bool is_optimizing) |
Static Public Attributes | |
static const intptr_t | kInstructionAttrs [kNumInstructions] |
Protected Member Functions | |
intptr_t | GetDeoptId () const |
virtual void | CopyDeoptIdFrom (const Instruction &instr) |
void | WriteExtraWithoutInputs (FlowGraphSerializer *s) |
void | ReadExtraWithoutInputs (FlowGraphDeserializer *d) |
Private Member Functions | |
virtual void | RawSetInputAt (intptr_t i, Value *value)=0 |
Friends | |
class | CallSiteInliner |
class | LICM |
class | ComparisonInstr |
class | Scheduler |
class | BlockEntryInstr |
class | CatchBlockEntryInstr |
class | DebugStepCheckInstr |
class | StrictCompareInstr |
class | BranchInstr |
class | IfThenElseInstr |
class | CheckConditionInstr |
Enumerator | |
---|---|
kGuardInputs | |
kNotSpeculative |
Definition at line 964 of file il.h.
|
inlineexplicit |
|
inlineexplicit |
|
inlinevirtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in dart::PureInstruction, dart::PureDefinition, dart::PureComparison, dart::IfThenElseInstr, dart::AllocateClosureInstr, dart::InvokeMathCFunctionInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
Definition at line 1285 of file il.h.
Instruction * dart::Instruction::AppendInstruction | ( | Instruction * | tail | ) |
Definition at line 1339 of file il.cc.
|
inline |
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
Definition at line 1035 of file il.h.
|
inline |
Definition at line 3417 of file il.h.
|
inlinevirtual |
Reimplemented in dart::DartReturnInstr, dart::NativeReturnInstr, dart::ComparisonInstr, dart::IfThenElseInstr, dart::AllocateClosureInstr, dart::InvokeMathCFunctionInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
inlinevirtual |
Reimplemented in dart::DartReturnInstr, dart::NativeReturnInstr, dart::ComparisonInstr, dart::BranchInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, and dart::CachableIdempotentCallInstr.
Definition at line 1337 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::NativeCallInstr, dart::FfiCallInstr, and dart::LeafRuntimeCallInstr.
Definition at line 1298 of file il.h.
|
inline |
|
virtual |
Reimplemented in dart::Definition.
Definition at line 1566 of file il.cc.
|
virtual |
Reimplemented in dart::Definition, dart::PhiInstr, dart::BranchInstr, dart::InstanceCallInstr, dart::DispatchTableCallInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::AllocateClosureInstr, dart::AllocateContextInstr, dart::CheckConditionInstr, dart::SimdOpInstr, and dart::PolymorphicInstanceCallInstr.
Definition at line 2620 of file il.cc.
|
virtual |
|
inline |
|
inline |
|
pure virtual |
Implemented in dart::PhiInstr, dart::ReturnBaseInstr, dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::DropTempsInstr, dart::NativeCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::AllocationInstr, dart::MaterializeObjectInstr, dart::AllocateContextInstr, dart::InvokeMathCFunctionInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
inlinevirtual |
Reimplemented in dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, and dart::AllocationInstr.
Definition at line 1064 of file il.h.
|
inlineprotectedvirtual |
Reimplemented in dart::BranchInstr, dart::IfThenElseInstr, and dart::CheckConditionInstr.
Definition at line 1405 of file il.h.
|
pure virtual |
|
inline |
|
inline |
Definition at line 987 of file il.h.
|
inlinevirtual |
Reimplemented in dart::DartReturnInstr, dart::ComparisonInstr, dart::BranchInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::InvokeMathCFunctionInstr, and dart::SimdOpInstr.
|
inlinevirtual |
Reimplemented in dart::ComparisonInstr.
Definition at line 1207 of file il.h.
|
inline |
bool dart::Instruction::Equals | ( | const Instruction & | other | ) | const |
|
virtual |
Reimplemented in dart::PhiInstr.
Definition at line 1350 of file il.cc.
|
inlineprotected |
|
static |
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
|
inline |
void dart::Instruction::Goto | ( | JoinEntryInstr * | entry | ) |
|
inlinevirtual |
Reimplemented in dart::BranchInstr.
Definition at line 1311 of file il.h.
|
virtual |
Reimplemented in dart::PhiInstr.
Definition at line 608 of file il.cc.
|
inline |
|
inline |
|
pure virtual |
Implemented in dart::PureInstruction, dart::PureDefinition, dart::PhiInstr, dart::ReturnBaseInstr, dart::PureComparison, dart::BranchInstr, dart::ClosureCallInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::DropTempsInstr, dart::NativeCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::AllocateObjectInstr, dart::AllocateClosureInstr, dart::AllocateUninitializedContextInstr, dart::AllocateRecordInstr, dart::AllocateSmallRecordInstr, dart::MaterializeObjectInstr, dart::CreateArrayInstr, dart::AllocateTypedDataInstr, dart::AllocateContextInstr, dart::InvokeMathCFunctionInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
bool dart::Instruction::HasUnmatchedInputRepresentations | ( | ) | const |
Definition at line 1600 of file il.cc.
void dart::Instruction::InheritDeoptTarget | ( | Zone * | zone, |
Instruction * | other | ||
) |
Definition at line 1560 of file il.cc.
void dart::Instruction::InheritDeoptTargetAfter | ( | FlowGraph * | flow_graph, |
Definition * | call, | ||
Definition * | result | ||
) |
|
inline |
Definition at line 1196 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr.
Definition at line 1305 of file il.h.
|
pure virtual |
Implemented in dart::VariadicDefinition, dart::DartReturnInstr, dart::NativeReturnInstr, dart::BranchInstr, dart::IfThenElseInstr, dart::DropTempsInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 0 >, dart::TemplateAllocation< 3 >, dart::AllocateObjectInstr, dart::TemplateArrayAllocation< N >, dart::TemplateArrayAllocation< 1 >, dart::TemplateArrayAllocation< 2 >, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
pure virtual |
Implemented in dart::VariadicDefinition, dart::DartReturnInstr, dart::NativeReturnInstr, dart::BranchInstr, dart::IfThenElseInstr, dart::DropTempsInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 0 >, dart::TemplateAllocation< 3 >, dart::AllocateObjectInstr, dart::AllocateClosureInstr, dart::AllocateSmallRecordInstr, dart::TemplateArrayAllocation< N >, dart::TemplateArrayAllocation< 1 >, dart::TemplateArrayAllocation< 2 >, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
inline |
void dart::Instruction::InsertAfter | ( | Instruction * | prev | ) |
|
inline |
bool dart::Instruction::IsDominatedBy | ( | Instruction * | dom | ) |
Definition at line 1572 of file il.cc.
|
inline |
|
inline |
|
static |
|
pure virtual |
|
inlinevirtual |
Reimplemented in dart::TemplateAllocation< N >, dart::TemplateAllocation< 0 >, dart::TemplateAllocation< 3 >, and dart::AllocateObjectInstr.
Definition at line 1346 of file il.h.
|
pure virtual |
Implemented in dart::PhiInstr, dart::ReturnBaseInstr, dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::IfThenElseInstr, dart::DropTempsInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::AllocationInstr, dart::MaterializeObjectInstr, dart::InvokeMathCFunctionInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, and dart::AllocationInstr.
Definition at line 1214 of file il.h.
|
inline |
|
privatepure virtual |
Implemented in dart::DartReturnInstr, dart::NativeReturnInstr, dart::BranchInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 0 >, dart::TemplateAllocation< 3 >, dart::TemplateArrayAllocation< N >, dart::TemplateArrayAllocation< 1 >, dart::TemplateArrayAllocation< 2 >, and dart::SimdOpInstr.
|
protected |
Definition at line 1117 of file il_serializer.cc.
|
inline |
void dart::Instruction::RemoveEnvironment | ( | ) |
Instruction * dart::Instruction::RemoveFromGraph | ( | bool | return_previous = true | ) |
Definition at line 1299 of file il.cc.
void dart::Instruction::RepairArgumentUsesInEnvironment | ( | ) | const |
void dart::Instruction::ReplaceInEnvironment | ( | Definition * | current, |
Definition * | replacement | ||
) |
|
inlinevirtual |
Reimplemented in dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
|
inlinevirtual |
Reimplemented in dart::PhiInstr, dart::DartReturnInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::InvokeMathCFunctionInstr, and dart::SimdOpInstr.
Definition at line 1254 of file il.h.
|
inlinevirtual |
Reimplemented in dart::PhiInstr, dart::BranchInstr, dart::IfThenElseInstr, dart::NativeReturnInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::MaterializeObjectInstr, dart::InvokeMathCFunctionInstr, dart::SimdOpInstr, and dart::DartReturnInstr.
Definition at line 1235 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr.
|
inline |
Definition at line 1088 of file il.h.
|
inline |
void dart::Instruction::SetEnvironment | ( | Environment * | deopt_env | ) |
|
inline |
Definition at line 1008 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
|
inline |
|
inlinestatic |
|
inline |
|
inlinevirtual |
|
inline |
|
inlinevirtual |
|
virtual |
Reimplemented in dart::BranchInstr.
Definition at line 1972 of file il.cc.
|
virtual |
Reimplemented in dart::BranchInstr.
Definition at line 1968 of file il.cc.
|
inline |
|
pure virtual |
const char * dart::Instruction::ToCString | ( | ) | const |
Definition at line 1669 of file il_printer.cc.
|
inlinevirtual |
Reimplemented in dart::DartReturnInstr, dart::ComparisonInstr, dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::DropTempsInstr, dart::NativeCallInstr, dart::AllocationInstr, and dart::InvokeMathCFunctionInstr.
Definition at line 999 of file il.h.
void dart::Instruction::Unsupported | ( | FlowGraphCompiler * | compiler | ) |
void dart::Instruction::UnuseAllInputs | ( | ) |
|
inlinevirtual |
|
inline |
|
protected |
Definition at line 1112 of file il_serializer.cc.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
static |