Hi Yaron,
This is to handle the case of pre-built (real .o) files.
The available externally functions are kept in the -c -flto compile
(the pass isn't run) so that they are available for inlining in the
LTO pipeline. If the available externally function is in a pre-built
object file it wouldn't be
r246619, thanks!
About createEliminateAvailableExternallyPass for LTO, I'm missing
something. At link time, aren't available externally function supposed to
be, well, available as external linkage? Won't the link fail without these
versions?
if so, why keep the available externally versions at all
Hi Yaron,
Thanks, moving it earlier in general seems ok to me. I originally put
this right before the GlobalDCE calls because it was somewhat related.
I wonder if the createEliminateAvailableExternallyPass call for the
LTO pipeline should similarly be moved up closer to inlining, perhaps
after any
Following the discussion on cfe-dev, this
moves createEliminateAvailableExternallyPass earlier in the pass pipeline
to save running many ModulePasses on available external functions that are
thrown away anyhow.
Index: lib/Transforms/IPO/PassManagerBuilder.cpp
===