]> granicus.if.org Git - llvm/commitdiff
[GVNSink] Remove dependency on SmallPtrSet iteration order.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 30 Aug 2017 18:46:37 +0000 (18:46 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 30 Aug 2017 18:46:37 +0000 (18:46 +0000)
Found by LLVM_ENABLE_REVERSE_ITERATION.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312156 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/GVNSink.cpp

index 5fd2dfc118b4b44d72ee2cefd092d3468efba16e..1eda0f36bd5e5c129fcf6692c78a9ea5f568a3da 100644 (file)
@@ -229,12 +229,14 @@ public:
   ModelledPHI(const VArray &V, const BArray &B) {
     std::copy(V.begin(), V.end(), std::back_inserter(Values));
     std::copy(B.begin(), B.end(), std::back_inserter(Blocks));
+    std::sort(Blocks.begin(), Blocks.end());
   }
 
   /// Create a PHI from [I[OpNum] for I in Insts].
   template <typename BArray>
   ModelledPHI(ArrayRef<Instruction *> Insts, unsigned OpNum, const BArray &B) {
     std::copy(B.begin(), B.end(), std::back_inserter(Blocks));
+    std::sort(Blocks.begin(), Blocks.end());
     for (auto *I : Insts)
       Values.push_back(I->getOperand(OpNum));
   }