[PATCH] D78981: [AArch64][WIP] Use various tricks to improve MOVi64imm lowering.
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 27 19:24:56 PDT 2020
efriedma created this revision.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.
Currently, the lowering only uses a single 64-bit MOVN/MOVZ/ORR followed by some number of MOVK instructions. But there are other possibilities: we can also use 32-bit instructions, or other logical operations. This patch adds a bunch of new two-instruction patterns.
I'm not sure how far it's worth going in this direction; these patterns do show up in real code, but they're rare. And thoroughly testing all the various paths is tricky. It's fun to write them, though. :)
I've had this sitting around on my hard drive unfinished for a while; if someone else wants to pick this up, feel free.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D78981
Files:
llvm/lib/Target/AArch64/AArch64ExpandImm.cpp
llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
llvm/test/CodeGen/AArch64/arm64-movi.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78981.260528.patch
Type: text/x-patch
Size: 31945 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200428/65f06d63/attachment.bin>
More information about the llvm-commits
mailing list