[cfe-dev] [LLVMdev] [PROPOSAL] per-function optimization level control

Andrea_DiBiagio at sn.scee.net Andrea_DiBiagio at sn.scee.net
Wed May 29 08:24:41 PDT 2013

In reply to the question about what would be the common use case:

> What is the common use case? Making sure some funtion is always
> optimized or making sure it never optimized? If the second one, I
> wonder if marking it cold would be a good enough approximation. 

Although both cases would be nice and our users have expressed some 
interest in both, the critical one is the second case of making sure that 
some functions are never optimized is the most critical one.  The major 
use-case for this is for ease of debugging optimized builds.  Generally, 
the type of programs that our users are writing run so slowly in 
unoptimized builds that they are essentially unusable for 
testing/debugging purposes.  Unfortunately in fully optimized builds, as 
we all know, the debugging experience is not always entirely pleasant. Our 
users generally build against multiple targets each with their own 
compiler and have adopted the typical workflow of marking functions and 
ranges of functions that need closer inspection in the debugger with a 
pragma to prevent the optimizer from coming along and hurting the 
debuggability of them whilst still running with everything else fully 
optimized and at a usable speed. 

Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote on 29/05/2013 

> > Wasn't this already proposed?
> > http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-January/058112.html
> >
> > LLVM already has optsize.  Maybe it's just a matter of hooking up 
> > attr(optimize) to it in clang, as a first approximation.
> Looks like it, yes!
> Chandler, what were you thoughts on the pass manager? Should it select
> the set of passes for a function based on the function's attributes?

Yes, Chandler's proposal goes on the same direction as our proposal. In 
fact the declared goals was 
"to allow a specific function to have its optimization level overridden 
from the command line based level".
Our proposal tries also to focus more on how function attributes could be 
used to guide pass managers in the process of selecting which passes to 
run etc.

Andrea Di Biagio
SN Systems - Sony Computer Entertainment Group

This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. 
If you have received this email in error please notify postmaster at scee.net
This footnote also confirms that this email message has been checked for 
all known viruses.
Sony Computer Entertainment Europe Limited
Registered Office: 10 Great Marlborough Street, London W1F 7LP, United 
Registered in England: 3277793

P Please consider the environment before printing this e-mail

More information about the cfe-dev mailing list