aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-11-22 16:15:59 +0000
committerChris Lattner <sabre@nondot.org>2009-11-22 16:15:59 +0000
commit4723303c97da6f30af0dac9a30c45e2feca79c93 (patch)
treef362588d720e3de83e9d76618163ca7d6985514e
parent92e803c2a412cda777535e4ae01fe78007997f8a (diff)
remove a silly condition that doesn't make a lot of sense anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89601 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Analysis/BasicAliasAnalysis.cpp5
-rw-r--r--test/Analysis/BasicAA/modref.ll17
2 files changed, 17 insertions, 5 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 32af136677..45f5d40bd7 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -275,11 +275,6 @@ bool BasicAliasAnalysis::pointsToConstantMemory(const Value *P) {
//
AliasAnalysis::ModRefResult
BasicAliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) {
- // Don't do anything smart for constant pointers.
- // FIXME: WHY?
- if (isa<Constant>(P))
- return AliasAnalysis::getModRefInfo(CS, P, Size);
-
const Value *Object = P->getUnderlyingObject();
// If this is a tail call and P points to a stack location, we know that
diff --git a/test/Analysis/BasicAA/modref.ll b/test/Analysis/BasicAA/modref.ll
index 02db861c60..c03014dfe1 100644
--- a/test/Analysis/BasicAA/modref.ll
+++ b/test/Analysis/BasicAA/modref.ll
@@ -90,3 +90,20 @@ define void @test3a(i8* %P, i8 %X) {
ret void
; CHECK: ret void
}
+
+@G1 = external global i32
+@G2 = external global [4000 x i32]
+
+define i32 @test4(i8* %P, i8 %X) {
+ %tmp = load i32* @G1
+ call void @llvm.memset.i32(i8* bitcast ([4000 x i32]* @G2 to i8*), i8 0, i32 4000, i32 1)
+ %tmp2 = load i32* @G1
+ %sub = sub i32 %tmp2, %tmp
+ ret i32 %sub
+; CHECK: @test4
+; CHECK: load i32* @G
+; CHECK: memset.i32
+; CHECK-NOT: load
+; CHECK: sub i32 %tmp, %tmp
+}
+