Page MenuHomePhabricator

AMDGPU/GlobalISel: Do not use terminator copy before waterfall loops

Authored by arsenm on Jan 11 2022, 1:37 PM.



Stop using the _term variants of the mov to save the initial exec
value before the waterfall loop. This cannot be glued to the bottom of
the block because we may need to spill the result register. Just use a
regular mov, like the loops produced on the DAG path. Fixes some
verification errors with regalloc fast.

Diff Detail

Unit TestsFailed

600 msx64 debian > LLVM.CodeGen/AMDGPU::indirect-call.ll
Script: -- : 'RUN: at line 2'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -mtriple=amdgcn-amd-amdhsa --amdhsa-code-object-version=2 -verify-machineinstrs < /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/indirect-call.ll | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=GCN /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AMDGPU/indirect-call.ll

Event Timeline

arsenm created this revision.Jan 11 2022, 1:37 PM
arsenm requested review of this revision.Jan 11 2022, 1:37 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 11 2022, 1:37 PM
Herald added a subscriber: wdng. · View Herald Transcript
Flakebi accepted this revision.Jan 12 2022, 2:01 AM
This revision is now accepted and ready to land.Jan 12 2022, 2:01 AM