Account for PATCHABLE instrs in Branch Relaxation
authorDaniel Hoekwater <hoekwater@google.com>
Tue, 11 Apr 2023 00:09:59 +0000 (17:09 -0700)
committerDaniel Hoekwater <hoekwater@google.com>
Fri, 14 Apr 2023 23:14:50 +0000 (16:14 -0700)
commit6b62166b4cf8ec69f40a81d143fa1d623b4b0d0c
treeae9ab0bbcf44ee96e0b4cd988f5b2d48b330de10
parentaf78197857115716802189ef073f83cdac9ede15
Account for PATCHABLE instrs in Branch Relaxation

PATCHABLE_* instructions expand to up to 36-byte
sleds. Updating the size of PATCHABLE instructions
causes them to be outlined, so we need to add a
check to prevent the outliner from considering
basic blocks that contain PATCHABLE instructions.

Differential Revision: https://reviews.llvm.org/D147982
llvm/lib/CodeGen/TargetInstrInfo.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
llvm/test/CodeGen/AArch64/branch-relax-xray.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/machine-outliner-patchable.ll
llvm/test/CodeGen/AArch64/machine-outliner-patchable.mir [new file with mode: 0644]