[llvm] r285227 - Revert "[AliasSetTracker] Make AST smarter about intrinsics that don't actually affect memory."
Chad Rosier via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 26 12:18:19 PDT 2016
Author: mcrosier
Date: Wed Oct 26 14:18:19 2016
New Revision: 285227
URL: http://llvm.org/viewvc/llvm-project?rev=285227&view=rev
Log:
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.
Removed:
llvm/trunk/test/Analysis/AliasSet/intrinsics.ll
Modified:
llvm/trunk/lib/Analysis/AliasSetTracker.cpp
Modified: llvm/trunk/lib/Analysis/AliasSetTracker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/AliasSetTracker.cpp?rev=285227&r1=285226&r2=285227&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/AliasSetTracker.cpp (original)
+++ llvm/trunk/lib/Analysis/AliasSetTracker.cpp Wed Oct 26 14:18:19 2016
@@ -413,21 +413,6 @@ void AliasSetTracker::add(MemTransferIns
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
Removed: llvm/trunk/test/Analysis/AliasSet/intrinsics.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/AliasSet/intrinsics.ll?rev=285226&view=auto
==============================================================================
--- llvm/trunk/test/Analysis/AliasSet/intrinsics.ll (original)
+++ llvm/trunk/test/Analysis/AliasSet/intrinsics.ll (removed)
@@ -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
More information about the llvm-commits
mailing list