Page MenuHomePhabricator

[AMDGPU] Fix wide spills
ClosedPublic

Authored by piotr on Dec 2 2022, 7:46 AM.

Details

Summary

Update spill code to account for new vector types with
bit widths: 288, 320, 352, 384.

Related to D138205.

Diff Detail

Unit TestsFailed

TimeTest
6,060 msx64 debian > LLVM.CodeGen/AMDGPU::spill288.mir
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -march=amdgcn -mcpu=tahiti -run-pass=regallocfast -o - /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill288.mir | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=SPILLED /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill288.mir
6,020 msx64 debian > LLVM.CodeGen/AMDGPU::spill320.mir
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -march=amdgcn -mcpu=tahiti -run-pass=regallocfast -o - /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill320.mir | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=SPILLED /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill320.mir
6,030 msx64 debian > LLVM.CodeGen/AMDGPU::spill352.mir
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -march=amdgcn -mcpu=tahiti -run-pass=regallocfast -o - /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill352.mir | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=SPILLED /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill352.mir
5,910 msx64 debian > LLVM.CodeGen/AMDGPU::spill384.mir
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -march=amdgcn -mcpu=tahiti -run-pass=regallocfast -o - /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill384.mir | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=SPILLED /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/spill384.mir
60,050 msx64 debian > MLIR.Examples/standalone::test.toy
Script: -- : 'RUN: at line 1'; /usr/bin/cmake /var/lib/buildkite-agent/builds/llvm-project/mlir/examples/standalone -G "Ninja" -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang -DLLVM_ENABLE_LIBCXX=OFF -DMLIR_DIR=/var/lib/buildkite-agent/builds/llvm-project/build/lib/cmake/mlir -DLLVM_USE_LINKER=lld -DPython3_EXECUTABLE="/usr/bin/python3.9"

Event Timeline

piotr created this revision.Dec 2 2022, 7:46 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 2 2022, 7:46 AM
piotr requested review of this revision.Dec 2 2022, 7:46 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 2 2022, 7:47 AM
arsenm requested changes to this revision.Dec 2 2022, 8:05 AM

Should also test AGPR

llvm/test/CodeGen/AMDGPU/spill288.mir
2–3

Should test with gfx90a to cover the AGPRs

125

Can you also test AGPR

This revision now requires changes to proceed.Dec 2 2022, 8:05 AM
piotr updated this revision to Diff 480083.Dec 5 2022, 6:09 AM

Thanks - the extra set of tests has uncovered another issue in code.

piotr marked 2 inline comments as done.Dec 5 2022, 6:10 AM
arsenm accepted this revision.Dec 5 2022, 6:17 AM
This revision is now accepted and ready to land.Dec 5 2022, 6:17 AM
piotr updated this revision to Diff 480398.Dec 6 2022, 2:14 AM

Updating patch to address two more issues detected by running tests in debug mode:

  • wrong opcodes used in getVGPRSpillSaveOpcode in the original patch
  • tests using insufficient spill slot size in my patch
arsenm accepted this revision.Dec 6 2022, 8:52 AM
This revision was landed with ongoing or failed builds.Dec 7 2022, 1:24 AM
This revision was automatically updated to reflect the committed changes.