Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(969)

Unified Diff: src/compiler/scheduler.h

Issue 490483002: Refactor Scheduler to simplify construction of CFG from sea of nodes. Use PreEdge/Post as part of t… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: unmacrofy TRACE Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/compiler/scheduler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/scheduler.h
diff --git a/src/compiler/scheduler.h b/src/compiler/scheduler.h
index b2964c8a9fcac61e266c8e5eaf1f3ecbd4f67415..a25e0a03f40f133b96171f9338a4de67787d7325 100644
--- a/src/compiler/scheduler.h
+++ b/src/compiler/scheduler.h
@@ -22,21 +22,21 @@ namespace compiler {
// ordering the basic blocks in the special RPO order.
class Scheduler {
public:
- // Create a new schedule and place all computations from the graph in it.
+ // The complete scheduling algorithm.
+ // Create a new schedule and place all nodes from the graph into it.
static Schedule* ComputeSchedule(Graph* graph);
// Compute the RPO of blocks in an existing schedule.
static BasicBlockVector* ComputeSpecialRPO(Schedule* schedule);
+ // (Exposed for testing only)
+ // Build and connect the CFG for a node graph, but don't schedule nodes.
+ static void ComputeCFG(Graph* graph, Schedule* schedule);
+
private:
Zone* zone_;
Graph* graph_;
Schedule* schedule_;
- NodeVector branches_;
- NodeVector calls_;
- NodeVector deopts_;
- NodeVector returns_;
- NodeVector loops_and_merges_;
IntVector unscheduled_uses_;
NodeVectorVector scheduled_nodes_;
NodeVector schedule_root_nodes_;
@@ -45,7 +45,6 @@ class Scheduler {
Scheduler(Zone* zone, Graph* graph, Schedule* schedule);
bool IsBasicBlockBegin(Node* node);
- bool CanBeScheduled(Node* node);
bool HasFixedSchedulePosition(Node* node);
bool IsScheduleRoot(Node* node);
@@ -59,17 +58,6 @@ class Scheduler {
void PrepareAuxiliaryNodeData();
void PrepareAuxiliaryBlockData();
- friend class CreateBlockVisitor;
- void CreateBlocks();
-
- void WireBlocks();
-
- void AddPredecessorsForLoopsAndMerges();
- void AddSuccessorsForBranches();
- void AddSuccessorsForReturns();
- void AddSuccessorsForCalls();
- void AddSuccessorsForDeopts();
-
void GenerateImmediateDominatorTree();
BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2);
« no previous file with comments | « no previous file | src/compiler/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698