X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FCodeGen%2FLatencyPriorityQueue.h;h=71fae2aeabb5abb4851a9d723e4b8aa6ba3e732a;hb=104cf9e02b0ed94d4173869a598af6c6972a8660;hp=f7eb3a62a2a9d6622952b7fd14327c495db1a07e;hpb=f55a2101e300d1b4d420a1e71ca839e3146bdf70;p=oota-llvm.git diff --git a/include/llvm/CodeGen/LatencyPriorityQueue.h b/include/llvm/CodeGen/LatencyPriorityQueue.h index f7eb3a62a2a..71fae2aeabb 100644 --- a/include/llvm/CodeGen/LatencyPriorityQueue.h +++ b/include/llvm/CodeGen/LatencyPriorityQueue.h @@ -34,10 +34,6 @@ namespace llvm { // SUnits - The SUnits for the current graph. std::vector *SUnits; - // Latencies - The latency (max of latency from this node to the bb exit) - // for each node. - std::vector Latencies; - /// NumNodesSolelyBlocking - This vector contains, for every node in the /// Queue, the number of nodes that the node is the sole unscheduled /// predecessor for. This is used as a tie-breaker heuristic for better @@ -51,29 +47,23 @@ public: void initNodes(std::vector &sunits) { SUnits = &sunits; - // Calculate node priorities. - CalculatePriorities(); + NumNodesSolelyBlocking.resize(SUnits->size(), 0); } void addNode(const SUnit *SU) { - Latencies.resize(SUnits->size(), -1); NumNodesSolelyBlocking.resize(SUnits->size(), 0); - CalcLatency(*SU); } void updateNode(const SUnit *SU) { - Latencies[SU->NodeNum] = -1; - CalcLatency(*SU); } void releaseState() { SUnits = 0; - Latencies.clear(); } unsigned getLatency(unsigned NodeNum) const { - assert(NodeNum < Latencies.size()); - return Latencies[NodeNum]; + assert(NodeNum < (*SUnits).size()); + return (*SUnits)[NodeNum].getHeight(); } unsigned getNumSolelyBlockNodes(unsigned NodeNum) const { @@ -114,8 +104,6 @@ public: void ScheduledNode(SUnit *Node); private: - void CalculatePriorities(); - void CalcLatency(const SUnit &SU); void AdjustPriorityOfUnscheduledPreds(SUnit *SU); SUnit *getSingleUnscheduledPred(SUnit *SU); };