[clang] [llvm] [RISCV] Inline Assembly Support for GPR Pairs ('Pr') (PR #112983)

Sam Elliott via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 12 09:58:23 PST 2024


lenary wrote:

> > Gentle Ping. I'm looking for answers to two questions:
> > 
> > * [Should I] prepare a fixup commit that [uses `MVT::Untyped`] (and removes the `riscv_*_pair` MVTs), if we think that's a better target-independent approach?
> 
> I guess so. I didn't know about the SystemZ change before. 

I'll try it, and push a separate commit, so we can see what else is needed.

>
> I do find it a little weird having 2 register classes with the same spill size and registers. I believe the tablegen generated code considers them subclasses of each other. X86 has some register classes like this too so I guess its not a big deal.

I'm not very happy about the duplication either, but it's because of a limitation where fairly early on, selectiondag uses the first legal type in a class, rather than the one you might want.

> > * Any advice on whether I should be digging deeply into changing SelectionDAGBuilder.cpp (affecting all targets) so we don't need the `getNumRegisters` override? The options here IMO are a) live with the override, b) change SelectionDAGBuilder now, c) change SelectionDAGBuilder in a follow-up and remove the override once it is not needed.
> 
> I think we can live with the override since SystemZ is doing it too.



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


More information about the cfe-commits mailing list