[PATCH] D82451: [AMDGPU] Fix DPP Combiner:

Valery Pykhtin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 24 04:49:54 PDT 2020


vpykhtin created this revision.
vpykhtin added reviewers: arsenm, rampitec, foad.
Herald added subscribers: llvm-commits, kerbowa, kbarton, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, wdng, jvesely, nemanjai, kzhuravl.
Herald added a project: LLVM.

1. skip multiple per instruction DPP register usage.
2. don't combine when DPP register is used as part of superreg/supersubreg.

I had to refactor the code to fix the first issue, so that the check for
multiple uses of DPP register can be done for all uses. In the process
I discovered that the combiner can try to combine DPP registers that
are part of superreg (REG_SEQUENCE) and aren't used as independent lanes.

execMayBeModifiedBeforeAnyUse is now called once for all uses. Number of
uses is constrained by the caller.

I removed code patching REG_SEQUENCE but instead stopped deleting original
DPP mov instruction, it will be deleted in the DCE.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D82451

Files:
  llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
  llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  llvm/lib/Target/AMDGPU/SIInstrInfo.h
  llvm/test/CodeGen/AMDGPU/dpp_combine.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82451.272977.patch
Type: text/x-patch
Size: 15328 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200624/dcb55eea/attachment.bin>


More information about the llvm-commits mailing list