v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <lithium-allocator.h>
Static Public Attributes | |
static const int | kInvalidAssignment = 0x7fffffff |
Friends | |
class | LAllocator |
Definition at line 272 of file lithium-allocator.h.
Definition at line 133 of file lithium-allocator.cc.
void AddUseInterval | ( | LifetimePosition | start, |
LifetimePosition | end, | ||
Zone * | zone | ||
) |
Definition at line 423 of file lithium-allocator.cc.
References ASSERT, UseInterval::end(), v8::internal::NULL, UseInterval::start(), and LifetimePosition::Value().
void AddUsePosition | ( | LifetimePosition | pos, |
LOperand * | operand, | ||
LOperand * | hint, | ||
Zone * | zone | ||
) |
Definition at line 453 of file lithium-allocator.cc.
References UsePosition::HasHint(), UsePosition::next(), v8::internal::NULL, UsePosition::pos(), and LifetimePosition::Value().
|
inline |
Definition at line 288 of file lithium-allocator.h.
Referenced by LiveRange::CreateAssignedOperand().
bool CanBeSpilled | ( | LifetimePosition | pos | ) |
Definition at line 222 of file lithium-allocator.cc.
References LifetimePosition::InstructionEnd(), LifetimePosition::NextInstruction(), LiveRange::NextRegisterPosition(), v8::internal::NULL, UsePosition::pos(), and LifetimePosition::Value().
bool CanCover | ( | LifetimePosition | position | ) | const |
Definition at line 501 of file lithium-allocator.cc.
References LiveRange::End(), LiveRange::IsEmpty(), LiveRange::Start(), and LifetimePosition::Value().
Referenced by LiveRange::Covers().
bool Covers | ( | LifetimePosition | position | ) |
Definition at line 508 of file lithium-allocator.cc.
References ASSERT, LiveRange::CanCover(), v8::internal::NULL, and LifetimePosition::Value().
Definition at line 232 of file lithium-allocator.cc.
References ASSERT, LiveRange::assigned_register(), v8::internal::DOUBLE_REGISTERS, v8::internal::GENERAL_REGISTERS, LiveRange::GetSpillOperand(), LiveRange::HasRegisterAssigned(), LiveRange::IsSpilled(), LiveRange::Kind(), LUnallocated::NONE, v8::internal::NULL, LUnallocated::set_virtual_register(), LiveRange::TopLevel(), and UNREACHABLE.
|
inline |
Definition at line 327 of file lithium-allocator.h.
References ASSERT, and LiveRange::FirstHint().
|
inline |
Definition at line 343 of file lithium-allocator.h.
References ASSERT, UseInterval::end(), and LiveRange::IsEmpty().
Referenced by LiveRange::CanCover(), and LiveRange::FirstIntersection().
void EnsureInterval | ( | LifetimePosition | start, |
LifetimePosition | end, | ||
Zone * | zone | ||
) |
Definition at line 398 of file lithium-allocator.cc.
References UseInterval::end(), UseInterval::next(), v8::internal::NULL, UseInterval::start(), and LifetimePosition::Value().
|
inline |
Definition at line 278 of file lithium-allocator.h.
Referenced by LiveRange::FirstIntersection(), LiveRange::IsEmpty(), and LiveRange::Start().
|
inline |
Definition at line 279 of file lithium-allocator.h.
Referenced by LiveRange::NextUsePosition(), LiveRange::PreviousUsePositionRegisterIsBeneficial(), and LiveRange::ShouldBeAllocatedBefore().
|
inline |
Definition at line 331 of file lithium-allocator.h.
References UsePosition::HasHint(), UsePosition::hint(), UsePosition::next(), and v8::internal::NULL.
Referenced by LiveRange::current_hint_operand().
LifetimePosition FirstIntersection | ( | LiveRange * | other | ) |
Definition at line 524 of file lithium-allocator.cc.
References LiveRange::End(), LiveRange::first_interval(), UseInterval::Intersect(), LifetimePosition::Invalid(), LifetimePosition::IsValid(), UseInterval::next(), v8::internal::NULL, UseInterval::start(), and LifetimePosition::Value().
|
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().
|
inline |
Definition at line 322 of file lithium-allocator.h.
References LiveRange::kInvalidAssignment.
Referenced by LiveRange::CreateAssignedOperand(), and LiveRange::set_assigned_register().
|
inline |
Definition at line 284 of file lithium-allocator.h.
|
inline |
Definition at line 283 of file lithium-allocator.h.
References v8::internal::NULL, and LiveRange::parent().
|
inline |
Definition at line 286 of file lithium-allocator.h.
References LiveRange::first_interval(), and v8::internal::NULL.
Referenced by LiveRange::CanCover(), LiveRange::End(), LiveRange::SplitAt(), and LiveRange::Start().
|
inline |
Definition at line 285 of file lithium-allocator.h.
|
inline |
Definition at line 325 of file lithium-allocator.h.
Referenced by LiveRange::CreateAssignedOperand(), LiveRange::MakeSpilled(), and LiveRange::set_assigned_register().
|
inline |
Definition at line 321 of file lithium-allocator.h.
Referenced by LiveRange::CreateAssignedOperand().
void MakeSpilled | ( | Zone * | zone | ) |
Definition at line 157 of file lithium-allocator.cc.
References ASSERT, LiveRange::HasAllocatedSpillOperand(), LiveRange::IsSpilled(), LiveRange::kInvalidAssignment, and LiveRange::TopLevel().
|
inline |
Definition at line 282 of file lithium-allocator.h.
Referenced by LiveRange::SplitAt().
UsePosition * NextRegisterPosition | ( | LifetimePosition | start | ) |
Definition at line 213 of file lithium-allocator.cc.
References UsePosition::next(), LiveRange::NextUsePosition(), v8::internal::NULL, and UsePosition::RequiresRegister().
Referenced by LiveRange::CanBeSpilled().
UsePosition * NextUsePosition | ( | LifetimePosition | start | ) |
Definition at line 180 of file lithium-allocator.cc.
References LiveRange::first_pos(), UsePosition::next(), v8::internal::NULL, UsePosition::pos(), and LifetimePosition::Value().
Referenced by LiveRange::NextRegisterPosition(), and LiveRange::NextUsePositionRegisterIsBeneficial().
UsePosition * NextUsePositionRegisterIsBeneficial | ( | LifetimePosition | start | ) |
Definition at line 191 of file lithium-allocator.cc.
References UsePosition::next(), LiveRange::NextUsePosition(), v8::internal::NULL, and UsePosition::RegisterIsBeneficial().
|
inline |
Definition at line 280 of file lithium-allocator.h.
Referenced by LiveRange::IsChild().
UsePosition * PreviousUsePositionRegisterIsBeneficial | ( | LifetimePosition | start | ) |
Definition at line 201 of file lithium-allocator.cc.
References LiveRange::first_pos(), UsePosition::next(), v8::internal::NULL, UsePosition::pos(), UsePosition::RegisterIsBeneficial(), and LifetimePosition::Value().
void set_assigned_register | ( | int | reg, |
Zone * | zone | ||
) |
Definition at line 150 of file lithium-allocator.cc.
References ASSERT, LiveRange::HasRegisterAssigned(), and LiveRange::IsSpilled().
void SetSpillOperand | ( | LOperand * | operand | ) |
Definition at line 172 of file lithium-allocator.cc.
References ASSERT, LOperand::ConvertTo(), LOperand::index(), LOperand::kind(), and v8::internal::NULL.
|
inline |
Definition at line 352 of file lithium-allocator.h.
References v8::internal::Min().
void ShortenTo | ( | LifetimePosition | start | ) |
Definition at line 389 of file lithium-allocator.cc.
References ASSERT, UseInterval::end(), v8::internal::NULL, UseInterval::start(), and LifetimePosition::Value().
bool ShouldBeAllocatedBefore | ( | const LiveRange * | other | ) | const |
Definition at line 375 of file lithium-allocator.cc.
References LiveRange::first_pos(), v8::internal::NULL, UsePosition::pos(), LiveRange::Start(), and LifetimePosition::Value().
|
inline |
Definition at line 289 of file lithium-allocator.h.
void SplitAt | ( | LifetimePosition | position, |
LiveRange * | result, | ||
Zone * | zone | ||
) |
Definition at line 283 of file lithium-allocator.cc.
References ASSERT, LiveRange::IsEmpty(), UseInterval::next(), UsePosition::next(), LiveRange::next(), v8::internal::NULL, UsePosition::pos(), UseInterval::SplitAt(), UseInterval::start(), LiveRange::Start(), and LifetimePosition::Value().
|
inline |
Definition at line 338 of file lithium-allocator.h.
References ASSERT, LiveRange::first_interval(), LiveRange::IsEmpty(), and UseInterval::start().
Referenced by LiveRange::CanCover(), LiveRange::ShouldBeAllocatedBefore(), and LiveRange::SplitAt().
|
inline |
Definition at line 281 of file lithium-allocator.h.
References v8::internal::NULL.
Referenced by LiveRange::CreateAssignedOperand(), and LiveRange::MakeSpilled().
|
friend |
Definition at line 405 of file lithium-allocator.h.
|
static |
Definition at line 274 of file lithium-allocator.h.
Referenced by LiveRange::HasRegisterAssigned(), and LiveRange::MakeSpilled().