From 7a82ba0510aece59f59fe988ab273c3542b4d559 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 12 Mar 2004 23:12:55 +0000 Subject: [PATCH] Fix a couple of minor problems. Because PHI nodes can use themselves, this could cause infinite loops. Also, getUnderlyingObject can return null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12351 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/BasicAliasAnalysis.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index 617ae55d1ae..e928a265ff0 100644 --- a/lib/Analysis/BasicAliasAnalysis.cpp +++ b/lib/Analysis/BasicAliasAnalysis.cpp @@ -159,9 +159,6 @@ static bool AddressMightEscape(const Value *V) { return true; if (AddressMightEscape(I)) return true; break; - case Instruction::PHI: - if (AddressMightEscape(I)) return true; - break; default: return true; } @@ -178,7 +175,7 @@ AliasAnalysis::ModRefResult BasicAliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) { if (!isa(P) && !isa(P)) if (const AllocationInst *AI = - dyn_cast(getUnderlyingObject(P))) { + dyn_cast_or_null(getUnderlyingObject(P))) { // Okay, the pointer is to a stack allocated object. If we can prove that // the pointer never "escapes", then we know the call cannot clobber it, // because it simply can't get its address.