[LLVMdev] Preventing IR instruction duplication

Jan Hoogerbrugge jan.hoogerbrugge at gmail.com
Thu Jul 17 11:32:04 PDT 2014


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.


On Thu, Jul 17, 2014 at 6:33 PM, Matt Arsenault <arsenm2 at gmail.com> wrote:

>
> On Jul 17, 2014, at 8:41 AM, Jan Hoogerbrugge <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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140717/d491740f/attachment.html>


More information about the llvm-dev mailing list