[LLVMdev] module passes that eliminate unused global symbols

Sam Parker S.Parker3 at lboro.ac.uk
Mon May 20 14:59:24 PDT 2013

I compile my library to bytecode and then declare all my functions as 
linkonce ( http://llvm.org/docs/LangRef.html#linkage-types) and then use 
llvm-link to produce a minimal module, which works pretty well for me.


On 20/05/13 21:20, Frank Winter wrote:
> My module contains one function that calls a handful of functions in 
> another module (which contains a huge collection of functions). The 
> goal is to make the module 'self-contained', i.e. no calls across 
> module boundaries, and as minimal as possible, i.e. it does not 
> contain any function which is not called directly or indirectly from 
> the original function. So, I linked in the callee module to the caller 
> module and ran the internalize pass to filter/mark the non-external 
> global symbols. Is this a good first step towards the goal? How can I 
> eliminate unused global symbols or make the module minimal (with the 
> existing (trunk) passes)? Ideally only the (directly or indirectly) 
> referenced symbols survive. Is this possible or do I need to develop 
> such passes?
> Frank
> _______________________________________________
> 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/20130520/70ac0f6c/attachment.html>

More information about the llvm-dev mailing list