<div dir="ltr"><div>Hi all,</div><div><br></div><div>I searched the mailing list but I couldn't find anything relevant so I thought I'd ask.</div><div><br></div><div>I'm adding a few instructions of an ISA that is very regular and I find myself writing repeatedly multidefs that are only different in the classes used inside the multidef. However, to the best of my knowledge, it is not possible to parameterise multidefs using classes, only values.<br></div><div><br></div><div>So I have something now that looks like this.<br></div><div><br></div><div style="margin-left:40px">multidef foo<things> {</div><div style="margin-left:40px">  def A : ClassFoo<values_from_things>;</div><div style="margin-left:40px">  def : ClassFooAlias<more_values_from_things>;</div><div style="margin-left:40px">}</div><div style="margin-left:40px"><br></div><div style="margin-left:40px"><div>multidef bar<things> {</div><div>  def A : ClassBar<values_from_things>;</div><div>  def : ClassBarAlias<more_values_from_things>;</div><div>}</div><div><br></div><div>multidef moo<things> {</div><div>  defm FOO : foo<things>;</div><div>  defm BAR : bar<things><br>}</div><div><br></div><div>defm QUUX : moo<things>;<br></div></div><div><br></div><div>And I would like to compact all the above as<br></div><div><br></div><div style="margin-left:40px">multidef common<class C, class CAlias> {</div><div style="margin-left:40px">   def A : C<values_from_things>;</div><div style="margin-left:40px">   def  : CAlias<more_values_from_things>;</div><div style="margin-left:40px">}</div><div style="margin-left:40px"><br></div><div style="margin-left:40px">multidef moo {</div><div style="margin-left:40px">   def FOO : common<ClassFoo, ClassFooAlias>;</div><div style="margin-left:40px">   def BAR : common<ClassBar, ClassBarAlias>;</div><div style="margin-left:40px">}</div><div style="margin-left:40px"><br></div><div style="margin-left:40px">defm QUUX : moo<things>;</div><div><br></div><div>Perhaps I'm using tablegen suboptimally and there is a better approach or a way to simulate a similar behaviour.<br></div><div><br></div><div>If not, has anyone in the past considered such generalisation? Maybe we'd be hitting some limits of tablegen here?<br></div><div><br></div><div>Thanks a lot,<br></div><div><br>-- <br><div dir="ltr" class="m_7773153622142365262m_7618566633114257425gmail_signature" data-smartmail="gmail_signature">Roger Ferrer Ibáñez<br></div></div></div>