[all-commits] [llvm/llvm-project] 2a53b6: RegisterCoalescer: Fix verifier error on redef of ...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Mon Jul 24 09:18:48 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2a53b6c06b2c02c5b06c6138523a83c507adf00f
      https://github.com/llvm/llvm-project/commit/2a53b6c06b2c02c5b06c6138523a83c507adf00f
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-07-24 (Mon, 24 Jul 2023)

  Changed paths:
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    A llvm/test/CodeGen/AMDGPU/blender-coalescer-verifier-error-empty-subrange.mir
    A llvm/test/CodeGen/AMDGPU/blender-no-live-segment-at-def-implicit-def.ll
    A llvm/test/CodeGen/AMDGPU/liveout-implicit-def-subreg-redef-blender-verifier-error.mir

  Log Message:
  -----------
  RegisterCoalescer: Fix verifier error on redef of subregister for live out implicit_defs

A live out implicit_def wasn't deleted, but the subranges weren't
correctly updated. The main range was correct but the def
corresponding to the initial main range def instruction was missing
from the lanes redefined in another block.

The written lanes are not quite the same as the valid lanes in the
case of an implicit_def.

Fixes verifier error in blender. There is an additional verifier in
some of the testcase variants where an empty subrange remains.


  Commit: 0d797b71eb1012e76101e237b3d93aea6a5ba2be
      https://github.com/llvm/llvm-project/commit/0d797b71eb1012e76101e237b3d93aea6a5ba2be
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-07-24 (Mon, 24 Jul 2023)

  Changed paths:
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    M llvm/test/CodeGen/AMDGPU/blender-coalescer-verifier-error-empty-subrange.mir

  Log Message:
  -----------
  RegisterCoaleser: Fix empty subrange verifier error

In this example an implicit def had live-out undef subrange
defs. After coalescing with the def from a previous block, the
undef-defed lanes are no longer live out of the block in the new
interval. An empty subrange was tenatively created for these lanes,
but it must be deleted.


Compare: https://github.com/llvm/llvm-project/compare/8698262a4365...0d797b71eb10


More information about the All-commits mailing list