[llvm-commits] [llvm] r62107 - in /llvm/trunk: lib/Transforms/IPO/Inliner.cpp lib/Transforms/Utils/InlineCost.cpp test/Transforms/Inline/2009-01-12-RecursiveInline.ll
Duncan Sands
baldrick at free.fr
Wed Jan 14 00:50:46 PST 2009
Hi Dale,
> I don't agree, I think it was indented funny before. Let's get the
> whole context:
it still looks funny to me, but I don't care enough to argue.
> > Also, it is
> > probably OK to inline a function with weak linkage (mayBeOverridden)
> > into
> > itself.
>
> Maybe so. What happens if different compilations make different
> inlining decisions? Is the linker allowed to require that all copies
> of a weak function are the same? I think not.
None of that matters. Consider a function f with weak linkage that
calls itself:
define weak void @f(...) {
...
call void @f(...)
...
}
There are two cases:
(1) this is the function that is finally used, i.e. the body isn't
overridden by something else at link time. In this case it is fine
to inline f into itself.
(2) this is not the function that is finally used, i.e. the body is
discarded at link time. Since the body is discarded, it is fine to
inline f into itself because the result is discarded anyway!
That said, this seems like a particularly unimportant optimization.
Ciao,
Duncan.
More information about the llvm-commits
mailing list