[PATCH] D102474: AArch64: support atomic load/store in GISel

Tim Northover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 14 02:02:56 PDT 2021


t.p.northover created this revision.
t.p.northover added reviewers: paquette, aemerson.
Herald added subscribers: danielkiss, jfb, hiraditya, kristof.beyls, mcrosier.
t.p.northover requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Because of how GISel works, we can end up with atomic `G_[SZ]EXTLOAD` instructions, which have no patterns because they don't exist SDAG side.

In theory monotonic and unordered variants of these could use the normal instructions for better addressing modes, but I didn't manage to convince the GISel to select them (the mapping from SDAG to GISel nodes is wonky enough around loads and stores without adding atomicity). So this patch mostly tells GISel to lower the extending loads to plain ones.


https://reviews.llvm.org/D102474

Files:
  llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
  llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
  llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
  llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102474.345375.patch
Type: text/x-patch
Size: 7346 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210514/0ad1d417/attachment-0001.bin>


More information about the llvm-commits mailing list