[llvm] r196520 - Fix non-deterministic behavior.
Rafael Espindola
rafael.espindola at gmail.com
Thu Dec 5 10:28:01 PST 2013
Author: rafael
Date: Thu Dec 5 12:28:01 2013
New Revision: 196520
URL: http://llvm.org/viewvc/llvm-project?rev=196520&view=rev
Log:
Fix non-deterministic behavior.
We use CSEBlocks to initialize a worklist:
SmallVector<BasicBlock *, 8> CSEWorkList(CSEBlocks.begin(), CSEBlocks.end());
so it must have a deterministic order.
Modified:
llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=196520&r1=196519&r2=196520&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Thu Dec 5 12:28:01 2013
@@ -521,7 +521,7 @@ private:
/// Holds all of the instructions that we gathered.
SetVector<Instruction *> GatherSeq;
/// A list of blocks that we are going to CSE.
- SmallSet<BasicBlock *, 8> CSEBlocks;
+ SetVector<BasicBlock *> CSEBlocks;
/// Numbers instructions in different blocks.
DenseMap<BasicBlock *, BlockNumbering> BlocksNumbers;
More information about the llvm-commits
mailing list