summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2016-10-26 19:18:19 +0000
committerChad Rosier <mcrosier@codeaurora.org>2016-10-26 19:18:19 +0000
commit4447d7a8165fd5020f384341dd069a05b5206980 (patch)
treef961886db3a8f5882d9bb54813fff686524ce2a1
parent73418dfe61df18bf724139fe0dd92036c8a5e2fa (diff)
downloadbcm5719-llvm-4447d7a8165fd5020f384341dd069a05b5206980.tar.gz
bcm5719-llvm-4447d7a8165fd5020f384341dd069a05b5206980.zip
Revert "[AliasSetTracker] Make AST smarter about intrinsics that don't actually affect memory."
This reverts commit r285191. LICM appears to rely on the Alias Set Tracker hitting lifetime markers to prevent code from being moved outside of the original scope. llvm-svn: 285227
-rw-r--r--llvm/lib/Analysis/AliasSetTracker.cpp15
-rw-r--r--llvm/test/Analysis/AliasSet/intrinsics.ll54
2 files changed, 0 insertions, 69 deletions
diff --git a/llvm/lib/Analysis/AliasSetTracker.cpp b/llvm/lib/Analysis/AliasSetTracker.cpp
index 0a947e175d4..954b22037ed 100644
--- a/llvm/lib/Analysis/AliasSetTracker.cpp
+++ b/llvm/lib/Analysis/AliasSetTracker.cpp
@@ -413,21 +413,6 @@ void AliasSetTracker::add(MemTransferInst *MTI) {
void AliasSetTracker::addUnknown(Instruction *Inst) {
if (isa<DbgInfoIntrinsic>(Inst))
return; // Ignore DbgInfo Intrinsics.
-
- if (auto *II = dyn_cast<IntrinsicInst>(Inst)) {
- // These intrinsics will show up as affecting memory, but they are just
- // markers.
- switch (II->getIntrinsicID()) {
- default:
- break;
- case Intrinsic::lifetime_start:
- case Intrinsic::lifetime_end:
- case Intrinsic::invariant_start:
- case Intrinsic::invariant_end:
- case Intrinsic::assume:
- return;
- }
- }
if (!Inst->mayReadOrWriteMemory())
return; // doesn't alias anything
diff --git a/llvm/test/Analysis/AliasSet/intrinsics.ll b/llvm/test/Analysis/AliasSet/intrinsics.ll
deleted file mode 100644
index 5562c69d249..00000000000
--- a/llvm/test/Analysis/AliasSet/intrinsics.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: opt -basicaa -print-alias-sets -S -o - < %s 2>&1 | FileCheck %s
-
-; CHECK: Alias sets for function 'test1':
-; CHECK: Alias Set Tracker: 2 alias sets for 2 pointer values.
-; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %a, 1)
-; CHECK-NOT: 1 Unknown instruction
-; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %b, 1)
-define void @test1(i32 %c) {
-entry:
- %a = alloca i8, align 1
- %b = alloca i8, align 1
- store i8 1, i8* %a, align 1
- %cond1 = icmp ne i32 %c, 0
- call void @llvm.assume(i1 %cond1)
- store i8 1, i8* %b, align 1
- ret void
-}
-
-; CHECK: Alias sets for function 'test2':
-; CHECK: Alias Set Tracker: 2 alias sets for 2 pointer values.
-; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %a, 1)
-; CHECK-NOT: 2 Unknown instructions
-; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %b, 1)
-; CHECK-NOT: 2 Unknown instructions
-define void @test2(i8* %ptr) {
-entry:
- %a = alloca i8, align 1
- call void @llvm.lifetime.start(i64 1, i8* %a)
- %b = alloca i8, align 1
- call void @llvm.lifetime.start(i64 1, i8* %b)
- store i8 1, i8* %a, align 1
- call void @llvm.lifetime.end(i64 1, i8* %a)
- store i8 1, i8* %b, align 1
- call void @llvm.lifetime.end(i64 1, i8* %b)
- ret void
-}
-
-; CHECK: Alias sets for function 'test3':
-; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.
-; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %ptr, 1)
-; CHECK-NOT: 2 Unknown instructions
-define void @test3(i8* %ptr) {
- store i8 5, i8* %ptr
- %i = call {}* @llvm.invariant.start.p0i8(i64 1, i8* %ptr)
- call void @llvm.invariant.end.p0i8({}* %i, i64 1, i8* %ptr)
- store i8 6, i8* %ptr
- ret void
-}
-
-declare void @llvm.assume(i1)
-declare void @llvm.lifetime.start(i64, i8* nocapture)
-declare void @llvm.lifetime.end(i64, i8* nocapture)
-declare {}* @llvm.invariant.start.p0i8(i64, i8* nocapture) nounwind readonly
-declare void @llvm.invariant.end.p0i8({}*, i64, i8* nocapture) nounwind
OpenPOWER on IntegriCloud