[LLVMdev] inline callsites whose function definitions are in different file?
czhao at eecg.toronto.edu
Tue Jul 27 07:46:22 PDT 2010
LLVM (2.7 release version) provides 2 implementations for inlining
- InlineSimple.cpp (-inline): inline simple callsites
according to its cost analysis
- InlineAlways.cpp (-always-inline): inline all callsites that are
marked with "always_inline" attribute.
They are both subclasses of Inline.cpp that assumes the function's
definition (body) is in the same Module (file) as its callsites (that
will be inlined).
I am now having a situation that the functions are defined in file1.c
(Module1) but all callsites are spread in file2, file3, ...fileN. Would
LLVM be able to inline such callsites at compile time?
I think the right approach is to conduct inlining at link time (via the
LTO), but still wonder if it is possible to do it at compile time
without heavy hacking.
More information about the llvm-dev