[all-commits] [llvm/llvm-project] 6d9f31: X86: Stop overriding getRegClass

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue Nov 4 13:40:23 PST 2025


  Branch: refs/heads/users/arsenm/x86/stop-overriding-getRegClass
  Home:   https://github.com/llvm/llvm-project
  Commit: 6d9f319f86624bc9b2de2d7369ba505cf70ea8ad
      https://github.com/llvm/llvm-project/commit/6d9f319f86624bc9b2de2d7369ba505cf70ea8ad
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-11-04 (Tue, 04 Nov 2025)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/test/CodeGen/X86/apx/no-rex2-general.ll
    M llvm/test/CodeGen/X86/apx/no-rex2-pseudo-amx.ll
    M llvm/test/CodeGen/X86/apx/no-rex2-pseudo-x87.ll
    M llvm/test/CodeGen/X86/apx/no-rex2-special.ll

  Log Message:
  -----------
  X86: Stop overriding getRegClass

This function should not be virtual; making this virtual was
an AMDGPU hack that should be removed not spread to other
backends.

This does not need to be overridden to reserve registers. The
register reservation mechanism is orthogonal to to the register
class constraints of the instruction, this should be reporting
the underlying instruction constraint. The registers are separately
reserved, so they will be removed from the allocation order anyway.
If the actual class needs to change based on the subtarget,
it should probably generalize the LookupPtrRegClass mechanism.

This was added by #70958. The new tests there for the class are
probably not useful anymore. These instead should compile to the
end and try to stress the allocation behavior.



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