From 065862a1174e4af0175e08c427b6509ad8fb22f9 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 30 Aug 2017 18:46:37 +0000 Subject: [PATCH] [GVNSink] Remove dependency on SmallPtrSet iteration order. 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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Transforms/Scalar/GVNSink.cpp b/lib/Transforms/Scalar/GVNSink.cpp index 5fd2dfc118b..1eda0f36bd5 100644 --- a/lib/Transforms/Scalar/GVNSink.cpp +++ b/lib/Transforms/Scalar/GVNSink.cpp @@ -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 ModelledPHI(ArrayRef 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)); } -- 2.50.1