[AMDGPU] Instruction Type Pipeline
authorjeff <jrbyrnes1989@gmail.com>
Mon, 16 May 2022 18:13:20 +0000 (11:13 -0700)
committerjef <jeffrey.byrnes@amd.com>
Tue, 31 May 2022 17:48:52 +0000 (17:48 +0000)
commit2e61dfb1249e80a36a611c889f3ef86fa4cf3c85
tree171e739f3ebc74049cbb92f4e155c06abaab37ae
parenta0ef52cc102504c4282dec7001664ee020396681
[AMDGPU] Instruction Type Pipeline

This patch implements a DAG mutation which adds edges between different groups of instructions. The purpose is to try to generate code that conforms to a pipeline (groupA instructions occur before groupB, groupB -> groupC, and so on). Currently the pipeline order is hardcoded as VMEM->DSRead->MFMA->DSWrite, but the patch was designed to be easily extensible. Alias analysis is problematic for pipelining as memory instructions will usually not be able to be reordered w.r.t one another.

Differential Revision: https://reviews.llvm.org/D125997
llvm/lib/Target/AMDGPU/AMDGPUMFMAClustering.cpp [deleted file]
llvm/lib/Target/AMDGPU/AMDGPUMFMAIGroupLP.cpp [new file with mode: 0644]
llvm/lib/Target/AMDGPU/AMDGPUMFMAIGroupLP.h [moved from llvm/lib/Target/AMDGPU/AMDGPUMFMAClustering.h with 56% similarity]
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
llvm/lib/Target/AMDGPU/CMakeLists.txt
llvm/test/CodeGen/AMDGPU/mfma-cluster-edges.mir [deleted file]
llvm/test/CodeGen/AMDGPU/mfma-cluster.mir [deleted file]
llvm/test/CodeGen/AMDGPU/mfma-igrouplp-dag-mutation.mir [new file with mode: 0644]