This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Inner-loop optimization regression from 3.3 to 3.4
- From: Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: Richard Henderson <rth at redhat dot com>,Zack Weinberg <zack at codesourcery dot com>, gcc at gcc dot gnu dot org,Jan Hubicka <hubicka at ucw dot cz>
- Date: 02 Nov 2003 00:30:31 +0100
- Subject: Re: Inner-loop optimization regression from 3.3 to 3.4
- References: <87vfqt66ge.fsf@codesourcery.com><20031013130323.GY14005@kam.mff.cuni.cz><87fzhvdxf3.fsf@codesourcery.com><20031017141002.GF6212@kam.mff.cuni.cz><20031018201817.GB29612@redhat.com><20031101113548.GC14974@kam.mff.cuni.cz><877k2kqcki.fsf@student.uni-tuebingen.de><20031101231902.GC2013@kam.mff.cuni.cz>
Jan Hubicka <jh@suse.cz> writes:
> > Jan Hubicka <jh@suse.cz> writes:
> >
> > > + /* Convert (a >= 0) into (~a < 0). */
> >
> > While we're at it, this is also a pessimization on Alpha, and probably
> > elsewhere where one has direct comparisons to registers and a zero
> > register.
>
> The conversion is there in order to allow futher combining. Even
> when it is not better it should work faster after it happens. How
> much slower it is on alpha? (in case setcc is faster then neg, we
> need a check)
a >= 0 is one insn:
cmple zero,a0,v0
while ~a < 0 is two:
not a0,t0
cmplt t0,0,t0
not and cmp* have exactly the same cost on ev5 and ev6, not sure about
ev4.
--
Falk