[llvm-dev] How to distinguish between user defined function in a program and library functions

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 4 15:53:00 PST 2020


Generally, you can't - and optimizations/the compiler shouldn't
differentiate between them.

On Tue, Feb 4, 2020 at 3:25 PM Sunil via llvm-dev <llvm-dev at lists.llvm.org>
wrote:

> Say, I have the following program:
>    #include <iostream>
>    int main(){
>      std::cout << "hello\n";
>      return 0;
>    }
>
> After generating llvm bitcode using the following command:
>       $ clang++ -c -emit-llvm -O -Xclang -disable-llvm-passes a.cpp
> the bitcode has the following function with define.
>       __cxx_global_var_init
>    main
>    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
>    _ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate
>    _ZNSt11char_traitsIcE6lengthEPKc
>    _ZStorSt12_Ios_IostateS_
>    _ZNKSt9basic_iosIcSt11char_traitsIcEE7rdstateEv
>    _GLOBAL__sub_I_a.cpp
>
> In a pass, I want to know what are the functions defined by the user e.g
> 'main' and what are not e.g. other than 'main'.
>
> Regards,
>    Sunil
> _______________________________________________
> 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/20200204/3dc43f73/attachment.html>


More information about the llvm-dev mailing list