[all-commits] [llvm/llvm-project] 3757c5: [AArch64] Mark FIXED_REGS register class as non-al...

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Wed Jul 29 04:06:28 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3757c5d331d5d4781a7325ea890b2754c6dad5bb
      https://github.com/llvm/llvm-project/commit/3757c5d331d5d4781a7325ea890b2754c6dad5bb
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2026-07-29 (Wed, 29 Jul 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
    M llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll
    M llvm/test/CodeGen/AArch64/clmul-fixed.ll
    M llvm/test/CodeGen/AArch64/clmul.ll
    A llvm/test/CodeGen/AArch64/misched-reg-pressure-limits.mir
    M llvm/test/CodeGen/AArch64/neon-dotreduce.ll
    M llvm/test/CodeGen/AArch64/neon-extadd.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll
    M llvm/test/TableGen/aarch64-register-info-stats.td

  Log Message:
  -----------
  [AArch64] Mark FIXED_REGS register class as non-allocatable (#212250)

FIXED_REGS is not used for register allocation, but since it overlaps
the GPR classes via FP and SP, TableGen merges VG and FFR into the GPR
pressure set, giving it a static limit of 35.

The underlying GPR32all class has 33 registers: W0-W30, WZR, and WSP.
WZR and WSP are always reserved, leaving up to 31 allocatable registers
depending on whether W29 (FP) and W30 (LR) are reserved.

Marking FIXED_REGS non-allocatable removes VG and FFR from the pressure
set, reducing its static limit from 35 to 33 and its dynamic limit from
33 to 31. The corrected limit changes scheduling decisions made by the
register-pressure heuristics, which explains the test churn.

Assisted-by: codex



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