[PATCH] D15641: [Driver] Pass -O* to the gold plugin via -plugin-opt

Mehdi Amini via cfe-commits cfe-commits at lists.llvm.org
Sat Dec 19 11:32:07 PST 2015


> On Dec 19, 2015, at 8:11 AM, James Molloy <james at jamesmolloy.co.uk> wrote:
> 
> It's interesting to think about, but not something I'm intending to attack right now. 
> 
> I mainly just wanted to know the answer to Joerg's question, and now I do :)


I missed Joerg’s question earlier, I didn’t know what you were referring to. So I’ll answer here: AFAIK per-function attributes do not record the optimization level but only some optimization attributes: minsize, optsize, option. 
A fundamental issue is that the pipeline can change between O0/O1/O2/O3, and this is intrinsically problematic since the pipeline cannot be “per-function” overall.
What we were thinking to implement would be some information at the module level to instruct the ThinLTO optimizer of the flags to enable/disable, probably in global metadata.

The CodeGenOpt::Level has the same issue that it could be used to change the pipeline theoretically. It is not a problem at the time since (AFAIK) the CodeGen pipeline is intrinsically per function, but this may change with the new instruction selector.

— 
Mehdi


> 
> James
> On Sat, 19 Dec 2015 at 17:17, Mehdi Amini via cfe-commits <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
> 
> 
> Sent from my iPhone
> 
> > On Dec 18, 2015, at 11:11 PM, James Molloy <James.Molloy at arm.com <mailto:James.Molloy at arm.com>> wrote:
> >
> > Hi Mehdi,
> >
> >> On 18 Dec 2015, at 23:17, Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> wrote:
> >>
> >> The alternative to the command line flag is to encode the optimization level in the bitcode itself.
> >
> > You may have answered Joerg's question here - I take it this is not yet implemented?
> 
> Not implemented. We have settled on the various tradeoff. Are you interested to think about this?
> --
> Mehdi
> >
> > James
> > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> >
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151219/7ae3a908/attachment.html>


More information about the cfe-commits mailing list