[cfe-dev] Why optimize AvailableExternallyLinkage functions when codegenning?

Yaron Keren via cfe-dev cfe-dev at lists.llvm.org
Tue Sep 1 05:07:24 PDT 2015


This make sense.
There are quite a few passes after inlining, so not processing
AvailableExternally after inlining would save work or are there additional
considerations?


2015-09-01 14:59 GMT+03:00 David Chisnall <David.Chisnall at cl.cam.ac.uk>:

> AvailableExternally functions are available for inlining, if inlining them
> makes sense.  The inliner makes better decisions after some early
> optimisation (SROA, CSE, at least).  We can’t rely on this having been done
> prior to (partial) linking.
>
> David
>
> > On 1 Sep 2015, at 10:00, Yaron Keren via cfe-dev <cfe-dev at lists.llvm.org>
> wrote:
> >
> > AvailableExternallyLinkage functions are not emitted when codegenning,
> do they really need to go through optimization passes?
> >
> > I tried testing with
> >
> > bool FPPassManager::runOnFunction(Function &F) {
> >   if (F.isDeclaration() || F.hasAvailableExternallyLinkage())
> >
> > which failed only one test, LLVM :: CodeGen/X86/hidden-vis-pic.ll, so
> there is some issue which yet may be solved without doing all the passes.
> >
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150901/f771a8e5/attachment.html>


More information about the cfe-dev mailing list