diff options
author | Silviu Baranga <silviu.baranga@arm.com> | 2015-07-09 15:18:25 +0000 |
---|---|---|
committer | Silviu Baranga <silviu.baranga@arm.com> | 2015-07-09 15:18:25 +0000 |
commit | ce3877fc8c9b1a439be39e8807ca97aedf0651eb (patch) | |
tree | f060f342e8f6e001f0bbacb1b83552f5552d0512 /llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll | |
parent | b870e9ca935fa7d2c8b405ee6a6e15eee47405fd (diff) | |
download | bcm5719-llvm-ce3877fc8c9b1a439be39e8807ca97aedf0651eb.tar.gz bcm5719-llvm-ce3877fc8c9b1a439be39e8807ca97aedf0651eb.zip |
Don't rely on the DepCands iteration order when constructing checking pointer groups
Summary:
The checking pointer group construction algorithm relied on the iteration on DepCands.
We would need the same leaders across runs and the same iteration order over the underlying std::set for determinism.
This changes the algorithm to process the pointers in the order in which they were added to the runtime check, which is deterministic.
We need to update the tests, since the order in which pointers appear has changed.
No new tests were added, since it is impossible to test for non-determinism.
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11064
llvm-svn: 241809
Diffstat (limited to 'llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll')
-rw-r--r-- | llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll b/llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll index 237cbc8b987..25dfc35d5cd 100644 --- a/llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll +++ b/llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll @@ -15,14 +15,14 @@ target triple = "x86_64-apple-macosx10.10.0" ; CHECK: Run-time memory checks: ; CHECK-NEXT: 0: ; CHECK-NEXT: Comparing group -; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 ; CHECK-NEXT: %arrayidxA_plus_2 = getelementptr inbounds i16, i16* %a, i64 %add +; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 ; CHECK-NEXT: Against group ; CHECK-NEXT: %arrayidxB = getelementptr inbounds i16, i16* %b, i64 %storemerge3 ; CHECK-NEXT: 1: ; CHECK-NEXT: Comparing group -; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 ; CHECK-NEXT: %arrayidxA_plus_2 = getelementptr inbounds i16, i16* %a, i64 %add +; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 ; CHECK-NEXT: Against group ; CHECK-NEXT: %arrayidxC = getelementptr inbounds i16, i16* %c, i64 %storemerge3 |