Flutter Engine
The Flutter Engine
|
#include <object.h>
Classes | |
struct | ArrayTraits |
class | EntryPointField |
class | KindField |
class | OffsetField |
Public Types | |
enum | CallKind { kPcRelativeCall = 1 , kPcRelativeTTSCall = 2 , kPcRelativeTailCall = 3 , kCallViaCode = 4 } |
enum | CallEntryPoint { kDefaultEntry , kUncheckedEntry } |
enum | SCallTableEntry { kSCallTableKindAndOffset = 0 , kSCallTableCodeOrTypeTarget = 1 , kSCallTableFunctionTarget = 2 , kSCallTableEntryLength = 3 } |
enum class | PoolAttachment { kAttachPool , kNotAttachPool } |
using | EntryKind = CodeEntryKind |
Public Types inherited from dart::Object | |
enum | NameVisibility { kInternalName = 0 , kScrubbedName , kUserVisibleName } |
enum class | NameDisambiguation { kYes , kNo } |
using | UntaggedObjectType = UntaggedObject |
using | ObjectPtrType = ObjectPtr |
Public Member Functions | |
InstructionsPtr | active_instructions () const |
InstructionsPtr | instructions () const |
ObjectPoolPtr | object_pool () const |
intptr_t | pointer_offsets_length () const |
bool | is_optimized () const |
void | set_is_optimized (bool value) const |
bool | is_force_optimized () const |
void | set_is_force_optimized (bool value) const |
bool | is_alive () const |
void | set_is_alive (bool value) const |
bool | is_discarded () const |
void | set_is_discarded (bool value) const |
bool | HasMonomorphicEntry () const |
uword | PayloadStart () const |
uword | EntryPoint () const |
uword | UncheckedEntryPoint () const |
uword | MonomorphicEntryPoint () const |
uword | MonomorphicUncheckedEntryPoint () const |
uword | Size () const |
ObjectPoolPtr | GetObjectPool () const |
bool | ContainsInstructionAt (uword addr) const |
bool | HasBreakpoint () const |
PcDescriptorsPtr | pc_descriptors () const |
void | set_pc_descriptors (const PcDescriptors &descriptors) const |
CodeSourceMapPtr | code_source_map () const |
void | set_code_source_map (const CodeSourceMap &code_source_map) const |
ArrayPtr | deopt_info_array () const |
void | set_deopt_info_array (const Array &array) const |
intptr_t | num_variables () const |
void | set_num_variables (intptr_t num_variables) const |
CompressedStackMapsPtr | compressed_stackmaps () const |
void | set_compressed_stackmaps (const CompressedStackMaps &maps) const |
void | set_static_calls_target_table (const Array &value) const |
ArrayPtr | static_calls_target_table () const |
TypedDataPtr | GetDeoptInfoAtPc (uword pc, ICData::DeoptReasonId *deopt_reason, uint32_t *deopt_flags) const |
FunctionPtr | GetStaticCallTargetFunctionAt (uword pc) const |
void | SetStaticCallTargetCodeAt (uword pc, const Code &code) const |
void | SetStubCallTargetCodeAt (uword pc, const Code &code) const |
void | Disassemble (DisassemblyFormatter *formatter=nullptr) const |
ObjectPtr | return_address_metadata () const |
void | SetPrologueOffset (intptr_t offset) const |
intptr_t | GetPrologueOffset () const |
ArrayPtr | inlined_id_to_function () const |
void | set_inlined_id_to_function (const Array &value) const |
void | GetInlinedFunctionsAtInstruction (intptr_t pc_offset, GrowableArray< const Function * > *functions, GrowableArray< TokenPosition > *token_positions) const |
void | GetInlinedFunctionsAtReturnAddress (intptr_t pc_offset, GrowableArray< const Function * > *functions, GrowableArray< TokenPosition > *token_positions) const |
NOT_IN_PRODUCT (void PrintJSONInlineIntervals(JSONObject *object) const) | |
void | DumpInlineIntervals () const |
void | DumpSourcePositions (bool relative_addresses=false) const |
LocalVarDescriptorsPtr | var_descriptors () const |
void | set_var_descriptors (const LocalVarDescriptors &value) const |
LocalVarDescriptorsPtr | GetLocalVarDescriptors () const |
ExceptionHandlersPtr | exception_handlers () const |
void | set_exception_handlers (const ExceptionHandlers &handlers) const |
FunctionPtr | function () const |
ObjectPtr | owner () const |
void | set_owner (const Object &owner) const |
classid_t | OwnerClassId () const |
int32_t | GetPointerOffsetAt (int index) const |
TokenPosition | GetTokenIndexOfPC (uword pc) const |
uword | GetPcForDeoptId (intptr_t deopt_id, UntaggedPcDescriptors::Kind kind) const |
intptr_t | GetDeoptIdForOsr (uword pc) const |
uint32_t | Hash () const |
const char * | Name () const |
const char * | QualifiedName (const NameFormattingParams ¶ms) const |
int64_t | compile_timestamp () const |
bool | IsStubCode () const |
bool | IsAllocationStubCode () const |
bool | IsTypeTestStubCode () const |
bool | IsFunctionCode () const |
bool | IsUnknownDartCode () const |
void | DisableDartCode () const |
void | DisableStubCode (bool is_cls_parameterized) const |
void | Enable () const |
bool | IsDisabled () const |
void | set_object_pool (ObjectPoolPtr object_pool) const |
Public Member Functions inherited from dart::Object | |
virtual | ~Object () |
ObjectPtr | ptr () const |
void | operator= (ObjectPtr value) |
bool | IsCanonical () const |
void | SetCanonical () const |
void | ClearCanonical () const |
bool | IsImmutable () const |
void | SetImmutable () const |
void | ClearImmutable () const |
intptr_t | GetClassId () const |
ClassPtr | clazz () const |
CLASS_LIST_FOR_HANDLES (DEFINE_CLASS_TESTER) | |
bool | IsNull () const |
virtual const char * | ToCString () const |
void | PrintJSON (JSONStream *stream, bool ref=true) const |
virtual void | PrintJSONImpl (JSONStream *stream, bool ref) const |
void | PrintImplementationFields (JSONStream *stream) const |
virtual void | PrintImplementationFieldsImpl (const JSONArray &jsarr_fields) const |
virtual const char * | JSONType () const |
virtual StringPtr | DictionaryName () const |
bool | IsNew () const |
bool | IsOld () const |
bool | InVMIsolateHeap () const |
void | Print () const |
Static Public Member Functions | |
static InstructionsPtr | InstructionsOf (const CodePtr code) |
static intptr_t | instructions_offset () |
static intptr_t | active_instructions_offset () |
static const char * | EntryKindToCString (EntryKind kind) |
static bool | ParseEntryKind (const char *str, EntryKind *out) |
static intptr_t | entry_point_offset (EntryKind kind=EntryKind::kNormal) |
static intptr_t | object_pool_offset () |
static bool | IsOptimized (CodePtr code) |
static bool | IsDiscarded (const CodePtr code) |
static bool | HasMonomorphicEntry (const CodePtr code) |
static uword | PayloadStartOf (const CodePtr code) |
static uword | EntryPointOf (const CodePtr code) |
static uword | UncheckedEntryPointOf (const CodePtr code) |
static uword | PayloadSizeOf (const CodePtr code) |
static bool | ContainsInstructionAt (const CodePtr code, uword pc) |
static classid_t | OwnerClassIdOf (CodePtr raw) |
static intptr_t | owner_offset () |
static intptr_t | InstanceSize () |
static intptr_t | InstanceSize (intptr_t len) |
static CodePtr | FinalizeCode (FlowGraphCompiler *compiler, compiler::Assembler *assembler, PoolAttachment pool_attachment, bool optimized, CodeStatistics *stats) |
static void | NotifyCodeObservers (const Code &code, bool optimized) |
static void | NotifyCodeObservers (const Function &function, const Code &code, bool optimized) |
static void | NotifyCodeObservers (const char *name, const Code &code, bool optimized) |
static CodePtr | FinalizeCodeAndNotify (const Function &function, FlowGraphCompiler *compiler, compiler::Assembler *assembler, PoolAttachment pool_attachment, bool optimized=false, CodeStatistics *stats=nullptr) |
static CodePtr | FinalizeCodeAndNotify (const char *name, FlowGraphCompiler *compiler, compiler::Assembler *assembler, PoolAttachment pool_attachment, bool optimized=false, CodeStatistics *stats=nullptr) |
static CodePtr | FindCode (uword pc, int64_t timestamp) |
static CodePtr | FindCodeUnsafe (uword pc) |
static bool | IsUnknownDartCode (CodePtr code) |
static bool | IsDisabled (CodePtr code) |
Static Public Member Functions inherited from dart::Object | |
static ObjectPtr | RawCast (ObjectPtr obj) |
static constexpr bool | ContainsCompressedPointers () |
static intptr_t | tags_offset () |
static Object & | Handle () |
static Object & | Handle (Zone *zone) |
static Object & | Handle (ObjectPtr ptr) |
static Object & | Handle (Zone *zone, ObjectPtr ptr) |
static Object & | ZoneHandle () |
static Object & | ZoneHandle (Zone *zone) |
static Object & | ZoneHandle (ObjectPtr ptr) |
static Object & | ZoneHandle (Zone *zone, ObjectPtr ptr) |
static Object * | ReadOnlyHandle () |
static ObjectPtr | null () |
static void | set_vm_isolate_snapshot_object_table (const Array &table) |
static ClassPtr | class_class () |
static ClassPtr | dynamic_class () |
static ClassPtr | void_class () |
static ClassPtr | type_parameters_class () |
static ClassPtr | type_arguments_class () |
static ClassPtr | patch_class_class () |
static ClassPtr | function_class () |
static ClassPtr | closure_data_class () |
static ClassPtr | ffi_trampoline_data_class () |
static ClassPtr | field_class () |
static ClassPtr | script_class () |
static ClassPtr | library_class () |
static ClassPtr | namespace_class () |
static ClassPtr | kernel_program_info_class () |
static ClassPtr | code_class () |
static ClassPtr | instructions_class () |
static ClassPtr | instructions_section_class () |
static ClassPtr | instructions_table_class () |
static ClassPtr | object_pool_class () |
static ClassPtr | pc_descriptors_class () |
static ClassPtr | code_source_map_class () |
static ClassPtr | compressed_stackmaps_class () |
static ClassPtr | var_descriptors_class () |
static ClassPtr | exception_handlers_class () |
static ClassPtr | context_class () |
static ClassPtr | context_scope_class () |
static ClassPtr | sentinel_class () |
static ClassPtr | api_error_class () |
static ClassPtr | language_error_class () |
static ClassPtr | unhandled_exception_class () |
static ClassPtr | unwind_error_class () |
static ClassPtr | singletargetcache_class () |
static ClassPtr | unlinkedcall_class () |
static ClassPtr | monomorphicsmiablecall_class () |
static ClassPtr | icdata_class () |
static ClassPtr | megamorphic_cache_class () |
static ClassPtr | subtypetestcache_class () |
static ClassPtr | loadingunit_class () |
static ClassPtr | weak_serialization_reference_class () |
static ClassPtr | weak_array_class () |
static void | InitNullAndBool (IsolateGroup *isolate_group) |
static void | Init (IsolateGroup *isolate_group) |
static void | InitVtables () |
static void | FinishInit (IsolateGroup *isolate_group) |
static void | FinalizeVMIsolate (IsolateGroup *isolate_group) |
static void | FinalizeReadOnlyObject (ObjectPtr object) |
static void | Cleanup () |
static ErrorPtr | Init (IsolateGroup *isolate_group, const uint8_t *kernel_buffer, intptr_t kernel_buffer_size) |
static void | MakeUnusedSpaceTraversable (const Object &obj, intptr_t original_size, intptr_t used_size) |
static intptr_t | InstanceSize () |
template<class FakeObject > | |
static void | VerifyBuiltinVtable (intptr_t cid) |
static void | VerifyBuiltinVtables () |
static bool | ShouldHaveImmutabilityBitSet (classid_t class_id) |
Static Public Attributes | |
static constexpr intptr_t | kBytesPerElement |
static constexpr intptr_t | kMaxElements = kSmiMax / kBytesPerElement |
Static Public Attributes inherited from dart::Object | |
static constexpr intptr_t | kHashBits = 30 |
static const ClassId | kClassId = kObjectCid |
Friends | |
class | UntaggedObject |
class | UntaggedCode |
struct | RelocatorTestHelper |
class | Class |
class | CodeTestHelper |
class | StubCode |
class | Precompiler |
class | FunctionSerializationCluster |
class | CodeSerializationCluster |
class | CodeDeserializationCluster |
class | Deserializer |
class | MegamorphicCacheTable |
class | CodePatcher |
class | ProgramVisitor |
class | UntaggedFunction |
class | CallSiteResetter |
class | CodeKeyValueTrait |
class | InstanceCall |
class | StaticCall |
void | DumpStackFrame (intptr_t frame_index, uword pc, uword fp) |
Additional Inherited Members | |
Protected Member Functions inherited from dart::Object | |
Object () | |
uword | raw_value () const |
void | setPtr (ObjectPtr value, intptr_t default_cid) |
void | CheckHandle () const |
cpp_vtable | vtable () const |
void | set_vtable (cpp_vtable value) |
bool | Contains (uword addr) const |
template<typename type , std::memory_order order = std::memory_order_relaxed> | |
type | LoadPointer (type const *addr) const |
template<typename type , std::memory_order order = std::memory_order_relaxed> | |
void | StorePointer (type const *addr, type value) const |
template<typename type , typename compressed_type , std::memory_order order = std::memory_order_relaxed> | |
void | StoreCompressedPointer (compressed_type const *addr, type value) const |
template<typename type > | |
void | StorePointerUnaligned (type const *addr, type value, Thread *thread) const |
void | StoreSmi (SmiPtr const *addr, SmiPtr value) const |
template<typename FieldType > | |
void | StoreSimd128 (const FieldType *addr, simd128_value_t value) const |
template<typename FieldType > | |
FieldType | LoadNonPointer (const FieldType *addr) const |
template<typename FieldType , std::memory_order order> | |
FieldType | LoadNonPointer (const FieldType *addr) const |
template<typename FieldType , typename ValueType > | |
void | StoreNonPointer (const FieldType *addr, ValueType value) const |
template<typename FieldType , typename ValueType , std::memory_order order> | |
void | StoreNonPointer (const FieldType *addr, ValueType value) const |
template<typename FieldType > | |
FieldType * | UnsafeMutableNonPointer (const FieldType *addr) const |
CLASS_LIST (STORE_NON_POINTER_ILLEGAL_TYPE) | |
void | UnimplementedMethod () const |
void | AddCommonObjectProperties (JSONObject *jsobj, const char *protocol_type, bool ref) const |
Static Protected Member Functions inherited from dart::Object | |
static DART_NOINLINE Object & | HandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid) |
static DART_NOINLINE Object & | ZoneHandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid) |
static DART_NOINLINE Object * | ReadOnlyHandleImpl (intptr_t cid) |
static ObjectPtr | Allocate (intptr_t cls_id, intptr_t size, Heap::Space space, bool compressed, uword ptr_field_start_offset, uword ptr_field_end_offset) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | Allocate (Heap::Space space) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | Allocate (Heap::Space space, intptr_t elements) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | AllocateVariant (intptr_t class_id, Heap::Space space) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | AllocateVariant (intptr_t class_id, Heap::Space space, intptr_t elements) |
static constexpr intptr_t | RoundedAllocationSize (intptr_t size) |
static ObjectPtr | Clone (const Object &orig, Heap::Space space, bool load_with_relaxed_atomics=false) |
template<typename T > | |
static DART_FORCE_INLINE uword | from_offset () |
template<typename T > | |
static DART_FORCE_INLINE uword | to_offset (intptr_t length=0) |
Protected Attributes inherited from dart::Object | |
ObjectPtr | ptr_ |
using dart::Code::EntryKind = CodeEntryKind |
Enumerator | |
---|---|
kDefaultEntry | |
kUncheckedEntry |
enum dart::Code::CallKind |
Enumerator | |
---|---|
kPcRelativeCall | |
kPcRelativeTTSCall | |
kPcRelativeTailCall | |
kCallViaCode |
Definition at line 6968 of file object.h.
|
strong |
Enumerator | |
---|---|
kSCallTableKindAndOffset | |
kSCallTableCodeOrTypeTarget | |
kSCallTableFunctionTarget | |
kSCallTableEntryLength |
Definition at line 6980 of file object.h.
|
inline |
Definition at line 6764 of file object.h.
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
Definition at line 6943 of file object.h.
void dart::Code::DisableDartCode | ( | ) | const |
Definition at line 18383 of file object.cc.
void dart::Code::DisableStubCode | ( | bool | is_cls_parameterized | ) | const |
Definition at line 18392 of file object.cc.
void dart::Code::Disassemble | ( | DisassemblyFormatter * | formatter = nullptr | ) | const |
Definition at line 17849 of file object.cc.
void dart::Code::DumpInlineIntervals | ( | ) | const |
Definition at line 18477 of file object.cc.
void dart::Code::DumpSourcePositions | ( | bool | relative_addresses = false | ) | const |
Definition at line 18489 of file object.cc.
|
inline |
|
inlinestatic |
Definition at line 6793 of file object.h.
|
static |
Definition at line 17592 of file object.cc.
|
inlinestatic |
Definition at line 6865 of file object.h.
|
inline |
|
static |
Definition at line 18018 of file object.cc.
|
static |
Definition at line 17998 of file object.cc.
|
static |
|
static |
Definition at line 18188 of file object.cc.
|
static |
Definition at line 18220 of file object.cc.
|
inline |
intptr_t dart::Code::GetDeoptIdForOsr | ( | uword | pc | ) | const |
TypedDataPtr dart::Code::GetDeoptInfoAtPc | ( | uword | pc, |
ICData::DeoptReasonId * | deopt_reason, | ||
uint32_t * | deopt_flags | ||
) | const |
Definition at line 17740 of file object.cc.
void dart::Code::GetInlinedFunctionsAtInstruction | ( | intptr_t | pc_offset, |
GrowableArray< const Function * > * | functions, | ||
GrowableArray< TokenPosition > * | token_positions | ||
) | const |
|
inline |
Definition at line 7085 of file object.h.
LocalVarDescriptorsPtr dart::Code::GetLocalVarDescriptors | ( | ) | const |
Definition at line 17625 of file object.cc.
ObjectPoolPtr dart::Code::GetObjectPool | ( | ) | const |
uword dart::Code::GetPcForDeoptId | ( | intptr_t | deopt_id, |
UntaggedPcDescriptors::Kind | kind | ||
) | const |
|
inline |
intptr_t dart::Code::GetPrologueOffset | ( | ) | const |
Definition at line 17934 of file object.cc.
FunctionPtr dart::Code::GetStaticCallTargetFunctionAt | ( | uword | pc | ) | const |
Definition at line 17800 of file object.cc.
TokenPosition dart::Code::GetTokenIndexOfPC | ( | uword | pc | ) | const |
bool dart::Code::HasBreakpoint | ( | ) | const |
Definition at line 17732 of file object.cc.
uint32_t dart::Code::Hash | ( | ) | const |
Definition at line 18295 of file object.cc.
|
inlinestatic |
ArrayPtr dart::Code::inlined_id_to_function | ( | ) | const |
|
inlinestatic |
|
inlinestatic |
Definition at line 7168 of file object.h.
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
bool dart::Code::IsAllocationStubCode | ( | ) | const |
|
inlinestatic |
Definition at line 7258 of file object.h.
|
inlinestatic |
bool dart::Code::IsFunctionCode | ( | ) | const |
|
inlinestatic |
bool dart::Code::IsStubCode | ( | ) | const |
bool dart::Code::IsTypeTestStubCode | ( | ) | const |
|
static |
|
inline |
Definition at line 6886 of file object.h.
|
inline |
const char * dart::Code::Name | ( | ) | const |
Definition at line 18313 of file object.cc.
dart::Code::NOT_IN_PRODUCT | ( | void PrintJSONInlineIntervals(JSONObject *object) const | ) |
|
static |
Definition at line 18171 of file object.cc.
|
static |
|
static |
intptr_t dart::Code::num_variables | ( | ) | const |
|
inline |
|
inlinestatic |
|
inline |
|
inlinestatic |
|
static |
Definition at line 17608 of file object.cc.
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
const char * dart::Code::QualifiedName | ( | const NameFormattingParams & | params | ) | const |
|
inline |
Definition at line 7055 of file object.h.
|
inline |
void dart::Code::set_compressed_stackmaps | ( | const CompressedStackMaps & | maps | ) | const |
void dart::Code::set_deopt_info_array | ( | const Array & | array | ) | const |
Definition at line 17693 of file object.cc.
|
inline |
void dart::Code::set_inlined_id_to_function | ( | const Array & | value | ) | const |
void dart::Code::set_is_alive | ( | bool | value | ) | const |
void dart::Code::set_is_discarded | ( | bool | value | ) | const |
void dart::Code::set_is_force_optimized | ( | bool | value | ) | const |
void dart::Code::set_is_optimized | ( | bool | value | ) | const |
void dart::Code::set_num_variables | ( | intptr_t | num_variables | ) | const |
|
inline |
void dart::Code::set_owner | ( | const Object & | owner | ) | const |
|
inline |
void dart::Code::set_static_calls_target_table | ( | const Array & | value | ) | const |
Definition at line 17702 of file object.cc.
|
inline |
void dart::Code::SetPrologueOffset | ( | intptr_t | offset | ) | const |
Definition at line 17815 of file object.cc.
Definition at line 17829 of file object.cc.
|
inline |
Definition at line 6999 of file object.h.
|
inline |
|
inlinestatic |
|
inline |
Definition at line 7096 of file object.h.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 77 of file profiler.cc.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
staticconstexpr |
|
staticconstexpr |