diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2015-08-05 13:44:51 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2015-08-05 13:44:51 +0000 |
commit | 96530b3a43e16df4bca6e7ca007d7ec9c77d6366 (patch) | |
tree | b5aee5d3e0510cfa8d20c446caf8ee3455b941ba | |
parent | e3335d8a66cb5f7f88305f5566f8e515f8e0861c (diff) | |
download | bcm5719-llvm-96530b3a43e16df4bca6e7ca007d7ec9c77d6366.tar.gz bcm5719-llvm-96530b3a43e16df4bca6e7ca007d7ec9c77d6366.zip |
[AArch64] Register (existing) AArch64LoadStoreOpt pass with LLVM pass manager.
Summary: Among other things, this allows -print-after-all/-print-before-all to
dump IR around this pass.
This is the AArch64 version of r243052.
llvm-svn: 244041
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp index 372a6a347f7..e23e24cf90f 100644 --- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp @@ -50,6 +50,12 @@ static cl::opt<bool> EnableAArch64UnscaledMemOp( "aarch64-unscaled-mem-op", cl::Hidden, cl::desc("Allow AArch64 unscaled load/store combining"), cl::init(true)); +namespace llvm { +void initializeAArch64LoadStoreOptPass(PassRegistry &); +} + +#define AARCH64_LOAD_STORE_OPT_NAME "AArch64 load / store optimization pass" + namespace { typedef struct LdStPairFlags { @@ -76,7 +82,9 @@ typedef struct LdStPairFlags { struct AArch64LoadStoreOpt : public MachineFunctionPass { static char ID; - AArch64LoadStoreOpt() : MachineFunctionPass(ID) {} + AArch64LoadStoreOpt() : MachineFunctionPass(ID) { + initializeAArch64LoadStoreOptPass(*PassRegistry::getPassRegistry()); + } const AArch64InstrInfo *TII; const TargetRegisterInfo *TRI; @@ -124,7 +132,7 @@ struct AArch64LoadStoreOpt : public MachineFunctionPass { bool runOnMachineFunction(MachineFunction &Fn) override; const char *getPassName() const override { - return "AArch64 load / store optimization pass"; + return AARCH64_LOAD_STORE_OPT_NAME; } private: @@ -133,6 +141,9 @@ private: char AArch64LoadStoreOpt::ID = 0; } // namespace +INITIALIZE_PASS(AArch64LoadStoreOpt, "aarch64-ldst-opt", + AARCH64_LOAD_STORE_OPT_NAME, false, false) + static bool isUnscaledLdst(unsigned Opc) { switch (Opc) { default: |