[PATCH] D47511: [AMDGPU] Construct memory clauses before RA

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 29 18:57:36 PDT 2018


rampitec created this revision.
rampitec added reviewers: vpykhtin, arsenm.
Herald added subscribers: mgrang, javed.absar, t-tye, tpr, dstuttard, yaxunl, mgorny, nhaehnle, wdng, kzhuravl.

Memory clauses are formed into bundles in presence of xnack.
Their source operands are marked as early-clobber.
This allows to allocate distinct source and destination registers within a clause and prevent breaking the clause with s_nop in the hazard recognizer.
Clauses are undone before post-RA scheduler to allow some rescheduling, which will not break the clause since artificial edges are created in the dag to keep memory operations together. Yet this allows a better ILP in some cases.


https://reviews.llvm.org/D47511

Files:
  lib/Target/AMDGPU/AMDGPU.h
  lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  lib/Target/AMDGPU/CMakeLists.txt
  lib/Target/AMDGPU/GCNIterativeScheduler.cpp
  lib/Target/AMDGPU/GCNSchedStrategy.cpp
  lib/Target/AMDGPU/GCNSchedStrategy.h
  lib/Target/AMDGPU/SIFormMemoryClauses.cpp
  lib/Target/AMDGPU/SIISelLowering.cpp
  lib/Target/AMDGPU/SIInstrInfo.cpp
  lib/Target/AMDGPU/SIInstructions.td
  lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
  lib/Target/AMDGPU/SIMachineFunctionInfo.h
  test/CodeGen/AMDGPU/memory_clause.ll
  test/CodeGen/AMDGPU/memory_clause.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47511.149020.patch
Type: text/x-patch
Size: 49795 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180530/3a20c749/attachment.bin>


More information about the llvm-commits mailing list