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

#include <spill-placer.h>

Collaboration diagram for v8::internal::compiler::SpillPlacer:

Classes

class  Entry
 

Public Member Functions

 SpillPlacer (RegisterAllocationData *data, Zone *zone)
 
 ~SpillPlacer ()
 
 SpillPlacer (const SpillPlacer &)=delete
 
SpillPlaceroperator= (const SpillPlacer &)=delete
 
void Add (TopLevelLiveRange *range)
 

Private Member Functions

RegisterAllocationDatadata () const
 
int GetOrCreateIndexForLatestVreg (int vreg)
 
bool IsLatestVreg (int vreg) const
 
void CommitSpills ()
 
void ClearData ()
 
void ExpandBoundsToInclude (RpoNumber block)
 
void SetSpillRequired (InstructionBlock *block, int vreg, RpoNumber top_start_block)
 
void SetDefinition (RpoNumber block, int vreg)
 
void FirstBackwardPass ()
 
void ForwardPass ()
 
void SecondBackwardPass ()
 
void CommitSpill (int vreg, InstructionBlock *predecessor, InstructionBlock *successor)
 

Private Attributes

RegisterAllocationDatadata_
 
Zonezone_
 
Entryentries_ = nullptr
 
int * vreg_numbers_ = nullptr
 
int assigned_indices_ = 0
 
RpoNumber first_block_ = RpoNumber::Invalid()
 
RpoNumber last_block_ = RpoNumber::Invalid()
 

Static Private Attributes

static constexpr int kValueIndicesPerEntry = 64
 

Detailed Description

Definition at line 76 of file spill-placer.h.

Constructor & Destructor Documentation

◆ SpillPlacer() [1/2]

v8::internal::compiler::SpillPlacer::SpillPlacer ( RegisterAllocationData * data,
Zone * zone )

Definition at line 14 of file spill-placer.cc.

◆ ~SpillPlacer()

v8::internal::compiler::SpillPlacer::~SpillPlacer ( )

Definition at line 17 of file spill-placer.cc.

Here is the call graph for this function:

◆ SpillPlacer() [2/2]

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

Member Function Documentation

◆ Add()

void v8::internal::compiler::SpillPlacer::Add ( TopLevelLiveRange * range)

Definition at line 23 of file spill-placer.cc.

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

◆ ClearData()

void v8::internal::compiler::SpillPlacer::ClearData ( )
private

Definition at line 237 of file spill-placer.cc.

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

◆ CommitSpill()

void v8::internal::compiler::SpillPlacer::CommitSpill ( int vreg,
InstructionBlock * predecessor,
InstructionBlock * successor )
private

Definition at line 462 of file spill-placer.cc.

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

◆ CommitSpills()

void v8::internal::compiler::SpillPlacer::CommitSpills ( )
private

Definition at line 231 of file spill-placer.cc.

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

◆ data()

RegisterAllocationData * v8::internal::compiler::SpillPlacer::data ( ) const
inlineprivate

Definition at line 94 of file spill-placer.h.

Here is the caller graph for this function:

◆ ExpandBoundsToInclude()

void v8::internal::compiler::SpillPlacer::ExpandBoundsToInclude ( RpoNumber block)
private

Definition at line 246 of file spill-placer.cc.

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

◆ FirstBackwardPass()

void v8::internal::compiler::SpillPlacer::FirstBackwardPass ( )
private

Definition at line 285 of file spill-placer.cc.

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

◆ ForwardPass()

void v8::internal::compiler::SpillPlacer::ForwardPass ( )
private

Definition at line 332 of file spill-placer.cc.

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

◆ GetOrCreateIndexForLatestVreg()

int v8::internal::compiler::SpillPlacer::GetOrCreateIndexForLatestVreg ( int vreg)
private

Definition at line 202 of file spill-placer.cc.

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

◆ IsLatestVreg()

bool v8::internal::compiler::SpillPlacer::IsLatestVreg ( int vreg) const
inlineprivate

Definition at line 101 of file spill-placer.h.

Here is the caller graph for this function:

◆ operator=()

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

◆ SecondBackwardPass()

void v8::internal::compiler::SpillPlacer::SecondBackwardPass ( )
private

Definition at line 389 of file spill-placer.cc.

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

◆ SetDefinition()

void v8::internal::compiler::SpillPlacer::SetDefinition ( RpoNumber block,
int vreg )
private

Definition at line 279 of file spill-placer.cc.

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

◆ SetSpillRequired()

void v8::internal::compiler::SpillPlacer::SetSpillRequired ( InstructionBlock * block,
int vreg,
RpoNumber top_start_block )
private

Definition at line 261 of file spill-placer.cc.

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

Member Data Documentation

◆ assigned_indices_

int v8::internal::compiler::SpillPlacer::assigned_indices_ = 0
private

Definition at line 155 of file spill-placer.h.

◆ data_

RegisterAllocationData* v8::internal::compiler::SpillPlacer::data_
private

Definition at line 145 of file spill-placer.h.

◆ entries_

Entry* v8::internal::compiler::SpillPlacer::entries_ = nullptr
private

Definition at line 149 of file spill-placer.h.

◆ first_block_

RpoNumber v8::internal::compiler::SpillPlacer::first_block_ = RpoNumber::Invalid()
private

Definition at line 160 of file spill-placer.h.

◆ kValueIndicesPerEntry

int v8::internal::compiler::SpillPlacer::kValueIndicesPerEntry = 64
staticconstexprprivate

Definition at line 142 of file spill-placer.h.

◆ last_block_

RpoNumber v8::internal::compiler::SpillPlacer::last_block_ = RpoNumber::Invalid()
private

Definition at line 161 of file spill-placer.h.

◆ vreg_numbers_

int* v8::internal::compiler::SpillPlacer::vreg_numbers_ = nullptr
private

Definition at line 152 of file spill-placer.h.

◆ zone_

Zone* v8::internal::compiler::SpillPlacer::zone_
private

Definition at line 146 of file spill-placer.h.


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