Skip to content

Commit d53e313

Browse files
paschalis-mpeisFlightor
authored andcommitted
[BOLT][AArch64] Enable function print after ADRRelaxation (#119869)
Introduce `--print-adr-relaxation` to print after ADR Relaxation pass.
1 parent 6388533 commit d53e313

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

bolt/include/bolt/Passes/ADRRelaxationPass.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ namespace bolt {
2525

2626
class ADRRelaxationPass : public BinaryFunctionPass {
2727
public:
28-
explicit ADRRelaxationPass() : BinaryFunctionPass(false) {}
28+
explicit ADRRelaxationPass(const cl::opt<bool> &PrintPass)
29+
: BinaryFunctionPass(PrintPass) {}
2930

3031
const char *getName() const override { return "adr-relaxation"; }
3132

bolt/lib/Rewrite/BinaryPassManager.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ static cl::opt<bool> PrintJTFootprintReduction(
125125
cl::desc("print function after jt-footprint-reduction pass"), cl::Hidden,
126126
cl::cat(BoltOptCategory));
127127

128+
static cl::opt<bool>
129+
PrintAdrRelaxation("print-adr-relaxation",
130+
cl::desc("print functions after ADR Relaxation pass"),
131+
cl::Hidden, cl::cat(BoltOptCategory));
132+
128133
static cl::opt<bool>
129134
PrintLongJmp("print-longjmp",
130135
cl::desc("print functions after longjmp pass"), cl::Hidden,
@@ -490,7 +495,8 @@ Error BinaryFunctionPassManager::runAllPasses(BinaryContext &BC) {
490495
Manager.registerPass(std::make_unique<ReorderData>());
491496

492497
if (BC.isAArch64()) {
493-
Manager.registerPass(std::make_unique<ADRRelaxationPass>());
498+
Manager.registerPass(
499+
std::make_unique<ADRRelaxationPass>(PrintAdrRelaxation));
494500

495501
// Tighten branches according to offset differences between branch and
496502
// targets. No extra instructions after this pass, otherwise we may have

0 commit comments

Comments
 (0)