[all-commits] [llvm/llvm-project] f08211: [AArch64] Remove assembler-only register classes (...

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Thu Jul 30 00:44:16 PDT 2026


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

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/test/CodeGen/AArch64/fmlal-loreg.ll
    M llvm/test/CodeGen/AArch64/stp-opt-with-renaming.mir
    M llvm/test/TableGen/aarch64-register-info-stats.td

  Log Message:
  -----------
  [AArch64] Remove assembler-only register classes (#211527)

ZPRMul2, ZPRMul4 and PPRMul2 register classes are used solely by the asm
parser to validate other register classes (ZPR2Mul2, ZPR4Mul4,
PPR2Mul2). Since they're real register classes TableGen synthesizes
numerous intersection classes and pressure sets from them.

Removing them and validating the constraint directly in the assembly
parser reduces:

- generated register classes: 521 -> 403 (~22%)
- generated pressure sets: 188 -> 60 (68%)
- generated register-info size: 11.9 MB -> 9.1 MB (23%)

Also improves CTMark geomean -0.23% on stage1-aarch64-O3.

https://llvm-compile-time-tracker.com/compare.php?from=a90dbb43cd67856f681feba82d51a0d5fbcae3c2&to=5565d4907cdf960cc142a7507f16e551f51919b0&stat=instructions%3Au

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