Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jun 2001 13:35:00 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        "Karsten W. Rohrbach" <karsten@rohrbach.de>
Cc:        Dag-Erling Smorgrav <des@ofug.org>, current@FreeBSD.ORG, obrien@FreeBSD.ORG
Subject:   Re: CPUTYPE warning
Message-ID:  <3B34FD74.A947641A@mindspring.com>
References:  <xzppubyye0j.fsf@flood.ping.uio.no> <20010622192232.U64624@mail.webmonster.de> <3B340F45.863D00A0@mindspring.com> <20010623165930.A14624@mail.webmonster.de>

next in thread | previous in thread | raw e-mail | index | archive | help
"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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B34FD74.A947641A>