[llvm] [AArch64] Support instruction fusion for MCA (PR #215789)

Tomer Shafir via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 05:04:01 PDT 2026


https://github.com/tomershafir commented:

Currently, MCA ignores the CPU frontend and the memory subsystem, thus I think it is mainly useful for analyzing backend-bound loops. CPUs generally fuse micro ops earlier, before they reach the backend, e.g. before they reach reservation stations in case of OOO. Thus I think one question is wether we want fusion support in MCA at all. I think that in this specific case, because it is very close to the backend and can significantly affect the execution profile - it would be useful.

If we do decide to add such support, I think we should carefully think about the architecture. I think we want first-class support in MCA which is target agnostic, rather than a custom behavior, and share a fusion model with LLVM like we do with the scheduling model. Concretely I think we may wanna add it into dispatch and utilize MacroFusion TableGen infrastructure, though its adoption is quite limited to RISCV at the moment.

https://github.com/llvm/llvm-project/pull/215789


More information about the llvm-commits mailing list