This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Pessimization of loop code
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Subject: Re: Pessimization of loop code
- From: Richard Henderson <rth at cygnus dot com>
- Date: Thu, 3 Feb 2000 14:29:00 -0800
- Cc: gcc at gcc dot gnu dot org
- References: <10002031352.AA18451@vlsi1.ultra.nyu.edu>
On Thu, Feb 03, 2000 at 08:42:28AM -0500, Richard Kenner wrote:
> zapnot $4,240,$4
> addl $3,1,$3
> bis $4,$6,$4
> cmple $3,$8,$1
> zapnot $4,15,$4
> bis $4,$5,$4
> stq $4,0($2)
> lda $2,8($2)
> bne $1,$L10
Look through the dump files for gcc 2.8.1 -- this has absolutely nothing
to do with loop itself. The zaps are not loop invariant (at least as far
as the checking we do can tell -- there's four sets involved, with
(apparently) loop-caried values -- we've never been that good), so they
were not moved.
The change in behaviour is due to a change in combine:
Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
* combine.c (get_last_value): If the last set of a register
is after subst_low_cuid, then we can not use it to determine
the register's last value.
See http://gcc.gnu.org/ml/gcc/1999-10/msg00400.html for discussion.
r~