[all-commits] [llvm/llvm-project] 18fc5a: [TableGen][RISCV] Generate pre/post-RA statistics ...

Pengcheng Wang via All-commits all-commits at lists.llvm.org
Thu Jul 16 05:12:38 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 18fc5a8adbe5dba7dc281bacdb149e95dc7dc1be
      https://github.com/llvm/llvm-project/commit/18fc5a8adbe5dba7dc281bacdb149e95dc7dc1be
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2026-07-16 (Thu, 16 Jul 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/test/TableGen/MacroFusion.td
    M llvm/utils/TableGen/MacroFusionPredicatorEmitter.cpp

  Log Message:
  -----------
  [TableGen][RISCV] Generate pre/post-RA statistics for macro fusions (#209394)

Teach `MacroFusionPredicatorEmitter` to emit `Statistic` counters
recording how often each macro fusion is matched, and wire them
up for RISC-V.

This is based on the idea in #186499, generalized so counters are
generated automatically for any target using the emitter.

Because both the pre-RA and post-RA schedulers run MacroFusion,
a single counter would conflate the two. Counters are split into
pre-RA/post-RA variants, distinguished by the `NoVRegs` property,
addressing the double-counting concern from #186499:

```cpp
  STATISTIC(NumTuneLDADDFusionPreRA,  "Times TuneLDADDFusion Triggered (pre-ra)");
  STATISTIC(NumTuneLDADDFusionPostRA, "Times TuneLDADDFusion Triggered (post-ra)");
  ...
    if (SecondMI.getMF()->getProperties().hasNoVRegs())
      ++NumTuneLDADDFusionPostRA;
    else
      ++NumTuneLDADDFusionPreRA;
```

Besides, RISC-V counters use the `riscv-macro-fusion` debug type.

Co-authored-by: Sam Elliott <aelliott at qti.qualcomm.com>
Assisted-by: TRAE CLI (DeepSeek V4 Pro)



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