[LLVMdev] Inlining functions
Will Dietz
willdtz at gmail.com
Thu Oct 20 12:11:25 PDT 2011
On Thu, Oct 20, 2011 at 12:48 PM, Gabriel Quadros
<gquadrossilva at gmail.com> wrote:
> Dear LLVMers,
>
> I am trying to use your inline pass, and I would like to know if it is
> possible to remove a function from the bitcode file once it is inlined.
> Basically, I try:
>
> $> opt -inline file2.bc > file2.in.bc
>
> and I see that all the functions have been inlined into the main
> procedure, inside file2.in.bc. However, the inlined function is still in the
> bitcode, even though it is unreachable from main. Is there a way to remove
> this unreachable function from the bitcode file?
>
> thank you very much,
>
> Gabriel
>
Try "-inline -internalize -globaldce", should do the trick.
The -globaldce by itself is the pass that does what you want (remove
unreachable functions among other things), but the -internalize marks
all functions as internal (otherwise they're reachable via their
exported symbols, and so globaldce cannot remove them).
Hope this helps,
~Will
More information about the llvm-dev
mailing list