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/Transforms | |
| 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/Transforms')
| -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 | 

