From eb7c6865cd8d44a882aa7c3e10e1d976f333344f Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Fri, 22 Jun 2012 00:25:01 +0000 Subject: [PATCH] remove extractMallocCallFromBitCast, since it was tailor maded for its sole user. Update GlobalOpt accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158952 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/MemoryBuiltins.h | 7 ------- lib/Analysis/MemoryBuiltins.cpp | 9 +-------- lib/Transforms/IPO/GlobalOpt.cpp | 6 ++++-- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/include/llvm/Analysis/MemoryBuiltins.h b/include/llvm/Analysis/MemoryBuiltins.h index 3694f8f8642..4072878f39b 100644 --- a/include/llvm/Analysis/MemoryBuiltins.h +++ b/include/llvm/Analysis/MemoryBuiltins.h @@ -69,13 +69,6 @@ static inline CallInst *extractMallocCall(Value *I) { return const_cast(extractMallocCall((const Value*)I)); } -/// extractMallocCallFromBitCast - Returns the corresponding CallInst if the -/// instruction is a bitcast of the result of a malloc call. -const CallInst *extractMallocCallFromBitCast(const Value *I); -static inline CallInst *extractMallocCallFromBitCast(Value *I) { - return const_cast(extractMallocCallFromBitCast((const Value*)I)); -} - /// isArrayMalloc - Returns the corresponding CallInst if the instruction /// is a call to malloc whose array size can be determined and the array size /// is not constant 1. Otherwise, return NULL. diff --git a/lib/Analysis/MemoryBuiltins.cpp b/lib/Analysis/MemoryBuiltins.cpp index 26d466ed31a..d1a9363b411 100644 --- a/lib/Analysis/MemoryBuiltins.cpp +++ b/lib/Analysis/MemoryBuiltins.cpp @@ -170,14 +170,7 @@ bool llvm::isReallocLikeFn(const Value *V, bool LookThroughBitCast) { /// is a malloc call. Since CallInst::CreateMalloc() only creates calls, we /// ignore InvokeInst here. const CallInst *llvm::extractMallocCall(const Value *I) { - return isMallocLikeFn(I) ? cast(I) : 0; -} - -/// extractMallocCallFromBitCast - Returns the corresponding CallInst if the -/// instruction is a bitcast of the result of a malloc call. -const CallInst *llvm::extractMallocCallFromBitCast(const Value *I) { - const BitCastInst *BCI = dyn_cast(I); - return BCI ? extractMallocCall(BCI->getOperand(0)) : 0; + return isMallocLikeFn(I) ? dyn_cast(I) : 0; } static Value *computeArraySize(const CallInst *CI, const TargetData *TD, diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index cca959b2476..ab58c41bf4e 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -1567,8 +1567,10 @@ static bool TryToOptimizeStoreOfMallocToGlobal(GlobalVariable *GV, Instruction *Cast = new BitCastInst(Malloc, CI->getType(), "tmp", CI); CI->replaceAllUsesWith(Cast); CI->eraseFromParent(); - CI = dyn_cast(Malloc) ? - extractMallocCallFromBitCast(Malloc) : cast(Malloc); + if (BitCastInst *BCI = dyn_cast(Malloc)) + CI = cast(BCI->getOperand(0)); + else + CI = cast(Malloc); } GVI = PerformHeapAllocSRoA(GV, CI, getMallocArraySize(CI, TD, true), TD);