[LLVMdev] library functions

John Criswell criswell at illinois.edu
Mon May 23 11:24:19 PDT 2011


On 5/23/11 1:05 PM, George Baah wrote:
> Hi,
>  I am writing a pass which is supposed to ignore library functions. Is 
> there a way to
> distinguish functions declared and defined by a developer from 
> non-local functions (library functions)?
> Thanks.

There is no reliable way to do this, but there are several heuristics 
that will probably work well in practice.

When analyzing a program, any function that is defined (i.e., has a 
function body) most likely came from the program's source code.  The 
exception will be functions declared in system header files or C/C++ 
library header files.

Any function that is declared but not defined (i.e., has no function 
body) is either a function that is defined in another translation unit 
(i.e., another source file) or defined in a system or language library 
(e.g., libc).  It is, in general, not possible to distinguish between 
the two situations, although if you've linked your entire program into a 
single bitcode file, the only external functions are coming from library 
functions.

-- John T.

>
> George
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110523/60f12b69/attachment.html>


More information about the llvm-dev mailing list