[LLVMdev] Preventing IR instruction duplication

Matt Arsenault Matthew.Arsenault at amd.com
Thu Jul 17 12:44:06 PDT 2014


On 07/17/2014 11:32 AM, Jan Hoogerbrugge wrote:
> Hi Matt,
> Thanks for the answer. Unfortunately it does not seem to work.
> Putting the NoDuplicate on the CallInst of an inline assembly gives 
> the message:
>    Attribute 'noduplicate' only applies to functions!
> Putting the NoDuplicate on the function in which the inline assembly 
> resides has not effect. Also adding
> the MinSize or OptimizeForSize attribute does not stop tail 
> duplication. Another suggestion?
> Regards,
> Jan.
>
That seems like a bug. I would expect noduplicate to work on asm calls


>
> On Thu, Jul 17, 2014 at 6:33 PM, Matt Arsenault <arsenm2 at gmail.com 
> <mailto:arsenm2 at gmail.com>> wrote:
>
>
>     On Jul 17, 2014, at 8:41 AM, Jan Hoogerbrugge
>     <jan.hoogerbrugge at gmail.com <mailto:jan.hoogerbrugge at gmail.com>>
>     wrote:
>
>     > Hi,
>     >
>     > For a certain type of analysis I generate inline assembly which
>     I insert into the LLVM IR code. This
>     > inline assembly code contains labels that should not be
>     duplicated. Problem is that the tail
>     > duplication pass duplicates code. It checks isNotDuplicatable on
>     a machine instruction however
>     > there is no such a flag on an IR instruction that I could set.
>     Is there a way to tell in an IR pass
>     > that code should not be duplicated?
>     >
>     > Jan
>
>     There is the noduplicate attribute you can place on the function
>     definition / the asm call site which should work
>
>     -Matt
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140717/f555633a/attachment.html>


More information about the llvm-dev mailing list