summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2015-08-05 13:44:51 +0000
committerChad Rosier <mcrosier@codeaurora.org>2015-08-05 13:44:51 +0000
commit96530b3a43e16df4bca6e7ca007d7ec9c77d6366 (patch)
treeb5aee5d3e0510cfa8d20c446caf8ee3455b941ba
parente3335d8a66cb5f7f88305f5566f8e515f8e0861c (diff)
downloadbcm5719-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.cpp15
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:
OpenPOWER on IntegriCloud