[cfe-commits] r63061 - in /cfe/trunk: include/clang/Parse/Action.h include/clang/Parse/Ownership.h lib/Parse/ParseDecl.cpp lib/Parse/ParseDeclCXX.cpp lib/Parse/ParseExprCXX.cpp lib/Sema/Sema.h lib/Sema/SemaExprObjC.cpp

Sebastian Redl sebastian.redl at getdesigned.at
Tue Jan 27 02:19:36 PST 2009


Douglas Gregor wrote:
> Author: dgregor
> Date: Mon Jan 26 16:44:13 2009
> New Revision: 63061
>
> URL: http://llvm.org/viewvc/llvm-project?rev=63061&view=rev
> Log:
> Some micro-optimizations for DISABLE_SMART_POINTERS:
>   - When it's safe, ActionResult uses the low bit of the pointer for
>   the "invalid" flag rather than a separate "bool" value. This keeps
>   GCC from generating some truly awful code, for a > 3x speedup in the
>   result-passing microbenchmark.
>   
Such an optimization should be possible for ASTOwningResult as well,
even though it has to embed the bit in ASTOwningPtr's pointer. Perhaps I
should just do that, and then remove the distinction between the two; it
causes nothing but trouble anyway.

Sebastian



More information about the cfe-commits mailing list