From 2cdb806fd88bccd7d4bf22fa358cc79609492f55 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 6 Jan 2010 20:04:44 +0000 Subject: Move the object size intrinsic optimization to inst-combine and make it work for any integer size return type. llvm-svn: 92853 --- llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp') diff --git a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp index c67c9cf03f2..9183f3aac1f 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp @@ -1094,27 +1094,6 @@ struct MemSetOpt : public LibCallOptimization { // Object Size Checking Optimizations //===----------------------------------------------------------------------===// -//===---------------------------------------===// -// 'object size' -namespace { -struct SizeOpt : public LibCallOptimization { - virtual Value *CallOptimizer(Function *Callee, CallInst *CI, IRBuilder<> &B) { - // TODO: We can do more with this, but delaying to here should be no change - // in behavior. - ConstantInt *Const = dyn_cast(CI->getOperand(2)); - - if (!Const) return 0; - - const Type *Ty = Callee->getFunctionType()->getReturnType(); - - if (Const->getZExtValue() == 0) - return Constant::getAllOnesValue(Ty); - else - return ConstantInt::get(Ty, 0); - } -}; -} - //===---------------------------------------===// // 'memcpy_chk' Optimizations @@ -1745,7 +1724,6 @@ namespace { FWriteOpt FWrite; FPutsOpt FPuts; FPrintFOpt FPrintF; // Object Size Checking - SizeOpt ObjectSize; MemCpyChkOpt MemCpyChk; MemSetChkOpt MemSetChk; MemMoveChkOpt MemMoveChk; bool Modified; // This is only used by doInitialization. @@ -1855,8 +1833,6 @@ void SimplifyLibCalls::InitOptimizations() { Optimizations["fprintf"] = &FPrintF; // Object Size Checking - Optimizations["llvm.objectsize.i32"] = &ObjectSize; - Optimizations["llvm.objectsize.i64"] = &ObjectSize; Optimizations["__memcpy_chk"] = &MemCpyChk; Optimizations["__memset_chk"] = &MemSetChk; Optimizations["__memmove_chk"] = &MemMoveChk; -- cgit v1.2.3