"Karsten W. Rohrbach" wrote:
> refer to http://www.gnu.org/software/gcc/gcc-3.0/features.html
>
> ---
> General Optimizer Improvements:
> - Basic block reordering pass.
> - New if-conversion pass with support for conditional (predicated)
> execution.
> - New tail call and sibling call elimination optimizations.
This alone is enough to sell me on moving to the new version
of the compiler.
> - New register renaming pass.
> - New (experimental) static single assignment (SSA) representation
> support.
> - New dead-code elimination pass implemented using the SSA representation.
> - Global null pointer test elimination.
> - Global code hoisting/unification.
> - More builtins and optimizations for stdio.h, string.h and old BSD
> functions, as well as for ISO C99 functions.
> - New builtin __builtin_expect for giving hints to the branch predictor.
FWIW: tail-call optimization is when I have a function
that, as it's last thing (perhaps after reordering by
the compiler, as well) calls another function, such
that the return value of the other function is its
return value.
This permits you to replace:
push args on stack
call function
push args on stack
call function
ret
restore stack
ret
restore stack
With:
push args on stack
call function
do minor stack stuff
jmp function
ret
restore stack
-- Terry
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message