Index: src/compiler/scheduler.h |
diff --git a/src/compiler/scheduler.h b/src/compiler/scheduler.h |
index afd5cf1ce0ce5be189cb984b065559deee209522..a0addbdc2c11b719635b374cea6888253a413722 100644 |
--- a/src/compiler/scheduler.h |
+++ b/src/compiler/scheduler.h |
@@ -45,10 +45,10 @@ class Scheduler { |
Zone* zone_; |
Graph* graph_; |
Schedule* schedule_; |
- NodeVectorVector scheduled_nodes_; |
- NodeVector schedule_root_nodes_; |
- ZoneQueue<Node*> schedule_queue_; |
- ZoneVector<SchedulerData> node_data_; |
+ NodeVectorVector scheduled_nodes_; // Per-block list of nodes in reverse. |
+ NodeVector schedule_root_nodes_; // Fixed root nodes seed the worklist. |
+ ZoneQueue<Node*> schedule_queue_; // Worklist of schedulable nodes. |
+ ZoneVector<SchedulerData> node_data_; // Per-node data for all nodes. |
bool has_floating_control_; |
Scheduler(Zone* zone, Graph* graph, Schedule* schedule); |
@@ -64,20 +64,24 @@ class Scheduler { |
inline int GetRPONumber(BasicBlock* block); |
BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); |
- // Phase 1: Build control-flow graph and dominator tree. |
+ // Phase 1: Build control-flow graph. |
friend class CFGBuilder; |
void BuildCFG(); |
+ |
+ // Phase 2: Compute special RPO and dominator tree. |
+ friend class SpecialRPONumberer; |
+ void ComputeSpecialRPONumbering(); |
void GenerateImmediateDominatorTree(); |
- // Phase 2: Prepare use counts for nodes. |
+ // Phase 3: Prepare use counts for nodes. |
friend class PrepareUsesVisitor; |
void PrepareUses(); |
- // Phase 3: Schedule nodes early. |
+ // Phase 4: Schedule nodes early. |
friend class ScheduleEarlyNodeVisitor; |
void ScheduleEarly(); |
- // Phase 4: Schedule nodes late. |
+ // Phase 5: Schedule nodes late. |
friend class ScheduleLateNodeVisitor; |
void ScheduleLate(); |