This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC-generated code and i386 condition codes behavior
- From: Andi Kleen <ak at suse dot de>
- To: Robert Dewar <dewar at adacore dot com>
- Cc: gcc at gcc dot gnu dot org, baford at mit dot edu
- Date: 04 Nov 2005 19:40:45 +0100
- Subject: Re: GCC-generated code and i386 condition codes behavior
- References: <28932467.1130186393749.JavaMail.root@vms076.mailsrvcs.net.suse.lists.egcs><20051025223019.GC16782@redhat.com.suse.lists.egcs><200511041215.10326.baford@mit.edu.suse.lists.egcs><436B99EA.70309@adacore.com.suse.lists.egcs>
Robert Dewar <dewar@adacore.com> writes:
>
> I must say I am a bit surprised that gcc never takes advantage
> of the fact that inc and dec do not destroy the carry flag, this
> is quite significant for some loops.
A lot of this old wisdom is no longer true.
inc and dec are to be generally avoided these days, because the
partial changing of EFLAGS causes too strict dependencies on Intel P4
cores and threefore slower execution. It's better to use add/sub
$1,... instead, except if you're optimizing for code size.
-Andi