V8 Project
|
#include <type-info.h>
Static Public Member Functions | |
static bool | CanRetainOtherContext (Map *map, Context *native_context) |
static bool | CanRetainOtherContext (JSFunction *function, Context *native_context) |
Private Member Functions | |
void | CollectReceiverTypes (TypeFeedbackId id, Handle< String > name, Code::Flags flags, SmallMapList *types) |
void | SetInfo (TypeFeedbackId id, Object *target) |
void | BuildDictionary (Handle< Code > code) |
void | GetRelocInfos (Handle< Code > code, ZoneList< RelocInfo > *infos) |
void | CreateDictionary (Handle< Code > code, ZoneList< RelocInfo > *infos) |
void | RelocateRelocInfos (ZoneList< RelocInfo > *infos, Code *old_code, Code *new_code) |
void | ProcessRelocInfos (ZoneList< RelocInfo > *infos) |
Handle< Object > | GetInfo (TypeFeedbackId id) |
Handle< Object > | GetInfo (int slot) |
DISALLOW_COPY_AND_ASSIGN (TypeFeedbackOracle) | |
Private Attributes | |
Handle< Context > | native_context_ |
Zone * | zone_ |
Handle< UnseededNumberDictionary > | dictionary_ |
Handle< TypeFeedbackVector > | feedback_vector_ |
Definition at line 20 of file type-info.h.
v8::internal::TypeFeedbackOracle::TypeFeedbackOracle | ( | Handle< Code > | code, |
Handle< TypeFeedbackVector > | feedback_vector, | ||
Handle< Context > | native_context, | ||
Zone * | zone | ||
) |
Definition at line 21 of file type-info.cc.
References BuildDictionary(), v8::internal::TypeFeedbackVector::Copy(), DCHECK, dictionary_, v8::internal::feedback_vector, feedback_vector_, and isolate().
void v8::internal::TypeFeedbackOracle::AssignmentReceiverTypes | ( | TypeFeedbackId | id, |
Handle< String > | name, | ||
SmallMapList * | receiver_types | ||
) |
Definition at line 278 of file type-info.cc.
References CollectReceiverTypes(), v8::internal::Code::ComputeHandlerFlags(), v8::internal::anonymous_namespace{flags.cc}::flags, and name.
void v8::internal::TypeFeedbackOracle::BinaryType | ( | TypeFeedbackId | id, |
Type ** | left, | ||
Type ** | right, | ||
Type ** | result, | ||
Maybe< int > * | fixed_right_arg, | ||
Handle< AllocationSite > * | allocation_site, | ||
Token::Value | operation | ||
) |
Definition at line 210 of file type-info.cc.
References v8::internal::Handle< T >::cast(), DCHECK, DCHECK_EQ, GetInfo(), v8::internal::handle(), isolate(), v8::None, NULL, v8::internal::Handle< T >::null(), and zone().
Definition at line 391 of file type-info.cc.
References v8::internal::HandleScope::CloseAndEscape(), CreateDictionary(), dictionary_, GetRelocInfos(), isolate(), ProcessRelocInfos(), and zone().
Referenced by TypeFeedbackOracle().
Definition at line 95 of file type-info.cc.
References GetInfo().
bool v8::internal::TypeFeedbackOracle::CallIsMonomorphic | ( | TypeFeedbackId | aid | ) |
Definition at line 101 of file type-info.cc.
References GetInfo().
|
static |
Definition at line 350 of file type-info.cc.
References v8::internal::Context::builtins(), and v8::internal::Context::global_object().
|
static |
Definition at line 326 of file type-info.cc.
Referenced by v8::internal::StubCache::CollectMatchingMaps(), CollectReceiverTypes(), CompareType(), and GetInfo().
|
private |
Definition at line 302 of file type-info.cc.
References v8::internal::StubCache::CollectMatchingMaps(), CollectReceiverTypes(), DCHECK, v8::internal::anonymous_namespace{flags.cc}::flags, GetInfo(), isolate(), v8::internal::MEGAMORPHIC, name, native_context_, v8::internal::Isolate::stub_cache(), and zone().
void v8::internal::TypeFeedbackOracle::CollectReceiverTypes | ( | TypeFeedbackId | id, |
SmallMapList * | types | ||
) |
Definition at line 357 of file type-info.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::List< T, AllocationPolicy >::at(), CanRetainOtherContext(), v8::internal::Handle< T >::cast(), GetInfo(), v8::internal::handle(), map, v8::internal::MONOMORPHIC, native_context_, NULL, v8::internal::POLYMORPHIC, and zone().
Referenced by AssignmentReceiverTypes(), CollectReceiverTypes(), CountReceiverTypes(), KeyedAssignmentReceiverTypes(), KeyedPropertyReceiverTypes(), and PropertyReceiverTypes().
void v8::internal::TypeFeedbackOracle::CompareType | ( | TypeFeedbackId | id, |
Type ** | left, | ||
Type ** | right, | ||
Type ** | combined | ||
) |
Definition at line 176 of file type-info.cc.
References CanRetainOtherContext(), v8::internal::Handle< T >::cast(), GetInfo(), v8::internal::CompareNilICStub::GetInputType(), v8::internal::CompareNilICStub::GetType(), v8::internal::handle(), isolate(), v8::internal::CompareICStub::left(), map, native_context_, v8::None, NULL, v8::internal::Handle< T >::null(), v8::internal::CompareICStub::right(), v8::internal::CompareICStub::state(), v8::internal::CompareICState::StateToType(), v8::internal::Map::TryUpdate(), and zone().
void v8::internal::TypeFeedbackOracle::CountReceiverTypes | ( | TypeFeedbackId | id, |
SmallMapList * | receiver_types | ||
) |
Definition at line 295 of file type-info.cc.
References CollectReceiverTypes().
Type * v8::internal::TypeFeedbackOracle::CountType | ( | TypeFeedbackId | id | ) |
Definition at line 247 of file type-info.cc.
References v8::internal::Handle< T >::cast(), DCHECK_EQ, GetInfo(), isolate(), v8::None, and zone().
|
private |
Definition at line 412 of file type-info.cc.
References dictionary_, isolate(), v8::internal::Dictionary< UnseededNumberDictionary, UnseededNumberDictionaryShape, uint32_t >::New(), and RelocateRelocInfos().
Referenced by BuildDictionary().
|
private |
Definition at line 109 of file type-info.cc.
References GetInfo(), isolate(), and v8::internal::TypeFeedbackVector::UninitializedSentinel().
Handle< AllocationSite > v8::internal::TypeFeedbackOracle::GetCallAllocationSite | ( | int | slot | ) |
Definition at line 152 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and v8::internal::Handle< T >::null().
Handle< AllocationSite > v8::internal::TypeFeedbackOracle::GetCallNewAllocationSite | ( | int | slot | ) |
Definition at line 161 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and v8::internal::Handle< T >::null().
Handle< JSFunction > v8::internal::TypeFeedbackOracle::GetCallNewTarget | ( | int | slot | ) |
Definition at line 141 of file type-info.cc.
References v8::internal::Handle< T >::cast(), DCHECK, GetInfo(), and isolate().
Handle< JSFunction > v8::internal::TypeFeedbackOracle::GetCallTarget | ( | int | slot | ) |
Definition at line 131 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and isolate().
Definition at line 55 of file type-info.cc.
References CanRetainOtherContext(), v8::internal::Handle< T >::cast(), DCHECK, feedback_vector_, isolate(), and native_context_.
|
private |
Definition at line 40 of file type-info.cc.
References v8::internal::Handle< T >::cast(), dictionary_, v8::internal::IdToKey(), isolate(), and v8::internal::HashTable< Derived, Shape, Key >::kNotFound.
Referenced by BinaryType(), CallIsMonomorphic(), CallNewIsMonomorphic(), CollectReceiverTypes(), CompareType(), CountType(), ForInType(), GetCallAllocationSite(), GetCallNewAllocationSite(), GetCallNewTarget(), GetCallTarget(), GetStoreMode(), LoadIsBuiltin(), LoadIsUninitialized(), StoreIsKeyedPolymorphic(), StoreIsUninitialized(), and ToBooleanTypes().
|
private |
Definition at line 403 of file type-info.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::RelocInfo::CODE_TARGET_WITH_ID, v8::internal::RelocIterator::done(), v8::internal::RelocInfo::ModeMask(), and zone().
Referenced by BuildDictionary().
KeyedAccessStoreMode v8::internal::TypeFeedbackOracle::GetStoreMode | ( | TypeFeedbackId | id | ) |
Definition at line 118 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), v8::internal::KeyedStoreIC::GetKeyedAccessStoreMode(), and v8::internal::STANDARD_STORE.
Referenced by KeyedAssignmentReceiverTypes().
|
inline |
Definition at line 92 of file type-info.h.
References v8::internal::Zone::isolate(), and zone_.
Referenced by BinaryType(), BuildDictionary(), CollectReceiverTypes(), CompareType(), CountType(), CreateDictionary(), ForInType(), GetCallNewTarget(), GetCallTarget(), GetInfo(), LoadIsBuiltin(), SetInfo(), and TypeFeedbackOracle().
bool v8::internal::TypeFeedbackOracle::KeyedArrayCallIsHoley | ( | TypeFeedbackId | id | ) |
void v8::internal::TypeFeedbackOracle::KeyedAssignmentReceiverTypes | ( | TypeFeedbackId | id, |
SmallMapList * | receiver_types, | ||
KeyedAccessStoreMode * | store_mode | ||
) |
Definition at line 286 of file type-info.cc.
References CollectReceiverTypes(), and GetStoreMode().
void v8::internal::TypeFeedbackOracle::KeyedPropertyReceiverTypes | ( | TypeFeedbackId | id, |
SmallMapList * | receiver_types, | ||
bool * | is_string | ||
) |
Definition at line 266 of file type-info.cc.
References CollectReceiverTypes(), and LoadIsBuiltin().
bool v8::internal::TypeFeedbackOracle::LoadIsBuiltin | ( | TypeFeedbackId | id, |
Builtins::Name | builtin_id | ||
) |
Definition at line 170 of file type-info.cc.
References v8::internal::Builtins::builtin(), v8::internal::Isolate::builtins(), GetInfo(), and isolate().
Referenced by KeyedPropertyReceiverTypes().
bool v8::internal::TypeFeedbackOracle::LoadIsUninitialized | ( | TypeFeedbackId | id | ) |
Definition at line 66 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and v8::internal::UNINITIALIZED.
Definition at line 433 of file type-info.cc.
References v8::internal::Code::GetCodeFromTargetAddress(), v8::internal::Code::kind(), and SetInfo().
Referenced by BuildDictionary().
void v8::internal::TypeFeedbackOracle::PropertyReceiverTypes | ( | TypeFeedbackId | id, |
Handle< String > | name, | ||
SmallMapList * | receiver_types | ||
) |
Definition at line 257 of file type-info.cc.
References CollectReceiverTypes(), v8::internal::Code::ComputeHandlerFlags(), v8::internal::anonymous_namespace{flags.cc}::flags, and name.
|
private |
Definition at line 421 of file type-info.cc.
References v8::internal::Code::instruction_start(), v8::internal::RelocInfo::pc(), v8::internal::RelocInfo::set_host(), and v8::internal::RelocInfo::set_pc().
Referenced by CreateDictionary().
|
private |
Definition at line 459 of file type-info.cc.
References v8::internal::UnseededNumberDictionary::AtNumberPut(), DCHECK, dictionary_, v8::internal::handle(), v8::internal::IdToKey(), isolate(), v8::internal::HashTable< Derived, Shape, Key >::kNotFound, and USE().
Referenced by ProcessRelocInfos().
bool v8::internal::TypeFeedbackOracle::StoreIsKeyedPolymorphic | ( | TypeFeedbackId | id | ) |
Definition at line 84 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and v8::internal::POLYMORPHIC.
bool v8::internal::TypeFeedbackOracle::StoreIsUninitialized | ( | TypeFeedbackId | id | ) |
Definition at line 76 of file type-info.cc.
References v8::internal::Handle< T >::cast(), GetInfo(), and v8::internal::UNINITIALIZED.
byte v8::internal::TypeFeedbackOracle::ToBooleanTypes | ( | TypeFeedbackId | id | ) |
Definition at line 381 of file type-info.cc.
References v8::internal::Handle< T >::cast(), and GetInfo().
Referenced by v8::internal::Expression::RecordToBooleanTypeFeedback().
|
inline |
Definition at line 91 of file type-info.h.
References zone_.
Referenced by BinaryType(), BuildDictionary(), CollectReceiverTypes(), CompareType(), CountType(), and GetRelocInfos().
|
private |
Definition at line 121 of file type-info.h.
Referenced by BuildDictionary(), CreateDictionary(), GetInfo(), SetInfo(), and TypeFeedbackOracle().
|
private |
Definition at line 122 of file type-info.h.
Referenced by GetInfo(), and TypeFeedbackOracle().
Definition at line 119 of file type-info.h.
Referenced by CollectReceiverTypes(), CompareType(), and GetInfo().
|
private |
Definition at line 120 of file type-info.h.