v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::RegisterAllocator Class Reference

#include <register-allocator.h>

Inheritance diagram for v8::internal::compiler::RegisterAllocator:
Collaboration diagram for v8::internal::compiler::RegisterAllocator:

Public Member Functions

 RegisterAllocator (RegisterAllocationData *data, RegisterKind kind)
 
 RegisterAllocator (const RegisterAllocator &)=delete
 
RegisterAllocatoroperator= (const RegisterAllocator &)=delete
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Protected Types

using SpillMode = RegisterAllocationData::SpillMode
 

Protected Member Functions

RegisterAllocationDatadata () const
 
InstructionSequencecode () const
 
RegisterKind mode () const
 
int num_registers () const
 
int num_allocatable_registers () const
 
const int * allocatable_register_codes () const
 
bool check_fp_aliasing () const
 
LifetimePosition GetSplitPositionForInstruction (const LiveRange *range, int instruction_index)
 
Zoneallocation_zone () const
 
void SplitAndSpillRangesDefinedByMemoryOperand ()
 
LiveRangeSplitRangeAt (LiveRange *range, LifetimePosition pos)
 
bool CanProcessRange (LiveRange *range) const
 
LiveRangeSplitBetween (LiveRange *range, LifetimePosition start, LifetimePosition end)
 
LifetimePosition FindOptimalSplitPos (LifetimePosition start, LifetimePosition end)
 
void Spill (LiveRange *range, SpillMode spill_mode)
 
LifetimePosition FindOptimalSpillingPos (LiveRange *range, LifetimePosition pos, SpillMode spill_mode, LiveRange **begin_spill_out)
 
const ZoneVector< TopLevelLiveRange * > & GetFixedRegisters () const
 
const char * RegisterName (int allocation_index) const
 

Private Attributes

RegisterAllocationData *const data_
 
const RegisterKind mode_
 
const int num_registers_
 
int num_allocatable_registers_
 
const int * allocatable_register_codes_
 
bool check_fp_aliasing_
 
bool no_combining_
 

Detailed Description

Definition at line 1463 of file register-allocator.h.

Member Typedef Documentation

◆ SpillMode

Constructor & Destructor Documentation

◆ RegisterAllocator() [1/2]

v8::internal::compiler::RegisterAllocator::RegisterAllocator ( RegisterAllocationData * data,
RegisterKind kind )

Definition at line 2709 of file register-allocator.cc.

◆ RegisterAllocator() [2/2]

v8::internal::compiler::RegisterAllocator::RegisterAllocator ( const RegisterAllocator & )
delete

Member Function Documentation

◆ allocatable_register_codes()

const int * v8::internal::compiler::RegisterAllocator::allocatable_register_codes ( ) const
inlineprotected

Definition at line 1476 of file register-allocator.h.

Here is the caller graph for this function:

◆ allocation_zone()

Zone * v8::internal::compiler::RegisterAllocator::allocation_zone ( ) const
inlineprotected

Definition at line 1486 of file register-allocator.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CanProcessRange()

bool v8::internal::compiler::RegisterAllocator::CanProcessRange ( LiveRange * range) const
inlineprotected

Definition at line 1500 of file register-allocator.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_fp_aliasing()

bool v8::internal::compiler::RegisterAllocator::check_fp_aliasing ( ) const
inlineprotected

Definition at line 1480 of file register-allocator.h.

Here is the caller graph for this function:

◆ code()

InstructionSequence * v8::internal::compiler::RegisterAllocator::code ( ) const
inlineprotected

Definition at line 1472 of file register-allocator.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ data()

RegisterAllocationData * v8::internal::compiler::RegisterAllocator::data ( ) const
inlineprotected

Definition at line 1471 of file register-allocator.h.

Here is the caller graph for this function:

◆ FindOptimalSpillingPos()

LifetimePosition v8::internal::compiler::RegisterAllocator::FindOptimalSpillingPos ( LiveRange * range,
LifetimePosition pos,
SpillMode spill_mode,
LiveRange ** begin_spill_out )
protected

Definition at line 2848 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindOptimalSplitPos()

LifetimePosition v8::internal::compiler::RegisterAllocator::FindOptimalSplitPos ( LifetimePosition start,
LifetimePosition end )
protected

Definition at line 2810 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFixedRegisters()

const ZoneVector< TopLevelLiveRange * > & v8::internal::compiler::RegisterAllocator::GetFixedRegisters ( ) const
protected

◆ GetSplitPositionForInstruction()

LifetimePosition v8::internal::compiler::RegisterAllocator::GetSplitPositionForInstruction ( const LiveRange * range,
int instruction_index )
protected

Definition at line 2725 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mode()

RegisterKind v8::internal::compiler::RegisterAllocator::mode ( ) const
inlineprotected

Definition at line 1473 of file register-allocator.h.

Here is the caller graph for this function:

◆ num_allocatable_registers()

int v8::internal::compiler::RegisterAllocator::num_allocatable_registers ( ) const
inlineprotected

Definition at line 1475 of file register-allocator.h.

Here is the caller graph for this function:

◆ num_registers()

int v8::internal::compiler::RegisterAllocator::num_registers ( ) const
inlineprotected

Definition at line 1474 of file register-allocator.h.

Here is the caller graph for this function:

◆ operator=()

RegisterAllocator & v8::internal::compiler::RegisterAllocator::operator= ( const RegisterAllocator & )
delete

◆ RegisterName()

const char * v8::internal::compiler::RegisterAllocator::RegisterName ( int allocation_index) const
protected

Definition at line 2925 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Spill()

void v8::internal::compiler::RegisterAllocator::Spill ( LiveRange * range,
SpillMode spill_mode )
protected

Definition at line 2900 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SplitAndSpillRangesDefinedByMemoryOperand()

void v8::internal::compiler::RegisterAllocator::SplitAndSpillRangesDefinedByMemoryOperand ( )
protected

Definition at line 2736 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SplitBetween()

LiveRange * v8::internal::compiler::RegisterAllocator::SplitBetween ( LiveRange * range,
LifetimePosition start,
LifetimePosition end )
protected

Definition at line 2797 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SplitRangeAt()

LiveRange * v8::internal::compiler::RegisterAllocator::SplitRangeAt ( LiveRange * range,
LifetimePosition pos )
protected

Definition at line 2779 of file register-allocator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ allocatable_register_codes_

const int* v8::internal::compiler::RegisterAllocator::allocatable_register_codes_
private

Definition at line 1531 of file register-allocator.h.

◆ check_fp_aliasing_

bool v8::internal::compiler::RegisterAllocator::check_fp_aliasing_
private

Definition at line 1532 of file register-allocator.h.

◆ data_

RegisterAllocationData* const v8::internal::compiler::RegisterAllocator::data_
private

Definition at line 1527 of file register-allocator.h.

◆ mode_

const RegisterKind v8::internal::compiler::RegisterAllocator::mode_
private

Definition at line 1528 of file register-allocator.h.

◆ no_combining_

bool v8::internal::compiler::RegisterAllocator::no_combining_
private

Definition at line 1535 of file register-allocator.h.

◆ num_allocatable_registers_

int v8::internal::compiler::RegisterAllocator::num_allocatable_registers_
private

Definition at line 1530 of file register-allocator.h.

◆ num_registers_

const int v8::internal::compiler::RegisterAllocator::num_registers_
private

Definition at line 1529 of file register-allocator.h.


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