[llvm] [RISCV] Macro-fusion support for veyron-v1 CPU. (PR #70012)

Mikhail Gudim via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 24 12:54:55 PDT 2023


mgudim wrote:

> As far as I know, there may be up to 30+ instruction pairs that can be fused for some macroarchitecture (for example, , [Xiangshan - Decode Unit, Chinese](https://xiangshan-doc.readthedocs.io/zh_CN/latest/frontend/decode/)). If we define subtarget features for all of them, that would be a disaster I think. So, I'm working on a TableGen backend that generates predicators for macro fusion (with some refactors of `ScheduleModel`) and I will raise a RFC and PR later. This is still WIP and discussions are welcome!
> 
> Anyway, this PR looks great to me, and I'm just sharing some information here.
> 
> (For current implementation, I don't know if we can refer to PPC's, in which there is a script-generated header.)

Thanks for taking a look. I agree that we shouldn't have too many features defined. I'm happy to rework this in the future if we adopt a new approach.

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


More information about the llvm-commits mailing list