<div dir="ltr"><div class="gmail_default" style="font-size:small">Denis,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">thanks for your review of how different backends handle branch expansion. I went a little further and derived this table from the sources. There is also the BranchRelaxation MachineFunctionPass in ./CodeGen/BranchRelaxation.cpp which 4 passes use. This may be the "small jumps to larger jumps" pass you're looking for.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">AArch64/        no relaxInstruction      BranchRelaxationPassID<br>AMDGPU/            relaxInstruction      BranchRelaxationPassID      both relax + pass<br>ARC/            no relaxInstruction      ARCBranchFinalize<br>ARM/               relaxInstruction<br>AVR/            no relaxInstruction      BranchRelaxationPassID<br>BPF/            no relaxInstruciton<br>Hexagon/           relaxInstruction      HexagonBranchRelaxation     both relax + pass<br>Lanai/          no relaxInstruction<br>MSP430/         no relaxInstruction      MSP430BSel<br>Mips/           no relaxInstruction      MipsBranchExpansion<br>NVPTX/          no relaxInstruction<br>PowerPC/        no relaxInstruction      PPCBSel<br>RISCV/             relaxInstruction      BranchRelaxationPassID      both relax + pass<br>Sparc/          no relaxInstruction<br>SystemZ/        no relaxInstruction      SystemZLongBranch<br>VE/             no relaxInstrcution<br>WebAssembly/    no relaxInstruction<br>X86/               relaxInstruction<br>XCore/          no relaxInstruction</div></div>