[all-commits] [llvm/llvm-project] c89414: RegAllocFast: Mark unspilled implicit_def physreg ...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Thu Sep 24 13:23:24 PDT 2026


  Branch: refs/heads/users/arsenm/regalloc-fast/implicit-def-dead-def
  Home:   https://github.com/llvm/llvm-project
  Commit: c894143cb09bd2105f13b99c81c337dd0612f0ea
      https://github.com/llvm/llvm-project/commit/c894143cb09bd2105f13b99c81c337dd0612f0ea
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-09-24 (Thu, 24 Sep 2026)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocFast.cpp
    A llvm/test/CodeGen/X86/regallocfast-implicit-def-live-out.mir

  Log Message:
  -----------
  RegAllocFast: Mark unspilled implicit_def physreg defs dead

When a virtual register defined by an IMPLICIT_DEF is live out of the
block, or reloaded below, defineVirtReg deliberately skips the spill.
If there is also no use of the value in the block, the resulting physreg
def has no reader at all, but was left without a dead flag.

This avoids some unnecessary churn between regalloc runs on AMDGPU. Since
RA runs multiple times, missed dead flags in the first RA run get re-inferred
by the later runs which this avoids.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list