This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Pessimization of loop code


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~

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]