[llvm-dev] How to distinguish between user defined function in a program and library functions
Jacob Carlborg via llvm-dev
llvm-dev at lists.llvm.org
Wed Feb 5 10:16:08 PST 2020
On 2020-02-04 17:24, Sunil via llvm-dev 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'.
Perhaps you can check where a function is defined and treat all
functions defined in a file passed to the compiler as user defined and
all other as system defined. Not sure if that's good enough for you.
--
/Jacob Carlborg
More information about the llvm-dev
mailing list