V8 Project
|
#include <schedule.h>
Public Types | |
typedef ContainerPointerWrapper< BasicBlockVector > | BasicBlocks |
Public Member Functions | |
Schedule (Zone *zone, size_t node_count_hint=0) | |
BasicBlock * | block (Node *node) const |
bool | IsScheduled (Node *node) |
BasicBlock * | GetBlockById (int block_id) |
int | BasicBlockCount () const |
int | RpoBlockCount () const |
BasicBlocks | all_blocks () |
bool | SameBasicBlock (Node *a, Node *b) const |
BasicBlock * | NewBasicBlock () |
void | PlanNode (BasicBlock *block, Node *node) |
void | AddNode (BasicBlock *block, Node *node) |
void | AddGoto (BasicBlock *block, BasicBlock *succ) |
void | AddBranch (BasicBlock *block, Node *branch, BasicBlock *tblock, BasicBlock *fblock) |
void | AddReturn (BasicBlock *block, Node *input) |
void | AddThrow (BasicBlock *block, Node *input) |
void | AddSuccessor (BasicBlock *block, BasicBlock *succ) |
BasicBlockVector * | rpo_order () |
![]() | |
GenericGraph (Zone *zone) | |
BasicBlock * | start () |
BasicBlock * | end () |
void | SetStart (BasicBlock *start) |
void | SetEnd (BasicBlock *end) |
![]() | |
GenericGraphBase (Zone *zone) | |
Zone * | zone () const |
NodeId | NextNodeID () |
NodeId | NodeCount () const |
![]() | |
INLINE (void *operator new(size_t size, Zone *zone)) | |
void | operator delete (void *, size_t) |
void | operator delete (void *pointer, Zone *zone) |
Private Member Functions | |
void | SetControlInput (BasicBlock *block, Node *node) |
void | SetBlockForNode (BasicBlock *block, Node *node) |
Private Attributes | |
Zone * | zone_ |
BasicBlockVector | all_blocks_ |
BasicBlockVector | nodeid_to_block_ |
BasicBlockVector | rpo_order_ |
Friends | |
class | Scheduler |
class | CodeGenerator |
class | ScheduleVisualizer |
class | BasicBlockInstrumentor |
Definition at line 157 of file schedule.h.
Definition at line 189 of file schedule.h.
|
inlineexplicit |
Definition at line 159 of file schedule.h.
References NewBasicBlock(), nodeid_to_block_, v8::internal::compiler::GenericGraph< BasicBlock >::SetEnd(), and v8::internal::compiler::GenericGraph< BasicBlock >::SetStart().
|
inline |
Definition at line 238 of file schedule.h.
References AddSuccessor(), block(), DCHECK, SetBlockForNode(), and SetControlInput().
Referenced by v8::internal::compiler::RawMachineAssembler::Branch(), and v8::internal::compiler::CFGBuilder::ConnectBranch().
|
inline |
Definition at line 231 of file schedule.h.
References AddSuccessor(), block(), and DCHECK.
Referenced by v8::internal::compiler::CFGBuilder::ConnectMerge(), and v8::internal::compiler::RawMachineAssembler::Goto().
|
inline |
Definition at line 220 of file schedule.h.
References block(), DCHECK, NULL, v8::internal::PrintF(), and SetBlockForNode().
Referenced by v8::internal::compiler::RawMachineAssembler::CallFunctionStub0(), v8::internal::compiler::RawMachineAssembler::CallJS0(), v8::internal::compiler::RawMachineAssembler::CallRuntime1(), v8::internal::compiler::CFGBuilder::FixNode(), v8::internal::compiler::RawMachineAssembler::MakeNode(), v8::internal::compiler::PrepareUsesVisitor::Pre(), and v8::internal::compiler::Scheduler::ScheduleLate().
|
inline |
Definition at line 253 of file schedule.h.
References AddSuccessor(), block(), DCHECK, v8::internal::compiler::GenericGraph< BasicBlock >::end(), SetBlockForNode(), and SetControlInput().
Referenced by v8::internal::compiler::CFGBuilder::ConnectReturn(), and v8::internal::compiler::RawMachineAssembler::Return().
|
inline |
Definition at line 275 of file schedule.h.
References block(), and zone_.
Referenced by AddBranch(), AddGoto(), AddReturn(), and AddThrow().
|
inline |
Definition at line 265 of file schedule.h.
References AddSuccessor(), block(), DCHECK, v8::internal::compiler::GenericGraph< BasicBlock >::end(), and SetControlInput().
|
inline |
Definition at line 192 of file schedule.h.
References all_blocks_.
|
inline |
Definition at line 186 of file schedule.h.
References v8::internal::compiler::GenericGraphBase::NodeCount().
Referenced by v8::internal::compiler::Scheduler::BuildCFG(), v8::internal::compiler::Scheduler::ComputeSpecialRPO(), and v8::internal::compiler::ScheduleVerifier::Run().
|
inline |
Definition at line 171 of file schedule.h.
References nodeid_to_block_, and NULL.
Referenced by AddBranch(), AddGoto(), AddNode(), AddReturn(), AddSuccessor(), AddThrow(), v8::internal::compiler::CFGBuilder::BuildBlockForNode(), v8::internal::compiler::CFGBuilder::CollectSuccessorBlocks(), v8::internal::compiler::CFGBuilder::ConnectBranch(), v8::internal::compiler::CFGBuilder::ConnectMerge(), v8::internal::compiler::CFGBuilder::ConnectReturn(), v8::internal::compiler::ScheduleLateNodeVisitor::GetBlockForUse(), NewBasicBlock(), PlanNode(), v8::internal::compiler::ScheduleEarlyNodeVisitor::Pre(), v8::internal::compiler::PrepareUsesVisitor::Pre(), v8::internal::compiler::ScheduleVerifier::Run(), SameBasicBlock(), SetBlockForNode(), and SetControlInput().
|
inline |
Definition at line 184 of file schedule.h.
References all_blocks_.
Referenced by v8::internal::compiler::ScheduleVerifier::Run().
|
inline |
Definition at line 178 of file schedule.h.
References nodeid_to_block_, and NULL.
Referenced by v8::internal::compiler::PrepareUsesVisitor::PostEdge(), v8::internal::compiler::PrepareUsesVisitor::Pre(), and v8::internal::compiler::ScheduleLateNodeVisitor::Pre().
|
inline |
Definition at line 201 of file schedule.h.
References all_blocks_, block(), and NULL.
Referenced by v8::internal::compiler::CFGBuilder::BuildBlockForNode(), v8::internal::compiler::RawMachineAssembler::EnsureBlock(), and Schedule().
|
inline |
Definition at line 210 of file schedule.h.
References block(), DCHECK, NULL, v8::internal::PrintF(), and SetBlockForNode().
Referenced by v8::internal::compiler::ScheduleLateNodeVisitor::ScheduleNode().
|
inline |
Definition at line 279 of file schedule.h.
References rpo_order_.
Referenced by v8::internal::compiler::Scheduler::ConnectFloatingControl(), v8::internal::compiler::RawMachineAssembler::Export(), v8::internal::compiler::BasicBlockInstrumentor::Instrument(), and v8::internal::compiler::ScheduleVerifier::Run().
|
inline |
Definition at line 187 of file schedule.h.
References rpo_order_.
Referenced by v8::internal::compiler::BasicBlockInstrumentor::Instrument().
|
inline |
|
inlineprivate |
Definition at line 290 of file schedule.h.
References block(), and nodeid_to_block_.
Referenced by AddBranch(), AddNode(), AddReturn(), v8::internal::compiler::BasicBlockInstrumentor::Instrument(), PlanNode(), and SetControlInput().
|
inlineprivate |
Definition at line 285 of file schedule.h.
References block(), and SetBlockForNode().
Referenced by AddBranch(), AddReturn(), and AddThrow().
|
friend |
Definition at line 283 of file schedule.h.
|
friend |
Definition at line 273 of file schedule.h.
|
friend |
Definition at line 272 of file schedule.h.
|
friend |
Definition at line 282 of file schedule.h.
|
private |
Definition at line 299 of file schedule.h.
Referenced by all_blocks(), GetBlockById(), NewBasicBlock(), and v8::internal::compiler::Scheduler::ScheduleLate().
|
private |
Definition at line 300 of file schedule.h.
Referenced by block(), IsScheduled(), Schedule(), and SetBlockForNode().
|
private |
Definition at line 301 of file schedule.h.
Referenced by v8::internal::compiler::Scheduler::ComputeSpecialRPO(), v8::internal::compiler::Scheduler::GenerateImmediateDominatorTree(), v8::internal::compiler::Scheduler::GetRPONumber(), rpo_order(), and RpoBlockCount().
|
private |
Definition at line 298 of file schedule.h.
Referenced by AddSuccessor().