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
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, Zone *zone)
 
void MakeSpilled (Zone *zone)
 
UsePositionNextUsePosition (LifetimePosition start)
 
UsePositionNextRegisterPosition (LifetimePosition start)
 
UsePositionNextUsePositionRegisterIsBeneficial (LifetimePosition start)
 
UsePositionPreviousUsePositionRegisterIsBeneficial (LifetimePosition start)
 
bool CanBeSpilled (LifetimePosition pos)
 
void SplitAt (LifetimePosition position, LiveRange *result, Zone *zone)
 
RegisterKind Kind () const
 
bool HasRegisterAssigned () const
 
bool IsSpilled () const
 
LOperandcurrent_hint_operand () 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)
 
void AddUsePosition (LifetimePosition pos, LOperand *operand, LOperand *hint, 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
 

Friends

class LAllocator
 

Detailed Description

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

Constructor & Destructor Documentation

LiveRange ( int  id,
Zone zone 
)

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

Member Function Documentation

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

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

Referenced by LiveRange::CreateAssignedOperand().

bool CanCover ( LifetimePosition  position) const
bool Covers ( LifetimePosition  position)
LOperand* current_hint_operand ( ) const
inline

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

References ASSERT, and LiveRange::FirstHint().

LifetimePosition End ( ) const
inline
void EnsureInterval ( LifetimePosition  start,
LifetimePosition  end,
Zone zone 
)
UseInterval* first_interval ( ) const
inline
LOperand* FirstHint ( ) const
inline
LOperand* GetSpillOperand ( ) const
inline

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

Referenced by LiveRange::CreateAssignedOperand().

bool HasAllocatedSpillOperand ( ) const

Definition at line 166 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 284 of file lithium-allocator.h.

bool IsChild ( ) const
inline

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

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

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

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

bool IsSpilled ( ) const
inline
RegisterKind Kind ( ) const
inline

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

Referenced by LiveRange::CreateAssignedOperand().

LiveRange* next ( ) const
inline

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

Referenced by LiveRange::SplitAt().

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

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

Referenced by LiveRange::IsChild().

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

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

References v8::internal::Min().

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

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

LiveRange* TopLevel ( )
inline

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

References v8::internal::NULL.

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

Friends And Related Function Documentation

friend class LAllocator
friend

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

Field Documentation

const int kInvalidAssignment = 0x7fffffff
static

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

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


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