[PATCH] D106291: [AMDGPU] Improve killed check for vgpr optimization

Sebastian Neubauer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 19 11:23:32 PDT 2021


sebastian-ne created this revision.
sebastian-ne added reviewers: ruiling, arsenm, foad.
Herald added subscribers: kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl, MatzeB.
sebastian-ne requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.

The killed flag is not always set. E.g. when a variable is used in a
loop, it is never marked as killed, although it is unused in following
basic blocks.

If the killed flag is not set, check if the register is live in the
endif block. If not, consider it killed in the then and else blocks.

The vgpr-liverange tests have two new tests with loops
(pre-committed, so the diff is visible).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D106291

Files:
  llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
  llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
  llvm/test/CodeGen/AMDGPU/bypass-div.ll
  llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll
  llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106291.359851.patch
Type: text/x-patch
Size: 23004 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210719/9c85a62d/attachment.bin>


More information about the llvm-commits mailing list