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 970 of file il.h.
|
inlineexplicit |
|
inlineexplicit |
|
inlinevirtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in dart::PureInstruction, dart::PureDefinition, dart::PureComparison, dart::IfThenElseInstr, dart::LoadStaticFieldInstr, dart::AllocateClosureInstr, dart::CalculateElementAddressInstr, dart::LoadFieldInstr, dart::InvokeMathCFunctionInstr, dart::CheckClassInstr, dart::CheckClassIdInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
Definition at line 1291 of file il.h.
Instruction * dart::Instruction::AppendInstruction | ( | Instruction * | tail | ) |
Definition at line 1341 of file il.cc.
|
inline |
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
Definition at line 1041 of file il.h.
|
inline |
Definition at line 3435 of file il.h.
|
inlinevirtual |
Reimplemented in dart::StoreIndexedUnsafeInstr, dart::LoadIndexedUnsafeInstr, dart::MemoryCopyInstr, dart::TailCallInstr, dart::DartReturnInstr, dart::NativeReturnInstr, dart::ComparisonInstr, dart::DeoptimizeInstr, dart::ConstraintInstr, dart::ConstantInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::StrictCompareInstr, dart::TestCidsInstr, dart::TestRangeInstr, dart::EqualityCompareInstr, dart::RelationalOpInstr, dart::IfThenElseInstr, dart::GuardFieldClassInstr, dart::GuardFieldLengthInstr, dart::GuardFieldTypeInstr, dart::LoadStaticFieldInstr, dart::OneByteStringFromCharCodeInstr, dart::StringToCharCodeInstr, dart::Utf8ScanInstr, dart::AllocateClosureInstr, dart::LoadUntaggedInstr, dart::CalculateElementAddressInstr, dart::LoadClassIdInstr, dart::LoadFieldInstr, dart::CheckEitherNonSmiInstr, dart::BoxInstr, dart::UnboxInstr, dart::UnboxIntegerInstr, dart::CaseInsensitiveCompareInstr, dart::MathMinMaxInstr, dart::BinaryDoubleOpInstr, dart::DoubleTestOpInstr, dart::HashDoubleOpInstr, dart::HashIntegerOpInstr, dart::UnaryIntegerOpInstr, dart::UnaryInt64OpInstr, dart::BinaryIntegerOpInstr, dart::BinaryInt64OpInstr, dart::UnaryDoubleOpInstr, dart::SmiToDoubleInstr, dart::Int32ToDoubleInstr, dart::Int64ToDoubleInstr, dart::DoubleToIntegerInstr, dart::DoubleToSmiInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::FloatCompareInstr, dart::InvokeMathCFunctionInstr, dart::ExtractNthOutputInstr, dart::MakePairInstr, dart::UnboxLaneInstr, dart::BoxLanesInstr, dart::TruncDivModInstr, dart::CheckClassInstr, dart::CheckSmiInstr, dart::CheckNullInstr, dart::CheckClassIdInstr, dart::CheckArrayBoundInstr, dart::GenericCheckBoundInstr, dart::CheckWritableInstr, dart::CheckConditionInstr, dart::IntConverterInstr, dart::BitCastInstr, dart::LoadThreadInstr, and dart::SimdOpInstr.
|
inlinevirtual |
Reimplemented in dart::BlockEntryInstr, dart::DartReturnInstr, dart::NativeReturnInstr, dart::GotoInstr, dart::IndirectGotoInstr, dart::ComparisonInstr, dart::BranchInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::GuardFieldInstr, and dart::CheckNullInstr.
Definition at line 1343 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, dart::LeafRuntimeCallInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::Call1ArgStubInstr, and dart::SuspendInstr.
Definition at line 1304 of file il.h.
|
inline |
|
virtual |
Reimplemented in dart::Definition, dart::ReachabilityFenceInstr, and dart::CheckStackOverflowInstr.
Definition at line 1575 of file il.cc.
|
virtual |
Reimplemented in dart::Definition, dart::PhiInstr, dart::MemoryCopyInstr, dart::BranchInstr, dart::RedefinitionInstr, dart::ConstantInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::InstanceCallInstr, dart::DispatchTableCallInstr, dart::StrictCompareInstr, dart::TestCidsInstr, dart::TestRangeInstr, dart::EqualityCompareInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::DebugStepCheckInstr, dart::StoreFieldInstr, dart::GuardFieldClassInstr, dart::GuardFieldLengthInstr, dart::GuardFieldTypeInstr, dart::LoadIndexedInstr, dart::StoreIndexedInstr, dart::RecordCoverageInstr, dart::BooleanNegateInstr, dart::AllocateClosureInstr, dart::CalculateElementAddressInstr, dart::LoadClassIdInstr, dart::LoadFieldInstr, dart::InstantiateTypeArgumentsInstr, dart::AllocateContextInstr, dart::CheckEitherNonSmiInstr, dart::BoxInstr, dart::BoxIntegerInstr, dart::BoxInt64Instr, dart::UnboxInstr, dart::UnboxIntegerInstr, dart::BinaryDoubleOpInstr, dart::DoubleTestOpInstr, dart::UnaryIntegerOpInstr, dart::BinaryIntegerOpInstr, dart::CheckStackOverflowInstr, dart::DoubleToIntegerInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::InvokeMathCFunctionInstr, dart::UnboxLaneInstr, dart::BoxLanesInstr, dart::CheckClassInstr, dart::CheckSmiInstr, dart::CheckNullInstr, dart::CheckClassIdInstr, dart::CheckBoundBaseInstr, dart::CheckWritableInstr, dart::CheckConditionInstr, dart::IntConverterInstr, dart::SimdOpInstr, dart::SuspendInstr, and dart::PolymorphicInstanceCallInstr.
Definition at line 2629 of file il.cc.
|
virtual |
Reimplemented in dart::StoreFieldInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::LoadCodeUnitsInstr, dart::LoadFieldInstr, and dart::BoxIntegerInstr.
Definition at line 1628 of file il.cc.
|
inline |
|
inline |
|
pure virtual |
Implemented in dart::ParallelMoveInstr, dart::BlockEntryInstr, dart::PhiInstr, dart::ParameterInstr, dart::NativeParameterInstr, dart::StoreIndexedUnsafeInstr, dart::LoadIndexedUnsafeInstr, dart::MemoryCopyInstr, dart::TailCallInstr, dart::MoveArgumentInstr, dart::ReturnBaseInstr, dart::ThrowInstr, dart::ReThrowInstr, dart::StopInstr, dart::GotoInstr, dart::IndirectGotoInstr, dart::BranchInstr, dart::DeoptimizeInstr, dart::RedefinitionInstr, dart::ReachabilityFenceInstr, dart::ConstraintInstr, dart::ConstantInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::StrictCompareInstr, dart::TestIntInstr, dart::TestCidsInstr, dart::TestRangeInstr, dart::EqualityCompareInstr, dart::RelationalOpInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::LoadLocalInstr, dart::DropTempsInstr, dart::MakeTempInstr, dart::StoreLocalInstr, dart::NativeCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::DebugStepCheckInstr, dart::StoreFieldInstr, dart::GuardFieldInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::StoreStaticFieldInstr, dart::LoadIndexedInstr, dart::LoadCodeUnitsInstr, dart::OneByteStringFromCharCodeInstr, dart::StringToCharCodeInstr, dart::Utf8ScanInstr, dart::StoreIndexedInstr, dart::RecordCoverageInstr, dart::BooleanNegateInstr, dart::BoolToIntInstr, dart::IntToBoolInstr, dart::InstanceOfInstr, dart::AllocationInstr, dart::MaterializeObjectInstr, dart::LoadUntaggedInstr, dart::CalculateElementAddressInstr, dart::LoadClassIdInstr, dart::InstantiateTypeInstr, dart::InstantiateTypeArgumentsInstr, dart::AllocateContextInstr, dart::CloneContextInstr, dart::CheckEitherNonSmiInstr, dart::BoxInstr, dart::UnboxInstr, dart::UnboxIntegerInstr, dart::CaseInsensitiveCompareInstr, dart::MathMinMaxInstr, dart::BinaryDoubleOpInstr, dart::DoubleTestOpInstr, dart::HashDoubleOpInstr, dart::HashIntegerOpInstr, dart::UnarySmiOpInstr, dart::UnaryUint32OpInstr, dart::UnaryInt64OpInstr, dart::BinarySmiOpInstr, dart::BinaryInt32OpInstr, dart::BinaryUint32OpInstr, dart::BinaryInt64OpInstr, dart::ShiftInt64OpInstr, dart::SpeculativeShiftInt64OpInstr, dart::ShiftUint32OpInstr, dart::SpeculativeShiftUint32OpInstr, dart::UnaryDoubleOpInstr, dart::CheckStackOverflowInstr, dart::SmiToDoubleInstr, dart::Int32ToDoubleInstr, dart::Int64ToDoubleInstr, dart::DoubleToIntegerInstr, dart::DoubleToSmiInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::FloatCompareInstr, dart::InvokeMathCFunctionInstr, dart::ExtractNthOutputInstr, dart::MakePairInstr, dart::UnboxLaneInstr, dart::BoxLanesInstr, dart::TruncDivModInstr, dart::CheckClassInstr, dart::CheckSmiInstr, dart::CheckNullInstr, dart::CheckClassIdInstr, dart::CheckArrayBoundInstr, dart::GenericCheckBoundInstr, dart::CheckWritableInstr, dart::CheckConditionInstr, dart::IntConverterInstr, dart::BitCastInstr, dart::LoadThreadInstr, dart::SimdOpInstr, dart::Call1ArgStubInstr, and dart::SuspendInstr.
|
inlinevirtual |
Reimplemented in dart::ThrowInstr, dart::ReThrowInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::InstanceOfInstr, dart::AllocationInstr, dart::InstantiateTypeInstr, dart::InstantiateTypeArgumentsInstr, dart::CloneContextInstr, dart::CheckStackOverflowInstr, dart::CheckNullInstr, dart::GenericCheckBoundInstr, dart::CheckWritableInstr, dart::Call1ArgStubInstr, and dart::SuspendInstr.
Definition at line 1070 of file il.h.
|
inlineprotectedvirtual |
Reimplemented in dart::BranchInstr, dart::IfThenElseInstr, and dart::CheckConditionInstr.
Definition at line 1411 of file il.h.
|
pure virtual |
|
inline |
|
inline |
Definition at line 993 of file il.h.
|
inlinevirtual |
Reimplemented in dart::DartReturnInstr, dart::GotoInstr, dart::ComparisonInstr, dart::BranchInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::StoreFieldInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::LoadIndexedInstr, dart::Utf8ScanInstr, dart::StoreIndexedInstr, dart::BoxInstr, dart::UnboxInstr, dart::MathMinMaxInstr, dart::BinaryDoubleOpInstr, dart::HashDoubleOpInstr, dart::HashIntegerOpInstr, dart::UnaryIntegerOpInstr, dart::BinaryIntegerOpInstr, dart::UnaryDoubleOpInstr, dart::Int64ToDoubleInstr, dart::DoubleToIntegerInstr, dart::DoubleToSmiInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::InvokeMathCFunctionInstr, dart::BoxLanesInstr, dart::TruncDivModInstr, dart::GenericCheckBoundInstr, dart::IntConverterInstr, and dart::SimdOpInstr.
|
inlinevirtual |
Reimplemented in dart::ComparisonInstr.
Definition at line 1213 of file il.h.
|
inline |
bool dart::Instruction::Equals | ( | const Instruction & | other | ) | const |
|
virtual |
Reimplemented in dart::BlockEntryInstr, dart::PhiInstr, and dart::ParameterInstr.
Definition at line 1352 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 1317 of file il.h.
|
virtual |
Reimplemented in dart::PhiInstr, and dart::ParameterInstr.
Definition at line 610 of file il.cc.
|
inline |
|
inline |
|
pure virtual |
Implemented in dart::PureInstruction, dart::ParallelMoveInstr, dart::BlockEntryInstr, dart::JoinEntryInstr, dart::PureDefinition, dart::PhiInstr, dart::ParameterInstr, dart::NativeParameterInstr, dart::StoreIndexedUnsafeInstr, dart::LoadIndexedUnsafeInstr, dart::MemoryCopyInstr, dart::TailCallInstr, dart::MoveArgumentInstr, dart::ReturnBaseInstr, dart::ThrowInstr, dart::ReThrowInstr, dart::StopInstr, dart::GotoInstr, dart::IndirectGotoInstr, dart::PureComparison, dart::BranchInstr, dart::RedefinitionInstr, dart::ReachabilityFenceInstr, dart::ConstraintInstr, dart::ClosureCallInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::IfThenElseInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::LoadLocalInstr, dart::DropTempsInstr, dart::MakeTempInstr, dart::StoreLocalInstr, dart::NativeCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::DebugStepCheckInstr, dart::StoreFieldInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::StoreStaticFieldInstr, dart::LoadIndexedInstr, dart::LoadCodeUnitsInstr, dart::Utf8ScanInstr, dart::StoreIndexedInstr, dart::RecordCoverageInstr, dart::BooleanNegateInstr, dart::BoolToIntInstr, dart::IntToBoolInstr, dart::InstanceOfInstr, dart::AllocateObjectInstr, dart::AllocateClosureInstr, dart::AllocateUninitializedContextInstr, dart::AllocateRecordInstr, dart::AllocateSmallRecordInstr, dart::MaterializeObjectInstr, dart::CreateArrayInstr, dart::AllocateTypedDataInstr, dart::LoadUntaggedInstr, dart::CalculateElementAddressInstr, dart::InstantiateTypeInstr, dart::InstantiateTypeArgumentsInstr, dart::AllocateContextInstr, dart::CloneContextInstr, dart::CheckStackOverflowInstr, dart::DoubleToIntegerInstr, dart::InvokeMathCFunctionInstr, dart::CheckClassInstr, dart::CheckClassIdInstr, dart::CheckConditionInstr, dart::SimdOpInstr, dart::Call1ArgStubInstr, and dart::SuspendInstr.
bool dart::Instruction::HasUnmatchedInputRepresentations | ( | ) | const |
Definition at line 1609 of file il.cc.
void dart::Instruction::InheritDeoptTarget | ( | Zone * | zone, |
Instruction * | other | ||
) |
Definition at line 1569 of file il.cc.
void dart::Instruction::InheritDeoptTargetAfter | ( | FlowGraph * | flow_graph, |
Definition * | call, | ||
Definition * | result | ||
) |
|
inline |
Definition at line 1202 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr.
Definition at line 1311 of file il.h.
|
pure virtual |
Implemented in dart::TemplateInstruction< N, ThrowsTrait, CSETrait >, dart::TemplateInstruction< 5, Throws, Pure >, dart::TemplateInstruction< 0, NoThrow >, dart::TemplateInstruction< 1, NoThrow >, dart::TemplateInstruction< 2, NoThrow, Pure >, dart::TemplateInstruction< 1, NoThrow, Pure >, dart::TemplateInstruction< 0, NoThrow, Pure >, dart::TemplateInstruction< 5, NoThrow >, dart::TemplateInstruction< 2, Throws >, dart::TemplateInstruction< 2, NoThrow >, dart::TemplateInstruction< 3, NoThrow >, dart::TemplateInstruction< 1, Throws, Pure >, dart::TemplateInstruction< 1, Throws >, dart::TemplateDefinition< N, ThrowsTrait, CSETrait >, dart::TemplateDefinition< 4, Throws, Pure >, dart::TemplateDefinition< 1, Throws, Pure >, dart::TemplateDefinition< 2, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow >, dart::TemplateDefinition< 4, NoThrow, Pure >, dart::TemplateDefinition< 3, NoThrow >, dart::TemplateDefinition< 1, Throws >, dart::TemplateDefinition< 0, NoThrow, Pure >, dart::TemplateDefinition< 3, Throws >, dart::TemplateDefinition< 2, Throws >, dart::TemplateDefinition< 2, NoThrow >, dart::TemplateDefinition< N, Throws >, dart::TemplateDefinition< 0, NoThrow >, dart::TemplateDefinition< 5, NoThrow >, dart::VariadicDefinition, dart::DartReturnInstr, dart::NativeReturnInstr, dart::TemplateComparison< N, ThrowsTrait, CSETrait >, dart::TemplateComparison< 1, NoThrow, Pure >, dart::TemplateComparison< 2, NoThrow, Pure >, dart::BranchInstr, dart::IfThenElseInstr, dart::DropTempsInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 3 >, dart::TemplateAllocation< 0 >, dart::AllocateObjectInstr, dart::TemplateArrayAllocation< N >, dart::TemplateArrayAllocation< 1 >, dart::TemplateArrayAllocation< 2 >, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
pure virtual |
Implemented in dart::TemplateInstruction< N, ThrowsTrait, CSETrait >, dart::TemplateInstruction< 5, Throws, Pure >, dart::TemplateInstruction< 0, NoThrow >, dart::TemplateInstruction< 1, NoThrow >, dart::TemplateInstruction< 2, NoThrow, Pure >, dart::TemplateInstruction< 1, NoThrow, Pure >, dart::TemplateInstruction< 0, NoThrow, Pure >, dart::TemplateInstruction< 5, NoThrow >, dart::TemplateInstruction< 2, Throws >, dart::TemplateInstruction< 2, NoThrow >, dart::TemplateInstruction< 3, NoThrow >, dart::TemplateInstruction< 1, Throws, Pure >, dart::TemplateInstruction< 1, Throws >, dart::TemplateDefinition< N, ThrowsTrait, CSETrait >, dart::TemplateDefinition< 4, Throws, Pure >, dart::TemplateDefinition< 1, Throws, Pure >, dart::TemplateDefinition< 2, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow >, dart::TemplateDefinition< 4, NoThrow, Pure >, dart::TemplateDefinition< 3, NoThrow >, dart::TemplateDefinition< 1, Throws >, dart::TemplateDefinition< 0, NoThrow, Pure >, dart::TemplateDefinition< 3, Throws >, dart::TemplateDefinition< 2, Throws >, dart::TemplateDefinition< 2, NoThrow >, dart::TemplateDefinition< N, Throws >, dart::TemplateDefinition< 0, NoThrow >, dart::TemplateDefinition< 5, NoThrow >, dart::VariadicDefinition, dart::DartReturnInstr, dart::NativeReturnInstr, dart::TemplateComparison< N, ThrowsTrait, CSETrait >, dart::TemplateComparison< 1, NoThrow, Pure >, dart::TemplateComparison< 2, NoThrow, Pure >, dart::BranchInstr, dart::IfThenElseInstr, dart::DropTempsInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 3 >, dart::TemplateAllocation< 0 >, dart::AllocateObjectInstr, dart::AllocateClosureInstr, dart::AllocateSmallRecordInstr, dart::TemplateArrayAllocation< N >, dart::TemplateArrayAllocation< 1 >, dart::TemplateArrayAllocation< 2 >, dart::BoxLanesInstr, dart::CheckConditionInstr, dart::SimdOpInstr, and dart::SuspendInstr.
|
inline |
void dart::Instruction::InsertAfter | ( | Instruction * | prev | ) |
|
inline |
bool dart::Instruction::IsDominatedBy | ( | Instruction * | dom | ) |
Definition at line 1581 of file il.cc.
|
inline |
|
inline |
|
static |
|
pure virtual |
|
inlinevirtual |
Reimplemented in dart::StoreIndexedUnsafeInstr, dart::StoreFieldInstr, dart::StoreStaticFieldInstr, dart::StoreIndexedInstr, dart::RecordCoverageInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 3 >, dart::TemplateAllocation< 0 >, and dart::AllocateObjectInstr.
Definition at line 1352 of file il.h.
|
pure virtual |
Implemented in dart::TemplateInstruction< N, ThrowsTrait, CSETrait >, dart::TemplateInstruction< 5, Throws, Pure >, dart::TemplateInstruction< 0, NoThrow >, dart::TemplateInstruction< 1, NoThrow >, dart::TemplateInstruction< 2, NoThrow, Pure >, dart::TemplateInstruction< 1, NoThrow, Pure >, dart::TemplateInstruction< 0, NoThrow, Pure >, dart::TemplateInstruction< 5, NoThrow >, dart::TemplateInstruction< 2, Throws >, dart::TemplateInstruction< 2, NoThrow >, dart::TemplateInstruction< 3, NoThrow >, dart::TemplateInstruction< 1, Throws, Pure >, dart::TemplateInstruction< 1, Throws >, dart::TemplateDefinition< N, ThrowsTrait, CSETrait >, dart::TemplateDefinition< 4, Throws, Pure >, dart::TemplateDefinition< 1, Throws, Pure >, dart::TemplateDefinition< 2, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow >, dart::TemplateDefinition< 4, NoThrow, Pure >, dart::TemplateDefinition< 3, NoThrow >, dart::TemplateDefinition< 1, Throws >, dart::TemplateDefinition< 0, NoThrow, Pure >, dart::TemplateDefinition< 3, Throws >, dart::TemplateDefinition< 2, Throws >, dart::TemplateDefinition< 2, NoThrow >, dart::TemplateDefinition< N, Throws >, dart::TemplateDefinition< 0, NoThrow >, dart::TemplateDefinition< 5, NoThrow >, dart::PhiInstr, dart::ReturnBaseInstr, dart::TemplateComparison< N, ThrowsTrait, CSETrait >, dart::TemplateComparison< 1, NoThrow, Pure >, dart::TemplateComparison< 2, NoThrow, Pure >, dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::IfThenElseInstr, dart::DropTempsInstr, dart::MakeTempInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::AllocationInstr, dart::MaterializeObjectInstr, dart::BinaryInt64OpInstr, dart::ShiftInt64OpInstr, dart::ShiftUint32OpInstr, dart::InvokeMathCFunctionInstr, dart::GenericCheckBoundInstr, dart::CheckConditionInstr, and dart::SimdOpInstr.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::AllocationInstr, dart::InstantiateTypeInstr, dart::InstantiateTypeArgumentsInstr, dart::CloneContextInstr, dart::Call1ArgStubInstr, and dart::SuspendInstr.
Definition at line 1220 of file il.h.
|
inline |
|
privatepure virtual |
Implemented in dart::TemplateInstruction< N, ThrowsTrait, CSETrait >, dart::TemplateInstruction< 5, Throws, Pure >, dart::TemplateInstruction< 0, NoThrow >, dart::TemplateInstruction< 1, NoThrow >, dart::TemplateInstruction< 2, NoThrow, Pure >, dart::TemplateInstruction< 1, NoThrow, Pure >, dart::TemplateInstruction< 0, NoThrow, Pure >, dart::TemplateInstruction< 5, NoThrow >, dart::TemplateInstruction< 2, Throws >, dart::TemplateInstruction< 2, NoThrow >, dart::TemplateInstruction< 3, NoThrow >, dart::TemplateInstruction< 1, Throws, Pure >, dart::TemplateInstruction< 1, Throws >, dart::TemplateDefinition< N, ThrowsTrait, CSETrait >, dart::TemplateDefinition< 4, Throws, Pure >, dart::TemplateDefinition< 1, Throws, Pure >, dart::TemplateDefinition< 2, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow, Pure >, dart::TemplateDefinition< 1, NoThrow >, dart::TemplateDefinition< 4, NoThrow, Pure >, dart::TemplateDefinition< 3, NoThrow >, dart::TemplateDefinition< 1, Throws >, dart::TemplateDefinition< 0, NoThrow, Pure >, dart::TemplateDefinition< 3, Throws >, dart::TemplateDefinition< 2, Throws >, dart::TemplateDefinition< 2, NoThrow >, dart::TemplateDefinition< N, Throws >, dart::TemplateDefinition< 0, NoThrow >, dart::TemplateDefinition< 5, NoThrow >, dart::DartReturnInstr, dart::NativeReturnInstr, dart::TemplateComparison< N, ThrowsTrait, CSETrait >, dart::TemplateComparison< 1, NoThrow, Pure >, dart::TemplateComparison< 2, NoThrow, Pure >, dart::BranchInstr, dart::TemplateAllocation< N >, dart::TemplateAllocation< 3 >, dart::TemplateAllocation< 0 >, 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 1301 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::ParameterInstr, dart::NativeParameterInstr, dart::LoadIndexedUnsafeInstr, dart::MoveArgumentInstr, dart::DartReturnInstr, dart::UnboxedConstantInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::LoadIndexedInstr, dart::LoadCodeUnitsInstr, dart::Utf8ScanInstr, dart::BoolToIntInstr, dart::IntToBoolInstr, dart::LoadUntaggedInstr, dart::CalculateElementAddressInstr, dart::LoadClassIdInstr, dart::LoadFieldInstr, dart::UnboxInstr, dart::CaseInsensitiveCompareInstr, dart::MathMinMaxInstr, dart::BinaryDoubleOpInstr, dart::HashDoubleOpInstr, dart::HashIntegerOpInstr, dart::UnaryUint32OpInstr, dart::UnaryInt64OpInstr, dart::BinaryInt32OpInstr, dart::BinaryUint32OpInstr, dart::BinaryInt64OpInstr, dart::ShiftInt64OpInstr, dart::SpeculativeShiftInt64OpInstr, dart::ShiftUint32OpInstr, dart::SpeculativeShiftUint32OpInstr, dart::UnaryDoubleOpInstr, dart::SmiToDoubleInstr, dart::Int32ToDoubleInstr, dart::Int64ToDoubleInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::FloatCompareInstr, dart::InvokeMathCFunctionInstr, dart::ExtractNthOutputInstr, dart::MakePairInstr, dart::UnboxLaneInstr, dart::TruncDivModInstr, dart::GenericCheckBoundInstr, dart::IntConverterInstr, dart::BitCastInstr, dart::LoadThreadInstr, and dart::SimdOpInstr.
Definition at line 1260 of file il.h.
|
inlinevirtual |
Reimplemented in dart::PhiInstr, dart::BranchInstr, dart::IfThenElseInstr, dart::NativeReturnInstr, dart::IndirectGotoInstr, dart::ReachabilityFenceInstr, dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::TestIntInstr, dart::TestCidsInstr, dart::TestRangeInstr, dart::EqualityCompareInstr, dart::RelationalOpInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::FfiCallInstr, dart::LeafRuntimeCallInstr, dart::LoadIndexedInstr, dart::LoadCodeUnitsInstr, dart::Utf8ScanInstr, dart::StoreIndexedInstr, dart::BoolToIntInstr, dart::IntToBoolInstr, dart::MaterializeObjectInstr, dart::LoadUntaggedInstr, dart::CalculateElementAddressInstr, dart::LoadFieldInstr, dart::BoxInstr, dart::MathMinMaxInstr, dart::BinaryDoubleOpInstr, dart::DoubleTestOpInstr, dart::HashDoubleOpInstr, dart::HashIntegerOpInstr, dart::UnaryUint32OpInstr, dart::UnaryInt64OpInstr, dart::BinaryInt32OpInstr, dart::BinaryUint32OpInstr, dart::BinaryInt64OpInstr, dart::ShiftInt64OpInstr, dart::SpeculativeShiftInt64OpInstr, dart::ShiftUint32OpInstr, dart::SpeculativeShiftUint32OpInstr, dart::UnaryDoubleOpInstr, dart::DoubleToIntegerInstr, dart::DoubleToSmiInstr, dart::DoubleToFloatInstr, dart::FloatToDoubleInstr, dart::FloatCompareInstr, dart::InvokeMathCFunctionInstr, dart::ExtractNthOutputInstr, dart::MakePairInstr, dart::UnboxLaneInstr, dart::BoxLanesInstr, dart::TruncDivModInstr, dart::GenericCheckBoundInstr, dart::IntConverterInstr, dart::BitCastInstr, dart::LoadThreadInstr, dart::SimdOpInstr, dart::ParameterInstr, dart::StoreIndexedUnsafeInstr, dart::LoadIndexedUnsafeInstr, dart::MemoryCopyInstr, dart::MoveArgumentInstr, dart::DartReturnInstr, dart::StoreFieldInstr, dart::Int32ToDoubleInstr, and dart::Int64ToDoubleInstr.
Definition at line 1241 of file il.h.
|
inlinevirtual |
Reimplemented in dart::BranchInstr.
|
inline |
Definition at line 1094 of file il.h.
|
inline |
void dart::Instruction::SetEnvironment | ( | Environment * | deopt_env | ) |
|
inline |
|
inlinevirtual |
Reimplemented in dart::BranchInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, and dart::TemplateDartCall< 1 >.
|
inline |
Definition at line 1229 of file il.h.
|
inlinestatic |
|
inline |
|
inlinevirtual |
Reimplemented in dart::InstanceCallBaseInstr, dart::DispatchTableCallInstr, dart::StaticCallInstr, dart::CachableIdempotentCallInstr, dart::DoubleToIntegerInstr, dart::InvokeMathCFunctionInstr, dart::PhiInstr, dart::ReturnBaseInstr, dart::TestIntInstr, dart::EqualityCompareInstr, dart::RelationalOpInstr, dart::StoreFieldInstr, dart::Utf8ScanInstr, dart::StoreIndexedInstr, dart::CalculateElementAddressInstr, dart::BoxInstr, dart::UnboxInstr, dart::BinaryDoubleOpInstr, dart::UnaryInt64OpInstr, dart::BinaryUint32OpInstr, dart::BinaryInt64OpInstr, dart::ShiftInt64OpInstr, dart::ShiftUint32OpInstr, dart::UnaryDoubleOpInstr, dart::Int64ToDoubleInstr, dart::DoubleToFloatInstr, dart::BoxLanesInstr, and dart::GenericCheckBoundInstr.
|
inline |
|
inlinevirtual |
|
virtual |
Reimplemented in dart::GraphEntryInstr, dart::GotoInstr, dart::IndirectGotoInstr, and dart::BranchInstr.
Definition at line 1981 of file il.cc.
|
virtual |
Reimplemented in dart::GraphEntryInstr, dart::GotoInstr, dart::IndirectGotoInstr, and dart::BranchInstr.
Definition at line 1977 of file il.cc.
|
inline |
|
pure virtual |
const char * dart::Instruction::ToCString | ( | ) | const |
Definition at line 1683 of file il_printer.cc.
|
inlinevirtual |
Reimplemented in dart::ParallelMoveInstr, dart::BlockEntryInstr, dart::MoveArgumentInstr, dart::DartReturnInstr, dart::ThrowInstr, dart::ReThrowInstr, dart::GotoInstr, dart::ComparisonInstr, dart::BranchInstr, dart::ConstantInstr, dart::AssertSubtypeInstr, dart::AssertAssignableInstr, dart::AssertBooleanInstr, dart::TemplateDartCall< kExtraInputs >, dart::TemplateDartCall< 0 >, dart::TemplateDartCall< 1 >, dart::LoadLocalInstr, dart::DropTempsInstr, dart::MakeTempInstr, dart::StoreLocalInstr, dart::NativeCallInstr, dart::DebugStepCheckInstr, dart::StoreFieldInstr, dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::StoreStaticFieldInstr, dart::LoadIndexedInstr, dart::LoadCodeUnitsInstr, dart::RecordCoverageInstr, dart::InstanceOfInstr, dart::AllocationInstr, dart::InstantiateTypeInstr, dart::InstantiateTypeArgumentsInstr, dart::CloneContextInstr, dart::BoxInstr, dart::UnboxInstr, dart::BinaryDoubleOpInstr, dart::CheckStackOverflowInstr, dart::SmiToDoubleInstr, dart::InvokeMathCFunctionInstr, dart::BoxLanesInstr, dart::CheckClassInstr, dart::CheckSmiInstr, dart::CheckNullInstr, dart::Call1ArgStubInstr, and dart::SuspendInstr.
Definition at line 1005 of file il.h.
void dart::Instruction::Unsupported | ( | FlowGraphCompiler * | compiler | ) |
void dart::Instruction::UnuseAllInputs | ( | ) |
|
inlinevirtual |
Reimplemented in dart::TemplateLoadField< N >, dart::TemplateLoadField< 1 >, dart::TemplateLoadField< 0 >, dart::CheckStackOverflowInstr, dart::CheckNullInstr, and dart::GenericCheckBoundInstr.
Definition at line 1377 of file il.h.
|
inline |
|
protected |
Definition at line 1112 of file il_serializer.cc.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
static |