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

#include <lithium-allocator.h>

Inheritance diagram for LiveRange:
Collaboration diagram for LiveRange:

Public Member Functions

 LiveRange (int id, Zone *zone)
 
UseInterval * first_interval () const
 
UsePosition * first_pos () const
 
LiveRange * parent () const
 
LiveRange * TopLevel ()
 
LiveRange * next () const
 
bool IsChild () const
 
int id () const
 
bool IsFixed () const
 
bool IsEmpty () const
 
LOperand * CreateAssignedOperand (Zone *zone)
 
int assigned_register () const
 
int spill_start_index () const
 
void set_assigned_register (int reg, RegisterKind register_kind, Zone *zone)
 
void MakeSpilled (Zone *zone)
 
UsePosition * NextUsePosition (LifetimePosition start)
 
UsePosition * NextRegisterPosition (LifetimePosition start)
 
UsePosition * NextUsePositionRegisterIsBeneficial (LifetimePosition start)
 
bool CanBeSpilled (LifetimePosition pos)
 
void SplitAt (LifetimePosition position, LiveRange *result, Zone *zone)
 
bool IsDouble () const
 
bool HasRegisterAssigned () const
 
bool IsSpilled () const
 
UsePosition * FirstPosWithHint () const
 
LOperand * FirstHint () const
 
LifetimePosition Start () const
 
LifetimePosition End () const
 
bool HasAllocatedSpillOperand () const
 
LOperand * GetSpillOperand () const
 
void SetSpillOperand (LOperand *operand)
 
void SetSpillStartIndex (int start)
 
bool ShouldBeAllocatedBefore (const LiveRange *other) const
 
bool CanCover (LifetimePosition position) const
 
bool Covers (LifetimePosition position)
 
LifetimePosition FirstIntersection (LiveRange *other)
 
void EnsureInterval (LifetimePosition start, LifetimePosition end, Zone *zone)
 
void AddUseInterval (LifetimePosition start, LifetimePosition end, Zone *zone)
 
UsePosition * AddUsePosition (LifetimePosition pos, LOperand *operand, Zone *zone)
 
void ShortenTo (LifetimePosition start)
 
- Public Member Functions inherited from ZoneObject
 INLINE (void *operator new(size_t size, Zone *zone))
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)
 

Static Public Attributes

static const int kInvalidAssignment = 0x7fffffff
 

Detailed Description

Definition at line 276 of file lithium-allocator.h.

Constructor & Destructor Documentation

LiveRange ( int  id,
Zone *  zone 
)

Definition at line 129 of file lithium-allocator.cc.

Member Function Documentation

void AddUseInterval ( LifetimePosition  start,
LifetimePosition  end,
Zone *  zone 
)
UsePosition * AddUsePosition ( LifetimePosition  pos,
LOperand *  operand,
Zone *  zone 
)
int assigned_register ( ) const
inline

Definition at line 292 of file lithium-allocator.h.

Referenced by LiveRange::CreateAssignedOperand().

bool CanCover ( LifetimePosition  position) const
bool Covers ( LifetimePosition  position)
LifetimePosition End ( ) const
inline
void EnsureInterval ( LifetimePosition  start,
LifetimePosition  end,
Zone *  zone 
)
UseInterval* first_interval ( ) const
inline
UsePosition* first_pos ( ) const
inline
LOperand* FirstHint ( ) const
inline
UsePosition * FirstPosWithHint ( ) const
LOperand* GetSpillOperand ( ) const
inline

Definition at line 347 of file lithium-allocator.h.

Referenced by LiveRange::CreateAssignedOperand().

bool HasAllocatedSpillOperand ( ) const

Definition at line 164 of file lithium-allocator.cc.

References ASSERT, and v8::internal::NULL.

Referenced by LiveRange::MakeSpilled().

bool HasRegisterAssigned ( ) const
inline
int id ( ) const
inline

Definition at line 288 of file lithium-allocator.h.

bool IsChild ( ) const
inline

Definition at line 287 of file lithium-allocator.h.

References v8::internal::NULL, and LiveRange::parent().

bool IsDouble ( ) const
inline

Definition at line 323 of file lithium-allocator.h.

Referenced by LiveRange::CreateAssignedOperand().

bool IsEmpty ( ) const
inline
bool IsFixed ( ) const
inline

Definition at line 289 of file lithium-allocator.h.

bool IsSpilled ( ) const
inline
LiveRange* next ( ) const
inline

Definition at line 286 of file lithium-allocator.h.

Referenced by LiveRange::SplitAt().

UsePosition * NextUsePositionRegisterIsBeneficial ( LifetimePosition  start)
LiveRange* parent ( ) const
inline

Definition at line 284 of file lithium-allocator.h.

Referenced by LiveRange::IsChild().

void set_assigned_register ( int  reg,
RegisterKind  register_kind,
Zone *  zone 
)
void SetSpillOperand ( LOperand *  operand)
void SetSpillStartIndex ( int  start)
inline

Definition at line 350 of file lithium-allocator.h.

References v8::internal::Min().

bool ShouldBeAllocatedBefore ( const LiveRange *  other) const
int spill_start_index ( ) const
inline

Definition at line 293 of file lithium-allocator.h.

LiveRange* TopLevel ( )
inline

Definition at line 285 of file lithium-allocator.h.

References v8::internal::NULL.

Referenced by LiveRange::CreateAssignedOperand(), and LiveRange::MakeSpilled().

Field Documentation

const int kInvalidAssignment = 0x7fffffff
static

Definition at line 278 of file lithium-allocator.h.

Referenced by LiveRange::HasRegisterAssigned(), and LiveRange::MakeSpilled().


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