[all-commits] [llvm/llvm-project] 058469: [BOLT][AArch64] Support FEAT_CMPBR branch instruct...
Alexandros Lamprineas via All-commits
all-commits at lists.llvm.org
Thu Feb 12 07:49:23 PST 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0584699c119ae0d71177d6c3c414c54bb00ddf96
https://github.com/llvm/llvm-project/commit/0584699c119ae0d71177d6c3c414c54bb00ddf96
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2026-02-12 (Thu, 12 Feb 2026)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
A bolt/test/AArch64/compare-and-branch-inversion.S
A bolt/test/AArch64/compare-and-branch-reorder-blocks.S
A bolt/test/AArch64/compare-and-branch-split-functions.S
A bolt/test/AArch64/compare-and-branch-unsupported.S
Log Message:
-----------
[BOLT][AArch64] Support FEAT_CMPBR branch instructions. (#174972)
The Armv9.6-A compare-and-branch instructions use a short range 9-bit
immediate value. They do not have a corresponding relocation type in the
ABI. For now we only support them in compact code model, with
diagnostics added in the LongJmp pass to ensure this condition. Some
interesting edge cases we cover:
- function splitting works when target is within or beyond the 1KB range
of those instructions,
- but doesn't work beyond the 128MB limit of the compact code model
- branch inversion works with block reordering so long as the immediate
value adjustments remain in bounds
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list