[PATCH] D67767: [AMDGPU] Add llvm.amdgcn.wqm.demote intrinsic

Carl Ritson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 10 19:15:07 PST 2020


critson updated this revision to Diff 304383.
critson added a comment.
Herald added a subscriber: jfb.

Heavily rewritten:

- Use/reuse single virtual register for live mask. This removes need for PHIs and live mask register tracking. Assumes WQM is running non-SSA. (Supporting non-SSA and SSA operation would bloat code.)
- Live mask tracks all kills and demotes.
- Live mask manipulations terminate shader if all lanes are killed, even in non-uniform control flow.
- Move all kill lowering to WQM pass, this simplifies later passes and avoids duplication when updating live mask. Removes the need for "clean up" operations.
- WQM pass always modifies shader if it has any kills or demotes, even if there is no WQM.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67767/new/

https://reviews.llvm.org/D67767

Files:
  llvm/include/llvm/IR/IntrinsicsAMDGPU.td
  llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
  llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
  llvm/lib/Target/AMDGPU/SIInsertSkips.cpp
  llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  llvm/lib/Target/AMDGPU/SIInstructions.td
  llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
  llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
  llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.demote.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.live.mask.mir
  llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.wqm.demote.mir
  llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
  llvm/test/CodeGen/AMDGPU/early-term.mir
  llvm/test/CodeGen/AMDGPU/insert-skips-kill-uncond.mir
  llvm/test/CodeGen/AMDGPU/llvm.amdgcn.kill.ll
  llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.demote.ll
  llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.vote.ll
  llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
  llvm/test/CodeGen/AMDGPU/transform-block-with-return-to-epilog.ll
  llvm/test/CodeGen/AMDGPU/vcmpx-exec-war-hazard.mir
  llvm/test/CodeGen/AMDGPU/vcmpx-permlane-hazard.mir
  llvm/test/CodeGen/AMDGPU/wave32.ll
  llvm/test/CodeGen/AMDGPU/wqm.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67767.304383.patch
Type: text/x-patch
Size: 201802 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201111/be495a02/attachment-0001.bin>


More information about the llvm-commits mailing list