v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AllocationSite Class Reference

#include <objects.h>

Inheritance diagram for AllocationSite:
Collaboration diagram for AllocationSite:

Data Structures

class  DeoptDependentCodeBit
 
class  DoNotInlineBit
 
class  ElementsKindBits
 
class  MementoFoundCountBits
 
class  PretenureDecisionBits
 
class  UnusedBits
 

Public Types

enum  PretenureDecision {
  kUndecided = 0, kDontTenure = 1, kTenure = 2, kZombie = 3,
  kLastPretenureDecisionValue = kZombie
}
 
enum  Reason { TENURING, TRANSITIONS }
 
typedef FixedBodyDescriptor
< HeapObject::kHeaderSize,
kDependentCodeOffset+kPointerSize,
kSize
BodyDescriptor
 
- Public Types inherited from Object
enum  ValueType { OPTIMAL_REPRESENTATION, FORCE_TAGGED }
 

Public Member Functions

void Initialize ()
 
bool IsNestedSite ()
 
 STATIC_ASSERT (PretenureDecisionBits::kMax >=kLastPretenureDecisionValue)
 
bool IncrementMementoFoundCount ()
 
void IncrementMementoCreateCount ()
 
PretenureFlag GetPretenureMode ()
 
void ResetPretenureDecision ()
 
PretenureDecision pretenure_decision ()
 
void set_pretenure_decision (PretenureDecision decision)
 
bool deopt_dependent_code ()
 
void set_deopt_dependent_code (bool deopt)
 
int memento_found_count ()
 
void set_memento_found_count (int count)
 
int memento_create_count ()
 
void set_memento_create_count (int count)
 
bool IsZombie ()
 
void MarkZombie ()
 
bool DigestPretenuringFeedback ()
 
ElementsKind GetElementsKind ()
 
void SetElementsKind (ElementsKind kind)
 
bool CanInlineCall ()
 
void SetDoNotInlineCall ()
 
bool SitePointsToLiteral ()
 
- Public Member Functions inherited from Struct
void InitializeBody (int object_size)
 
- Public Member Functions inherited from HeapObject
Mapmap ()
 
void set_map (Map *value)
 
void set_map_no_write_barrier (Map *value)
 
MapWord map_word ()
 
void set_map_word (MapWord map_word)
 
HeapGetHeap ()
 
IsolateGetIsolate ()
 
Address address ()
 
void Iterate (ObjectVisitor *v)
 
void IterateBody (InstanceType type, int object_size, ObjectVisitor *v)
 
int Size ()
 
int SizeFromMap (Map *map)
 
WriteBarrierMode GetWriteBarrierMode (const DisallowHeapAllocation &promise)
 
void HeapObjectShortPrint (StringStream *accumulator)
 
 STATIC_CHECK (kMapOffset==Internals::kHeapObjectMapOffset)
 
- Public Member Functions inherited from Object
bool IsObject ()
 
bool IsFixedArrayBase ()
 
bool IsExternal ()
 
bool IsAccessorInfo ()
 
bool IsStruct ()
 
 INLINE (bool IsSpecObject())
 
 INLINE (bool IsSpecFunction())
 
bool IsCallable ()
 
 INLINE (bool IsUndefined())
 
 INLINE (bool IsNull())
 
 INLINE (bool IsTheHole())
 
 INLINE (bool IsUninitialized())
 
 INLINE (bool IsTrue())
 
 INLINE (bool IsFalse())
 
bool IsArgumentsMarker ()
 
bool NonFailureIsHeapObject ()
 
bool IsFiller ()
 
double Number ()
 
bool IsNaN ()
 
bool ToInt32 (int32_t *value)
 
bool ToUint32 (uint32_t *value)
 
Representation OptimalRepresentation (ValueType type=OPTIMAL_REPRESENTATION)
 
bool FitsRepresentation (Representation representation)
 
MaybeObject * AllocateNewStorageFor (Heap *heap, Representation representation)
 
bool HasValidElements ()
 
bool HasSpecificClassOf (String *name)
 
MUST_USE_RESULT MaybeObject * ToObject (Isolate *isolate)
 
bool BooleanValue ()
 
MUST_USE_RESULT MaybeObject * ToObject (Context *native_context)
 
MUST_USE_RESULT MaybeObject * ToSmi ()
 
void Lookup (Name *name, LookupResult *result)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key)
 
MUST_USE_RESULT MaybeObject * GetProperty (Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithReceiver (Object *receiver, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetProperty (Object *receiver, LookupResult *result, Name *key, PropertyAttributes *attributes)
 
MUST_USE_RESULT MaybeObject * GetPropertyWithDefinedGetter (Object *receiver, JSReceiver *getter)
 
ObjectGetPrototype (Isolate *isolate)
 
MapGetMarkerMap (Isolate *isolate)
 
ObjectGetHash ()
 
bool SameValue (Object *other)
 
bool ToArrayIndex (uint32_t *index)
 
bool IsStringObjectWithCharacterAt (uint32_t index)
 
void VerifyApiCallResultType ()
 
void ShortPrint (FILE *out=stdout)
 
void ShortPrint (StringStream *accumulator)
 

Static Public Member Functions

static void DigestTransitionFeedback (Handle< AllocationSite > site, ElementsKind to_kind)
 
static void AddDependentCompilationInfo (Handle< AllocationSite > site, Reason reason, CompilationInfo *info)
 
static AllocationSitecast (Object *obj)
 
static AllocationSiteMode GetMode (ElementsKind boilerplate_elements_kind)
 
static AllocationSiteMode GetMode (ElementsKind from, ElementsKind to)
 
static bool CanTrack (InstanceType type)
 
- Static Public Member Functions inherited from Struct
static Structcast (Object *that)
 
- Static Public Member Functions inherited from HeapObject
static HeapObjectFromAddress (Address address)
 
static Object ** RawField (HeapObject *obj, int offset)
 
static void UpdateMapCodeCache (Handle< HeapObject > object, Handle< Name > name, Handle< Code > code)
 
static HeapObjectcast (Object *obj)
 
- Static Public Member Functions inherited from Object
static MUST_USE_RESULT Handle
< Object
ToSmi (Isolate *isolate, Handle< Object > object)
 
static Handle< ObjectGetPropertyWithReceiver (Handle< Object > object, Handle< Object > receiver, Handle< Name > name, PropertyAttributes *attributes)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Name > key)
 
static Handle< ObjectGetProperty (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static MUST_USE_RESULT
MaybeObject * 
GetPropertyOrFail (Handle< Object > object, Handle< Object > receiver, LookupResult *result, Handle< Name > key, PropertyAttributes *attributes)
 
static Handle< ObjectGetElement (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementNoExceptionThrown (Isolate *isolate, Handle< Object > object, uint32_t index)
 
static Handle< ObjectGetElementWithReceiver (Isolate *isolate, Handle< Object > object, Handle< Object > receiver, uint32_t index)
 
static Handle< ObjectGetOrCreateHash (Handle< Object > object, Isolate *isolate)
 
static Objectcast (Object *value)
 

Static Public Attributes

static const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024
 
static const double kPretenureRatio = 0.85
 
static const int kPretenureMinimumCreated = 100
 
static const int kTransitionInfoOffset = HeapObject::kHeaderSize
 
static const int kNestedSiteOffset = kTransitionInfoOffset + kPointerSize
 
static const int kPretenureDataOffset = kNestedSiteOffset + kPointerSize
 
static const int kPretenureCreateCountOffset
 
static const int kDependentCodeOffset
 
static const int kWeakNextOffset = kDependentCodeOffset + kPointerSize
 
static const int kSize = kWeakNextOffset + kPointerSize
 
static const int kPointerFieldsBeginOffset = kTransitionInfoOffset
 
static const int kPointerFieldsEndOffset = kDependentCodeOffset
 
- Static Public Attributes inherited from HeapObject
static const int kMapOffset = Object::kHeaderSize
 
static const int kHeaderSize = kMapOffset + kPointerSize
 
- Static Public Attributes inherited from Object
static const int kHeaderSize = 0
 

Additional Inherited Members

- Protected Member Functions inherited from HeapObject
void IteratePointers (ObjectVisitor *v, int start, int end)
 
void IteratePointer (ObjectVisitor *v, int offset)
 
void IterateNextCodeLink (ObjectVisitor *v, int offset)
 

Detailed Description

Definition at line 8258 of file objects.h.

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
kUndecided 
kDontTenure 
kTenure 
kZombie 
kLastPretenureDecisionValue 

Definition at line 8265 of file objects.h.

enum Reason
Enumerator
TENURING 
TRANSITIONS 

Definition at line 8393 of file objects.h.

Member Function Documentation

void AddDependentCompilationInfo ( Handle< AllocationSite site,
Reason  reason,
CompilationInfo info 
)
static
bool CanInlineCall ( )
inline

Definition at line 8372 of file objects.h.

References Smi::cast(), and Smi::value().

bool deopt_dependent_code ( )
inline

Definition at line 8321 of file objects.h.

Referenced by Heap::DeoptMarkedAllocationSites().

ElementsKind GetElementsKind ( )
inline

Definition at line 8360 of file objects.h.

References ASSERT, Smi::cast(), and Smi::value().

PretenureFlag GetPretenureMode ( )
void IncrementMementoCreateCount ( )
inline
bool IncrementMementoFoundCount ( )
inline
bool IsNestedSite ( )
int memento_create_count ( )
inline
int memento_found_count ( )
inline
PretenureDecision pretenure_decision ( )
inline

Definition at line 8309 of file objects.h.

void ResetPretenureDecision ( )

Definition at line 12643 of file objects.cc.

void set_deopt_dependent_code ( bool  deopt)
inline
void set_memento_create_count ( int  count)
inline
void set_pretenure_decision ( PretenureDecision  decision)
inline
void SetDoNotInlineCall ( )
inline
void SetElementsKind ( ElementsKind  kind)
inline
bool SitePointsToLiteral ( )
inline

Definition at line 8383 of file objects.h.

STATIC_ASSERT ( PretenureDecisionBits::kMax >=  kLastPretenureDecisionValue)

Field Documentation

const int kDependentCodeOffset
static
Initial value:

Definition at line 8416 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().

const uint32_t kMaximumArrayBytesToPretransition = 8 * 1024
static

Definition at line 8260 of file objects.h.

const int kNestedSiteOffset = kTransitionInfoOffset + kPointerSize
static

Definition at line 8412 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().

const int kPointerFieldsBeginOffset = kTransitionInfoOffset
static

Definition at line 8423 of file objects.h.

const int kPointerFieldsEndOffset = kDependentCodeOffset
static

Definition at line 8424 of file objects.h.

const int kPretenureCreateCountOffset
static
Initial value:

Definition at line 8414 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().

const int kPretenureDataOffset = kNestedSiteOffset + kPointerSize
static

Definition at line 8413 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().

const int kPretenureMinimumCreated = 100
static

Definition at line 8262 of file objects.h.

Referenced by AllocationSite::DigestPretenuringFeedback().

const double kPretenureRatio = 0.85
static

Definition at line 8261 of file objects.h.

Referenced by AllocationSite::DigestPretenuringFeedback().

const int kSize = kWeakNextOffset + kPointerSize
static

Definition at line 8419 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().

const int kTransitionInfoOffset = HeapObject::kHeaderSize
static

Definition at line 8411 of file objects.h.

Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub().


The documentation for this class was generated from the following files: