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 | 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} |