[LLVMdev] Inlining functions
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,
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,
More information about the llvm-dev