<p dir="ltr">Fair enough. I agree with Rafael's other message in this thread. :)</p>
<div class="gmail_quote">On Jan 31, 2014 10:58 AM, "Daniel Sanders" <<a href="mailto:Daniel.Sanders@imgtec.com">Daniel.Sanders@imgtec.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I believe my suggestion reduces this particular use and moves most targets further towards the MC layer.<br>
<br>
At the moment, EmitInlineAsm is can be written in pseudo code as:<br>
   if raw text support is available:<br>
      use raw text support<br>
   elif the MC layer is available:<br>
      use the MC layer<br>
   else<br>
      raise error<br>
<br>
My suggestion swaps those first two conditions so that the pseudo code becomes:<br>
   if the MC layer is available and functional:<br>
      use the MC layer<br>
   elif raw text support is available:<br>
      use raw text support<br>
   else:<br>
      raise error<br>
<br>
My main query is about whether swapping the conditions makes sense regardless of the decision on the original request. That said, swapping the conditions may reduce your concerns about exposing EmitInlineAsm and using it for the stubs since the MC path becomes the primary path through the function.<br>

________________________________________<br>
From: Eric Christopher [<a href="mailto:echristo@gmail.com">echristo@gmail.com</a>]<br>
Sent: 31 January 2014 17:19<br>
To: Daniel Sanders<br>
Cc: Rafael Espíndola; Reed Kotler; <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a><br>
Subject: Re: [LLVMdev] making emitInlineAsm protected<br>
<br>
Mostly raw text support should only be used for things like comments<br>
that don't affect the overall output in the object file either way. I<br>
know that Rafael and I want to remove any other use.<br>
<br>
-eric<br>
<br>
On Fri, Jan 31, 2014 at 2:26 AM, Daniel Sanders<br>
<<a href="mailto:Daniel.Sanders@imgtec.com">Daniel.Sanders@imgtec.com</a>> wrote:<br>
> It may be moot because Reed is currently rewriting the patch to avoid using EmitInlineAsm and EmitRawText but I wanted to question something here.<br>
><br>
> I'm thinking that hasRawTextSupport() shouldn't be the condition used inside EmitInlineAsm. I think it would be more correct to have a useRawTextSupport() predicate that can return hasRawTextSupport() for (sub)targets that haven't implemented their MC layer, and false for those that have. What do you think?<br>

><br>
>> -----Original Message-----<br>
>> From: <a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a>]<br>
>> On Behalf Of Rafael Espíndola<br>
>> Sent: 29 January 2014 20:14<br>
>> To: Reed Kotler<br>
>> Cc: <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a><br>
>> Subject: Re: [LLVMdev] making emitInlineAsm protected<br>
>><br>
>> On 28 January 2014 19:56, reed kotler <<a href="mailto:rkotler@mips.com">rkotler@mips.com</a>> wrote:<br>
>> > I would like to make the following member of AsmPrinter be protected<br>
>> ><br>
>> ><br>
>> > void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = 0,<br>
>> >                        InlineAsm::AsmDialect AsmDialect =<br>
>> >                            InlineAsm::AD_ATT) const;<br>
>> ><br>
>> > I have some stubs that I want to emit in MipsAsmParser .<br>
>><br>
>> You mean Printer? There is no such a thing as inline asm in a .s file.<br>
>><br>
>> > Are there any objections to doing this?<br>
>><br>
>> Probably. EmitInilneAsm is the only case I know that has a reasonable use of<br>
>> hasRawTextSupport in order for it to work on targets without an asm parser.<br>
>> Exposing it exposes a way for targets avoid the MC layer.<br>
>><br>
>> Cheers,<br>
>> Rafael<br>
>> _______________________________________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br>
</blockquote></div>