[AArch64] Register (existing) AArch64BranchRelaxation pass with LLVM pass manager.

Summary: Among other things, this allows -print-after-all/-print-before-all to
dump IR around this pass.

llvm-svn: 244060
This commit is contained in:
Chad Rosier 2015-08-05 16:12:10 +00:00
parent 9927206f8c
commit 1c81432eb6
1 changed files with 13 additions and 2 deletions

View File

@ -45,6 +45,12 @@ BCCDisplacementBits("aarch64-bcc-offset-bits", cl::Hidden, cl::init(19),
STATISTIC(NumSplit, "Number of basic blocks split");
STATISTIC(NumRelaxed, "Number of conditional branches relaxed");
namespace llvm {
void initializeAArch64BranchRelaxationPass(PassRegistry &);
}
#define AARCH64_BR_RELAX_NAME "AArch64 branch relaxation pass"
namespace {
class AArch64BranchRelaxation : public MachineFunctionPass {
/// BasicBlockInfo - Information about the offset and size of a single
@ -93,17 +99,22 @@ class AArch64BranchRelaxation : public MachineFunctionPass {
public:
static char ID;
AArch64BranchRelaxation() : MachineFunctionPass(ID) {}
AArch64BranchRelaxation() : MachineFunctionPass(ID) {
initializeAArch64BranchRelaxationPass(*PassRegistry::getPassRegistry());
}
bool runOnMachineFunction(MachineFunction &MF) override;
const char *getPassName() const override {
return "AArch64 branch relaxation pass";
return AARCH64_BR_RELAX_NAME;
}
};
char AArch64BranchRelaxation::ID = 0;
}
INITIALIZE_PASS(AArch64BranchRelaxation, "aarch64-branch-relax",
AARCH64_BR_RELAX_NAME, false, false)
/// verify - check BBOffsets, BBSizes, alignment of islands
void AArch64BranchRelaxation::verify() {
#ifndef NDEBUG