diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2010-03-24 20:19:04 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2010-03-24 20:19:04 +0000 |
| commit | c12c2d9bb489b550d7735830b3932273b5bff0f0 (patch) | |
| tree | bbc95677e64f4d04088517879ace80c16bf5b46f /llvm/lib | |
| parent | 64b046fce43cea864c81da8a35edd9c9b226ec3e (diff) | |
| download | bcm5719-llvm-c12c2d9bb489b550d7735830b3932273b5bff0f0.tar.gz bcm5719-llvm-c12c2d9bb489b550d7735830b3932273b5bff0f0.zip | |
Move OptChkCall off LibCallOptimization into StrCpyOpt.
llvm-svn: 99418
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp index 058cd3c561f..5941ea6571b 100644 --- a/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp @@ -49,13 +49,10 @@ protected: Function *Caller; const TargetData *TD; LLVMContext* Context; - bool OptChkCall; // True if it's optimizing a *_chk libcall. public: - LibCallOptimization() : OptChkCall(false) { } + LibCallOptimization() { } virtual ~LibCallOptimization() {} - void setOptChkCall(bool c) { OptChkCall = c; } - /// CallOptimizer - This pure virtual method is implemented by base classes to /// do various optimizations. If this returns null then no transformation was /// performed. If it returns CI, then it transformed the call and CI is to be @@ -353,6 +350,10 @@ struct StrNCmpOpt : public LibCallOptimization { // 'strcpy' Optimizations struct StrCpyOpt : public LibCallOptimization { + bool OptChkCall; // True if it's optimizing a __strcpy_chk libcall. + + StrCpyOpt(bool c) : OptChkCall(c) {} + virtual Value *CallOptimizer(Function *Callee, CallInst *CI, IRBuilder<> &B) { // Verify the "strcpy" function prototype. unsigned NumParams = OptChkCall ? 3 : 2; @@ -1188,8 +1189,7 @@ namespace { bool Modified; // This is only used by doInitialization. public: static char ID; // Pass identification - SimplifyLibCalls() : FunctionPass(&ID) {} - + SimplifyLibCalls() : FunctionPass(&ID), StrCpy(false), StrCpyChk(true) {} void InitOptimizations(); bool runOnFunction(Function &F); @@ -1240,7 +1240,6 @@ void SimplifyLibCalls::InitOptimizations() { Optimizations["memset"] = &MemSet; // _chk variants of String and Memory LibCall Optimizations. - StrCpyChk.setOptChkCall(true); Optimizations["__strcpy_chk"] = &StrCpyChk; // Math Library Optimizations |

