[ARM] Register ARMPreAllocLoadStoreOpt pass with LLVM pass manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247791 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2015-09-16 13:11:31 +00:00
parent 5369e0fdbe
commit ed43215ca8

View File

@ -1842,12 +1842,21 @@ bool ARMLoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) {
return Modified;
}
namespace llvm {
void initializeARMPreAllocLoadStoreOptPass(PassRegistry &);
}
#define ARM_PREALLOC_LOAD_STORE_OPT_NAME \
"ARM pre- register allocation load / store optimization pass"
namespace {
/// Pre- register allocation pass that move load / stores from consecutive
/// locations close to make it more likely they will be combined later.
struct ARMPreAllocLoadStoreOpt : public MachineFunctionPass{
static char ID;
ARMPreAllocLoadStoreOpt() : MachineFunctionPass(ID) {}
ARMPreAllocLoadStoreOpt() : MachineFunctionPass(ID) {
initializeARMPreAllocLoadStoreOptPass(*PassRegistry::getPassRegistry());
}
const DataLayout *TD;
const TargetInstrInfo *TII;
@ -1859,7 +1868,7 @@ namespace {
bool runOnMachineFunction(MachineFunction &Fn) override;
const char *getPassName() const override {
return "ARM pre- register allocation load / store optimization pass";
return ARM_PREALLOC_LOAD_STORE_OPT_NAME;
}
private:
@ -1878,6 +1887,9 @@ namespace {
char ARMPreAllocLoadStoreOpt::ID = 0;
}
INITIALIZE_PASS(ARMPreAllocLoadStoreOpt, "arm-prera-load-store-opt",
ARM_PREALLOC_LOAD_STORE_OPT_NAME, false, false)
bool ARMPreAllocLoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) {
TD = &Fn.getDataLayout();
STI = &static_cast<const ARMSubtarget &>(Fn.getSubtarget());