Fix non-determinism issue in SLP
authorJulien Lerouge <jlerouge@apple.com>
Tue, 13 Jan 2015 19:45:52 +0000 (19:45 +0000)
committerJulien Lerouge <jlerouge@apple.com>
Tue, 13 Jan 2015 19:45:52 +0000 (19:45 +0000)
commit88e1d95d4df526352e183b57b2ea6a3d45199619
tree87d15ddbbd0a1b1d1cdc73808fbe034fb485cc28
parent81d2500685be79e75d3631668d42a0c780da2be9
Fix non-determinism issue in SLP

The issue was introduced in r214638:

+  for (auto &BSIter : BlocksSchedules) {
+    scheduleBlock(BSIter.second.get());
+  }

Because BlocksSchedules is a DenseMap with BasicBlock* keys, blocks are
scheduled in non-deterministic order, resulting in unpredictable IR.

Patch by Daniel Reynaud!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225821 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/SLPVectorizer.cpp