Deleted Added
full compact
LatencyPriorityQueue.cpp (208954) LatencyPriorityQueue.cpp (210299)
1//===---- LatencyPriorityQueue.cpp - A latency-oriented priority queue ----===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 104 unchanged lines hidden (view full) ---

113 // Reinsert the node into the priority queue, which recomputes its
114 // NumNodesSolelyBlocking value.
115 push(OnlyAvailablePred);
116}
117
118SUnit *LatencyPriorityQueue::pop() {
119 if (empty()) return NULL;
120 std::vector<SUnit *>::iterator Best = Queue.begin();
1//===---- LatencyPriorityQueue.cpp - A latency-oriented priority queue ----===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 104 unchanged lines hidden (view full) ---

113 // Reinsert the node into the priority queue, which recomputes its
114 // NumNodesSolelyBlocking value.
115 push(OnlyAvailablePred);
116}
117
118SUnit *LatencyPriorityQueue::pop() {
119 if (empty()) return NULL;
120 std::vector<SUnit *>::iterator Best = Queue.begin();
121 for (std::vector::iterator I = next(Queue.begin()),
121 for (std::vector<SUnit *>::iterator I = llvm::next(Queue.begin()),
122 E = Queue.end(); I != E; ++I)
123 if (Picker(*Best, *I))
124 Best = I;
125 SUnit *V = *Best;
126 if (Best != prior(Queue.end()))
127 std::swap(*Best, Queue.back());
128 Queue.pop_back();
129 return V;
130}
131
132void LatencyPriorityQueue::remove(SUnit *SU) {
133 assert(!Queue.empty() && "Queue is empty!");
134 std::vector<SUnit *>::iterator I = std::find(Queue.begin(), Queue.end(), SU);
135 if (I != prior(Queue.end()))
136 std::swap(*I, Queue.back());
137 Queue.pop_back();
138}
122 E = Queue.end(); I != E; ++I)
123 if (Picker(*Best, *I))
124 Best = I;
125 SUnit *V = *Best;
126 if (Best != prior(Queue.end()))
127 std::swap(*Best, Queue.back());
128 Queue.pop_back();
129 return V;
130}
131
132void LatencyPriorityQueue::remove(SUnit *SU) {
133 assert(!Queue.empty() && "Queue is empty!");
134 std::vector<SUnit *>::iterator I = std::find(Queue.begin(), Queue.end(), SU);
135 if (I != prior(Queue.end()))
136 std::swap(*I, Queue.back());
137 Queue.pop_back();
138}