Supporting macro-fusion on X86

I’m trying to test llvm-mca macro-fusion on small baby tests for Icelake but looks like it doesn’t support macro-fusion on X86, is this the case?

That’s correct. llvm-mca still doesn’t support macro-fusion.

This is a known limitation, and there is an open ticket for it: [llvm-mca][x86] Teach how to identify pairs of adjacent operations that can be macro fused. · Issue #36018 · llvm/llvm-project · GitHub.

Note:
Adding knowledge about macro-fusion in llvm-mca would require introducing new tablegen predicates, as well as partially changing how the dispatch logic works in the llvm-mca pipeline.

Unfortunately, as of today, nobody has ever sent a patch for it. So llvm-mca still doesn’t support macro-fusion.

1 Like