[llvm-dev] Handling far branches with fixups or ELF relocs
Chris Sears via llvm-dev
llvm-dev at lists.llvm.org
Tue Aug 25 11:41:10 PDT 2020
Denis,
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.
AArch64/ no relaxInstruction BranchRelaxationPassID
AMDGPU/ relaxInstruction BranchRelaxationPassID both
relax + pass
ARC/ no relaxInstruction ARCBranchFinalize
ARM/ relaxInstruction
AVR/ no relaxInstruction BranchRelaxationPassID
BPF/ no relaxInstruciton
Hexagon/ relaxInstruction HexagonBranchRelaxation both
relax + pass
Lanai/ no relaxInstruction
MSP430/ no relaxInstruction MSP430BSel
Mips/ no relaxInstruction MipsBranchExpansion
NVPTX/ no relaxInstruction
PowerPC/ no relaxInstruction PPCBSel
RISCV/ relaxInstruction BranchRelaxationPassID both
relax + pass
Sparc/ no relaxInstruction
SystemZ/ no relaxInstruction SystemZLongBranch
VE/ no relaxInstrcution
WebAssembly/ no relaxInstruction
X86/ relaxInstruction
XCore/ no relaxInstruction
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200825/1b0d79c3/attachment.html>
More information about the llvm-dev
mailing list