[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