From 4723303c97da6f30af0dac9a30c45e2feca79c93 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 22 Nov 2009 16:15:59 +0000 Subject: [PATCH] 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 --- lib/Analysis/BasicAliasAnalysis.cpp | 5 ----- test/Analysis/BasicAA/modref.ll | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index 32af1366778..45f5d40bd70 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(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 02db861c609..c03014dfe14 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 +} +