[LLVMdev] Pass to remove unused functions

Villmow, Micah Micah.Villmow at amd.com
Tue May 5 16:50:22 PDT 2009


Is there a way to mark all functions as internal from source via some
sort of attribute?

 

Thanks for the tips,

Micah

 

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Chris Lattner
Sent: Tuesday, May 05, 2009 4:16 PM
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Pass to remove unused functions

 

 

On May 5, 2009, at 4:07 PM, Villmow, Micah wrote:





I thought this pass would do it, but when I run it over my bc file the
output file is the same as the input file.

 

that's probably because your symbols are not internal.





 

The issue I guess  is a little different. When I link in the huge bc
file with the tiny bc file, I only want the resulting bc file to have
the function definitions that the tiny bc file requires and not every
function in the huge bc file.

 

Any idea's how to do this with the current llvm toolset?

 

You have to roll your own using the lower level APIs.  You can move
functions between modules etc.  Alternatively, you can link the two
modules and mark the functions you don't want as internal, then use
globaldce.

 

-Chris

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


More information about the llvm-dev mailing list