[llvm-dev] extern calls interfere with optimizations

Johannes Doerfert via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 21 10:47:48 PDT 2020


On 9/20/20 11:48 AM, David Blaikie via llvm-dev wrote:
> you can put various attributes (const/pure/noreturn/returns/whatever)
> on the function to help optimizations know what to do with them

While we have a rich and growing set to describe possible side effect, 
it certainly depends on the functions what is applicable.

What is the actual reason the inliner behavior changes? Could it just be 
code size?
Are those calls mostly "getters"? Fork-join calls? Barriers?

Also take a look at the `__OMP_ATTRS_SET` we define in 
`llvm/include/llvm/Frontend/OpenMP/OMPKinds.def`.

~ Johannes



> On Sun, Sep 20, 2020 at 9:07 AM james faure via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Hi,
>> I have a frontend that could insert many calls to an external threading library, my problem is that would interfere with optimizations, particularly the inliner.
>>
>> Is there some way to do this ?
>> I've considered leaving textual markers in function names, is that a legitimate solution ?
>>
>> James
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list