diff options
author | Victor Hernandez <vhernandez@apple.com> | 2009-09-18 22:35:49 +0000 |
---|---|---|
committer | Victor Hernandez <vhernandez@apple.com> | 2009-09-18 22:35:49 +0000 |
commit | 5d034499ad2b0cd99833dd66e9359bf17088fa11 (patch) | |
tree | c7c7349c462240747f9fcdd168666acfcc8464c5 /llvm/lib/Transforms/Scalar/SCCP.cpp | |
parent | 3d8f8625967ac153e80ff100ac88a3393631df24 (diff) | |
download | bcm5719-llvm-5d034499ad2b0cd99833dd66e9359bf17088fa11.tar.gz bcm5719-llvm-5d034499ad2b0cd99833dd66e9359bf17088fa11.zip |
Enhance transform passes so that they apply the same tranforms to malloc calls as to MallocInst.
Reviewed by Dan Gohman.
llvm-svn: 82300
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SCCP.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/SCCP.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp index e1f0ba535cd..f0b5d7702e3 100644 --- a/llvm/lib/Transforms/Scalar/SCCP.cpp +++ b/llvm/lib/Transforms/Scalar/SCCP.cpp @@ -30,6 +30,7 @@ #include "llvm/LLVMContext.h" #include "llvm/Pass.h" #include "llvm/Analysis/ConstantFolding.h" +#include "llvm/Analysis/MallocHelper.h" #include "llvm/Analysis/ValueTracking.h" #include "llvm/Transforms/Utils/Local.h" #include "llvm/Support/CallSite.h" @@ -400,7 +401,12 @@ private: void visitStoreInst (Instruction &I); void visitLoadInst (LoadInst &I); void visitGetElementPtrInst(GetElementPtrInst &I); - void visitCallInst (CallInst &I) { visitCallSite(CallSite::get(&I)); } + void visitCallInst (CallInst &I) { + if (isMalloc(&I)) + markOverdefined(&I); + else + visitCallSite(CallSite::get(&I)); + } void visitInvokeInst (InvokeInst &II) { visitCallSite(CallSite::get(&II)); visitTerminatorInst(II); |