<div dir="ltr"><div dir="ltr">On Mon, Apr 6, 2020 at 3:12 AM Konstantin Schwarz via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">For lowering the target specific constraints, we'll have to add a new <br>
API that creates (G)MIR during IR translation.<br>
Personally I would prefer to have an InlineAsmLowering class, similar to <br>
the CallLowering class, which implements the generic algorithm and from <br>
which targets can inherit.<br>
Most of the implementation in [0] could then be moved to that class.<br>
<br>
However, this would add yet another class that needs to be wired up in <br>
the subtarget class. Is this something we would like to avoid?<br>
Is there a better place where target specific GlobalISel hooks should be <br>
added?<br></blockquote><div><br></div><div>+10 for a new inline asm lowering class thatĀ targets extend. The FooISelLowering.cpp files are super monolithic, and X86ISelLowering.cpp can take more than a minute to compile. The *CallLowering classes were a much better design, and I envy them as someone who often works with X86 SDISelĀ call lowering.</div></div></div>