Index: src/compiler/scheduler.h |
diff --git a/src/compiler/scheduler.h b/src/compiler/scheduler.h |
index c4398dc1b6e633d2f6daa01fb3b95d59700d5ad1..246bdae017bc79c77b09603e4c4a3dbf36adf46f 100644 |
--- a/src/compiler/scheduler.h |
+++ b/src/compiler/scheduler.h |
@@ -29,7 +29,7 @@ class Scheduler { |
Schedule* schedule); |
private: |
- enum Placement { kUnknown, kSchedulable, kFixed, kCoupled }; |
+ enum Placement { kUnknown, kSchedulable, kFixed }; |
// Per-node data tracked during scheduling. |
struct SchedulerData { |
@@ -38,8 +38,8 @@ class Scheduler { |
bool is_connected_control_; // {true} if control-connected to the end node. |
bool is_floating_control_; // {true} if control, but not control-connected |
// to the end node. |
- Placement placement_ : 2; // Whether the node is fixed, schedulable, |
- // coupled to another node, or not yet known. |
+ Placement placement_ : 3; // Whether the node is fixed, schedulable, |
+ // or not yet known. |
}; |
ZonePool* zone_pool_; |
@@ -53,15 +53,23 @@ class Scheduler { |
Scheduler(ZonePool* zone_pool, Zone* zone, Graph* graph, Schedule* schedule); |
- inline SchedulerData DefaultSchedulerData(); |
- inline SchedulerData* GetData(Node* node); |
+ SchedulerData DefaultSchedulerData(); |
+ |
+ SchedulerData* GetData(Node* node) { |
+ DCHECK(node->id() < static_cast<int>(node_data_.size())); |
+ return &node_data_[node->id()]; |
+ } |
Placement GetPlacement(Node* node); |
- void IncrementUnscheduledUseCount(Node* node, Node* from); |
- void DecrementUnscheduledUseCount(Node* node, Node* from); |
+ int GetRPONumber(BasicBlock* block) { |
+ DCHECK(block->rpo_number() >= 0 && |
+ block->rpo_number() < |
+ static_cast<int>(schedule_->rpo_order_.size())); |
+ DCHECK(schedule_->rpo_order_[block->rpo_number()] == block); |
+ return block->rpo_number(); |
+ } |
- inline int GetRPONumber(BasicBlock* block); |
BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); |
// Phase 1: Build control-flow graph and dominator tree. |