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

Classes

struct  LoopInfo
 
struct  SpecialRPOStackFrame
 

Public Member Functions

 SpecialRPONumberer (Zone *zone, Schedule *schedule)
 
void ComputeSpecialRPO ()
 
void UpdateSpecialRPO (BasicBlock *entry, BasicBlock *end)
 
void SerializeRPOIntoSchedule ()
 
void PrintAndVerifySpecialRPO ()
 
const ZoneVector< BasicBlock * > & GetOutgoingBlocks (BasicBlock *block)
 
bool HasLoopBlocks () const
 
- 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
 

Private Types

using Backedge = std::pair<BasicBlock*, size_t>
 

Private Member Functions

int Push (int depth, BasicBlock *child, int unvisited)
 
BasicBlockPushFront (BasicBlock *head, BasicBlock *block)
 
BasicBlockBeyondEndSentinel ()
 
void ComputeAndInsertSpecialRPO (BasicBlock *entry, BasicBlock *end)
 
void ComputeLoopInfo (ZoneVector< SpecialRPOStackFrame > *queue, size_t num_loops, ZoneVector< Backedge > *backedges)
 

Static Private Member Functions

static int GetLoopNumber (BasicBlock *block)
 
static void SetLoopNumber (BasicBlock *block, int loop_number)
 
static bool HasLoopNumber (BasicBlock *block)
 

Private Attributes

Zonezone_
 
Scheduleschedule_
 
BasicBlockorder_
 
BasicBlockbeyond_end_
 
ZoneVector< LoopInfoloops_
 
ZoneVector< Backedgebackedges_
 
ZoneVector< SpecialRPOStackFramestack_
 
size_t previous_block_count_
 
ZoneVector< BasicBlock * > const empty_
 

Static Private Attributes

static const int kBlockOnStack = -2
 
static const int kBlockVisited1 = -3
 
static const int kBlockVisited2 = -4
 
static const int kBlockUnvisited1 = -1
 
static const int kBlockUnvisited2 = kBlockVisited1
 

Detailed Description

Definition at line 661 of file scheduler.cc.

Member Typedef Documentation

◆ Backedge

Definition at line 720 of file scheduler.cc.

Constructor & Destructor Documentation

◆ SpecialRPONumberer()

v8::internal::compiler::SpecialRPONumberer::SpecialRPONumberer ( Zone * zone,
Schedule * schedule )
inline

Definition at line 663 of file scheduler.cc.

Member Function Documentation

◆ BeyondEndSentinel()

BasicBlock * v8::internal::compiler::SpecialRPONumberer::BeyondEndSentinel ( )
inlineprivate

Definition at line 775 of file scheduler.cc.

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

◆ ComputeAndInsertSpecialRPO()

void v8::internal::compiler::SpecialRPONumberer::ComputeAndInsertSpecialRPO ( BasicBlock * entry,
BasicBlock * end )
inlineprivate

Definition at line 785 of file scheduler.cc.

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

◆ ComputeLoopInfo()

void v8::internal::compiler::SpecialRPONumberer::ComputeLoopInfo ( ZoneVector< SpecialRPOStackFrame > * queue,
size_t num_loops,
ZoneVector< Backedge > * backedges )
inlineprivate

Definition at line 979 of file scheduler.cc.

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

◆ ComputeSpecialRPO()

void v8::internal::compiler::SpecialRPONumberer::ComputeSpecialRPO ( )
inline

Definition at line 676 of file scheduler.cc.

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

◆ GetLoopNumber()

static int v8::internal::compiler::SpecialRPONumberer::GetLoopNumber ( BasicBlock * block)
inlinestaticprivate

Definition at line 765 of file scheduler.cc.

Here is the caller graph for this function:

◆ GetOutgoingBlocks()

const ZoneVector< BasicBlock * > & v8::internal::compiler::SpecialRPONumberer::GetOutgoingBlocks ( BasicBlock * block)
inline

Definition at line 709 of file scheduler.cc.

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

◆ HasLoopBlocks()

bool v8::internal::compiler::SpecialRPONumberer::HasLoopBlocks ( ) const
inline

Definition at line 717 of file scheduler.cc.

Here is the caller graph for this function:

◆ HasLoopNumber()

static bool v8::internal::compiler::SpecialRPONumberer::HasLoopNumber ( BasicBlock * block)
inlinestaticprivate

Definition at line 769 of file scheduler.cc.

Here is the caller graph for this function:

◆ PrintAndVerifySpecialRPO()

void v8::internal::compiler::SpecialRPONumberer::PrintAndVerifySpecialRPO ( )
inline

Definition at line 702 of file scheduler.cc.

Here is the caller graph for this function:

◆ Push()

int v8::internal::compiler::SpecialRPONumberer::Push ( int depth,
BasicBlock * child,
int unvisited )
inlineprivate

Definition at line 750 of file scheduler.cc.

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

◆ PushFront()

BasicBlock * v8::internal::compiler::SpecialRPONumberer::PushFront ( BasicBlock * head,
BasicBlock * block )
inlineprivate

Definition at line 760 of file scheduler.cc.

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

◆ SerializeRPOIntoSchedule()

void v8::internal::compiler::SpecialRPONumberer::SerializeRPOIntoSchedule ( )
inline

Definition at line 692 of file scheduler.cc.

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

◆ SetLoopNumber()

static void v8::internal::compiler::SpecialRPONumberer::SetLoopNumber ( BasicBlock * block,
int loop_number )
inlinestaticprivate

Definition at line 766 of file scheduler.cc.

Here is the caller graph for this function:

◆ UpdateSpecialRPO()

void v8::internal::compiler::SpecialRPONumberer::UpdateSpecialRPO ( BasicBlock * entry,
BasicBlock * end )
inline

Definition at line 685 of file scheduler.cc.

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

Member Data Documentation

◆ backedges_

ZoneVector<Backedge> v8::internal::compiler::SpecialRPONumberer::backedges_
private

Definition at line 1135 of file scheduler.cc.

◆ beyond_end_

BasicBlock* v8::internal::compiler::SpecialRPONumberer::beyond_end_
private

Definition at line 1133 of file scheduler.cc.

◆ empty_

ZoneVector<BasicBlock*> const v8::internal::compiler::SpecialRPONumberer::empty_
private

Definition at line 1138 of file scheduler.cc.

◆ kBlockOnStack

const int v8::internal::compiler::SpecialRPONumberer::kBlockOnStack = -2
staticprivate

Definition at line 723 of file scheduler.cc.

◆ kBlockUnvisited1

const int v8::internal::compiler::SpecialRPONumberer::kBlockUnvisited1 = -1
staticprivate

Definition at line 726 of file scheduler.cc.

◆ kBlockUnvisited2

const int v8::internal::compiler::SpecialRPONumberer::kBlockUnvisited2 = kBlockVisited1
staticprivate

Definition at line 727 of file scheduler.cc.

◆ kBlockVisited1

const int v8::internal::compiler::SpecialRPONumberer::kBlockVisited1 = -3
staticprivate

Definition at line 724 of file scheduler.cc.

◆ kBlockVisited2

const int v8::internal::compiler::SpecialRPONumberer::kBlockVisited2 = -4
staticprivate

Definition at line 725 of file scheduler.cc.

◆ loops_

ZoneVector<LoopInfo> v8::internal::compiler::SpecialRPONumberer::loops_
private

Definition at line 1134 of file scheduler.cc.

◆ order_

BasicBlock* v8::internal::compiler::SpecialRPONumberer::order_
private

Definition at line 1132 of file scheduler.cc.

◆ previous_block_count_

size_t v8::internal::compiler::SpecialRPONumberer::previous_block_count_
private

Definition at line 1137 of file scheduler.cc.

◆ schedule_

Schedule* v8::internal::compiler::SpecialRPONumberer::schedule_
private

Definition at line 1131 of file scheduler.cc.

◆ stack_

ZoneVector<SpecialRPOStackFrame> v8::internal::compiler::SpecialRPONumberer::stack_
private

Definition at line 1136 of file scheduler.cc.

◆ zone_

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

Definition at line 1130 of file scheduler.cc.


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