[PATCH] D97054: [MachineVerifier] Confirm that both ends of a tied def/use are live together

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 08:13:18 PST 2021


reames added a comment.

Realized I'd only run the X86 tests.  Went and ran all targets, and hit some failures on AMDGPU and SystemZ.

Failed Tests (8):

  LLVM :: CodeGen/AMDGPU/GlobalISel/insertelement.ll
  LLVM :: CodeGen/AMDGPU/indirect-addressing-si.ll
  LLVM :: CodeGen/AMDGPU/insert_vector_dynelt.ll
  LLVM :: CodeGen/AMDGPU/llvm.amdgcn.image.dim.ll
  LLVM :: CodeGen/AMDGPU/r600.global_atomics.ll
  LLVM :: CodeGen/SystemZ/asm-18.ll
  LLVM :: CodeGen/SystemZ/fold-memory-op-impl.ll
  LLVM :: CodeGen/SystemZ/int-cmp-44.ll

I think I'm going to need some input from someone knowledgeable of these backends.  As an example, the SystemZ/int-cmp-44.ll failure looks like this:

  - Bad machine code: tied def w/o use in same live range ***
- function:    f19
- basic block: %bb.0 entry (0x560f21608b18) [0B;112B)
- instruction: 48B	%0:gr64bit = RISBG $noreg(tied-def 0), %2:gr64bit, 0, 190, 0, implicit-def dead $cc
- liverange:   [48r,160r:0)  0 at 48r
- v. register: %0
- ValNo:       0 (def 48r)

That looks like an invalid use of tied defs to me, but is there something I'm missing here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97054/new/

https://reviews.llvm.org/D97054



More information about the llvm-commits mailing list