summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/MemoryBuiltins.cpp
diff options
context:
space:
mode:
authorMichael Ilseman <milseman@apple.com>2013-03-08 21:15:00 +0000
committerMichael Ilseman <milseman@apple.com>2013-03-08 21:15:00 +0000
commit74ffc27d257850b4f0d8c01622ec7d24d2f1c53e (patch)
tree8fbfae296d8bf5266931d7bc8ca62061de868480 /llvm/lib/Analysis/MemoryBuiltins.cpp
parent5846239e1669f8047ad095f18d05e4a04bd61079 (diff)
downloadbcm5719-llvm-74ffc27d257850b4f0d8c01622ec7d24d2f1c53e.tar.gz
bcm5719-llvm-74ffc27d257850b4f0d8c01622ec7d24d2f1c53e.zip
Early exit from getAllocationData() and isFreeCall() for intrinsics.
llvm-svn: 176722
Diffstat (limited to 'llvm/lib/Analysis/MemoryBuiltins.cpp')
-rw-r--r--llvm/lib/Analysis/MemoryBuiltins.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp
index 999ee8a4309..d490d5419f7 100644
--- a/llvm/lib/Analysis/MemoryBuiltins.cpp
+++ b/llvm/lib/Analysis/MemoryBuiltins.cpp
@@ -88,6 +88,10 @@ static Function *getCalledFunction(const Value *V, bool LookThroughBitCast) {
static const AllocFnsTy *getAllocationData(const Value *V, AllocType AllocTy,
const TargetLibraryInfo *TLI,
bool LookThroughBitCast = false) {
+ // Skip intrinsics
+ if (isa<IntrinsicInst>(V))
+ return 0;
+
Function *Callee = getCalledFunction(V, LookThroughBitCast);
if (!Callee)
return 0;
@@ -300,7 +304,7 @@ const CallInst *llvm::extractCallocCall(const Value *I,
/// isFreeCall - Returns non-null if the value is a call to the builtin free()
const CallInst *llvm::isFreeCall(const Value *I, const TargetLibraryInfo *TLI) {
const CallInst *CI = dyn_cast<CallInst>(I);
- if (!CI)
+ if (!CI || isa<IntrinsicInst>(CI))
return 0;
Function *Callee = CI->getCalledFunction();
if (Callee == 0 || !Callee->isDeclaration())
OpenPOWER on IntegriCloud