diff options
Diffstat (limited to 'contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp')
| -rw-r--r-- | contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp b/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp index 83e75ea994ca..6639875d07e3 100644 --- a/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp +++ b/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp @@ -15,9 +15,9 @@  #include <algorithm> -#define DEBUG_TYPE "x86-pad-short-functions"  #include "X86.h"  #include "X86InstrInfo.h" +#include "X86Subtarget.h"  #include "llvm/ADT/Statistic.h"  #include "llvm/CodeGen/MachineFunctionPass.h"  #include "llvm/CodeGen/MachineInstrBuilder.h" @@ -30,6 +30,8 @@  using namespace llvm; +#define DEBUG_TYPE "x86-pad-short-functions" +  STATISTIC(NumBBsPadded, "Number of basic blocks padded");  namespace { @@ -49,11 +51,11 @@ namespace {    struct PadShortFunc : public MachineFunctionPass {      static char ID;      PadShortFunc() : MachineFunctionPass(ID) -                   , Threshold(4), TM(0), TII(0) {} +                   , Threshold(4), TM(nullptr), TII(nullptr) {} -    virtual bool runOnMachineFunction(MachineFunction &MF); +    bool runOnMachineFunction(MachineFunction &MF) override; -    virtual const char *getPassName() const { +    const char *getPassName() const override {        return "X86 Atom pad short functions";      } @@ -100,6 +102,9 @@ bool PadShortFunc::runOnMachineFunction(MachineFunction &MF) {    }    TM = &MF.getTarget(); +  if (!TM->getSubtarget<X86Subtarget>().padShortFunctions()) +    return false; +    TII = TM->getInstrInfo();    // Search through basic blocks and mark the ones that have early returns  | 
