Use std::set instead of std::priority_queue for the RegReductionPriorityQueue.
authorRoman Levenstein <romix.llvm@googlemail.com>
Tue, 29 Apr 2008 09:07:59 +0000 (09:07 +0000)
committerRoman Levenstein <romix.llvm@googlemail.com>
Tue, 29 Apr 2008 09:07:59 +0000 (09:07 +0000)
commita0201d52049be8dcefffe4304a49690a831bcb34
tree5bd69deb9eb3060895d6b56424cb53f9a9f4cc2b
parent5b222d748a0976497297fa77d1dd36328331e32c
Use std::set instead of std::priority_queue for the RegReductionPriorityQueue.
This removes the existing bottleneck related to the removal of elements from
the middle of the queue.

Also fixes a subtle bug in ScheduleDAGRRList::CapturePred:
It was updating the state of the SUnit before removing it. As a result, the
comparison operators were working incorrectly and this SUnit could not be removed
from the queue properly.

Reviewed by Evan and Dan. Approved by Dan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50412 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp