[PATCH] D120104: [AArch64] Enable fuse-literals feature by default
Wilco Dijkstra via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 21 04:33:55 PST 2022
Wilco1 added a comment.
In D120104#3334954 <https://reviews.llvm.org/D120104#3334954>, @alexander-shaposhnikov wrote:
> Regarding mov+movk and movk+movk pairs - if I'm not mistaken GCC "fuses" them by default (https://github.com/gcc-mirror/gcc/blob/master/gcc/config/aarch64/aarch64-fusion-pairs.def), but to limit the scope of the change I'm open to splitting this feature and starting with one pair (e.g. ADRP+ADD) (another important example is ADRP + LDR, but it's not handled by this diff anyway). What do you think ?
Note those fusions are not enabled by default in GCC, each core only enables some of those. Generally fusing MOV+MOVK is the least useful one. Enabling AES fusion and CMP+Branch for all cores would be far better. For linker relaxation you need ADRP+LDR for GOT accesses and ADRP+ADD. In both cases the ADRP should be single use, otherwise relaxation isn't possible.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120104/new/
https://reviews.llvm.org/D120104
More information about the llvm-commits
mailing list