[llvm] r280342 - [SimplifyCFG] Fix nondeterministic iteration order
James Molloy via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 1 02:01:34 PDT 2016
Author: jamesm
Date: Thu Sep 1 04:01:34 2016
New Revision: 280342
URL: http://llvm.org/viewvc/llvm-project?rev=280342&view=rev
Log:
[SimplifyCFG] Fix nondeterministic iteration order
We iterate over the result from SafeToMergeTerminators, so make it a SmallSetVector instead of a SmallPtrSet.
Should fix stage3 convergence builds.
Modified:
llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
Modified: llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp?rev=280342&r1=280341&r2=280342&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp Thu Sep 1 04:01:34 2016
@@ -176,7 +176,7 @@ public:
/// terminator instructions together.
static bool
SafeToMergeTerminators(TerminatorInst *SI1, TerminatorInst *SI2,
- SmallPtrSetImpl<BasicBlock *> *FailBlocks = nullptr) {
+ SmallSetVector<BasicBlock *, 4> *FailBlocks = nullptr) {
if (SI1 == SI2)
return false; // Can't merge with self!
@@ -961,7 +961,7 @@ bool SimplifyCFGOpt::FoldValueComparison
Value *PCV = isValueEqualityComparison(PTI); // PredCondVal
if (PCV == CV && TI != PTI) {
- SmallPtrSet<BasicBlock*, 4> FailBlocks;
+ SmallSetVector<BasicBlock*, 4> FailBlocks;
if (!SafeToMergeTerminators(TI, PTI, &FailBlocks)) {
for (auto *Succ : FailBlocks) {
std::vector<BasicBlock*> Blocks = { TI->getParent() };
More information about the llvm-commits
mailing list