[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