[llvm-dev] Preventing function call from being optimized out in LTO

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 9 11:12:49 PDT 2020


optnone on such functions should suffice - well, unless the calls turn out
to be dead & I don't think there's anything you can do to thwart dead code
removal. So what are you trying to preserve the function calls for?

On Tue, Jun 9, 2020 at 11:01 AM Shishir V Jessu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hello,
>
> I am adding function calls to an LLVM link-time optimization (LTO) pass,
> using the IRBuilder::CreateCall method. I want these calls to remain in
> the final x86 binary at any optimization level, but on levels -O2 and -O3,
> some of these calls are being optimized out.
>
> So far, I've tried adding each function in the program (excluding LLVM
> intrinsics) to the llvm.used set, and I've also set noinline and optnone
> attributes on each function in the program. This has allowed me to retain *most,
> *but not all, of the calls I've added with IRBuilder::CreateCall.
>
> Furthermore, I have confirmed that all the calls I've created are present
> in the LLVM IR that results immediately after my pass. Thus, I know some
> future LTO pass is optimizing out some of these calls.
>
> How can I ensure that none of the calls I add are optimized out? Thanks
> for your help!
>
> Best,
> Shishir Jessu
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200609/156f4427/attachment.html>


More information about the llvm-dev mailing list