diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-11-29 14:36:26 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-11-29 14:36:26 +0000 |
commit | 5175fd990c898a49708d60b84e7838bead48f2cd (patch) | |
tree | 155df29ee31ccc3aeac82e9cdf4fb5fd6e90fe6c | |
parent | 6d988b423acf37ed4d0b50b2678a18f65ab1a207 (diff) | |
download | llvm-5175fd990c898a49708d60b84e7838bead48f2cd.tar.gz llvm-5175fd990c898a49708d60b84e7838bead48f2cd.tar.bz2 llvm-5175fd990c898a49708d60b84e7838bead48f2cd.tar.xz |
misched: Recompute priority queue when DFSResults are updated.
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly
std::is_heap isn't standard so there is no way to assert this without writing
our own heap verify, which looks like overkill to me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168885 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/MachineScheduler.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/MachineScheduler.cpp b/lib/CodeGen/MachineScheduler.cpp index e27bb0dd1b..b3e38f64ff 100644 --- a/lib/CodeGen/MachineScheduler.cpp +++ b/lib/CodeGen/MachineScheduler.cpp @@ -2117,6 +2117,8 @@ public: virtual void registerRoots() { DFSResult.compute(ReadyQ); ScheduledTrees.resize(DFSResult.getNumSubtrees()); + // Restore the heap in ReadyQ with the updated DFS results. + std::make_heap(ReadyQ.begin(), ReadyQ.end(), Cmp); } /// Implement MachineSchedStrategy interface. |