mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Move OptChkCall off LibCallOptimization into StrCpyOpt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99418 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
51ecc389a9
commit
eb8c6459fc
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user