[LLVMdev] making emitInlineAsm protected

Daniel Sanders Daniel.Sanders at imgtec.com
Fri Jan 31 10:58:03 PST 2014


I believe my suggestion reduces this particular use and moves most targets further towards the MC layer.

At the moment, EmitInlineAsm is can be written in pseudo code as:
   if raw text support is available:
      use raw text support
   elif the MC layer is available:
      use the MC layer
   else
      raise error

My suggestion swaps those first two conditions so that the pseudo code becomes:
   if the MC layer is available and functional:
      use the MC layer
   elif raw text support is available:
      use raw text support
   else:
      raise error

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.
________________________________________
From: Eric Christopher [echristo at gmail.com]
Sent: 31 January 2014 17:19
To: Daniel Sanders
Cc: Rafael EspĂ­ndola; Reed Kotler; LLVMdev at cs.uiuc.edu
Subject: Re: [LLVMdev] making emitInlineAsm protected

Mostly raw text support should only be used for things like comments
that don't affect the overall output in the object file either way. I
know that Rafael and I want to remove any other use.

-eric

On Fri, Jan 31, 2014 at 2:26 AM, Daniel Sanders
<Daniel.Sanders at imgtec.com> wrote:
> It may be moot because Reed is currently rewriting the patch to avoid using EmitInlineAsm and EmitRawText but I wanted to question something here.
>
> 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?
>
>> -----Original Message-----
>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
>> On Behalf Of Rafael EspĂ­ndola
>> Sent: 29 January 2014 20:14
>> To: Reed Kotler
>> Cc: LLVMdev at cs.uiuc.edu
>> Subject: Re: [LLVMdev] making emitInlineAsm protected
>>
>> On 28 January 2014 19:56, reed kotler <rkotler at mips.com> wrote:
>> > I would like to make the following member of AsmPrinter be protected
>> >
>> >
>> > void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = 0,
>> >                        InlineAsm::AsmDialect AsmDialect =
>> >                            InlineAsm::AD_ATT) const;
>> >
>> > I have some stubs that I want to emit in MipsAsmParser .
>>
>> You mean Printer? There is no such a thing as inline asm in a .s file.
>>
>> > Are there any objections to doing this?
>>
>> Probably. EmitInilneAsm is the only case I know that has a reasonable use of
>> hasRawTextSupport in order for it to work on targets without an asm parser.
>> Exposing it exposes a way for targets avoid the MC layer.
>>
>> Cheers,
>> Rafael
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list