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)
commit0473cb5ab75c5ddf51290d7e5299c0c64d13312f
tree8f35948e400bbd67584cd9a8f25f0d6a798f8b64
parentbd039299c069ad5459410882382432f6d70eb2b0
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!

llvm-svn: 225821
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp