diff options
author | Michael Ilseman <milseman@apple.com> | 2013-03-08 21:15:00 +0000 |
---|---|---|
committer | Michael Ilseman <milseman@apple.com> | 2013-03-08 21:15:00 +0000 |
commit | 74ffc27d257850b4f0d8c01622ec7d24d2f1c53e (patch) | |
tree | 8fbfae296d8bf5266931d7bc8ca62061de868480 /llvm/lib/Analysis/MemoryBuiltins.cpp | |
parent | 5846239e1669f8047ad095f18d05e4a04bd61079 (diff) | |
download | bcm5719-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.cpp | 6 |
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()) |