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)
 
UseIntervalfirst_interval () const
 
UsePositionfirst_pos () const
 
LiveRangeparent () const
 
LiveRangeTopLevel ()
 
LiveRangenext () const
 
bool IsChild () const
 
int id () const
 
bool IsFixed () const
 
bool IsEmpty () const
 
LOperandCreateAssignedOperand (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)
 
UsePositionNextUsePosition (LifetimePosition start)
 
UsePositionNextRegisterPosition (LifetimePosition start)
 
UsePositionNextUsePositionRegisterIsBeneficial (LifetimePosition start)
 
bool CanBeSpilled (LifetimePosition pos)
 
void SplitAt (LifetimePosition position, LiveRange *result, Zone *zone)
 
bool IsDouble () const
 
bool HasRegisterAssigned () const
 
bool IsSpilled () const
 
UsePositionFirstPosWithHint () const
 
LOperandFirstHint () const
 
LifetimePosition Start () const
 
LifetimePosition End () const
 
bool HasAllocatedSpillOperand () const
 
LOperandGetSpillOperand () 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)
 
UsePositionAddUsePosition (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: