This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: minor problems in loop.c for c4x target
- To: Herman ten Brugge <Haj dot Ten dot Brugge at net dot HCC dot nl>
- Subject: Re: minor problems in loop.c for c4x target
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 05 Oct 1998 21:49:55 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199810052031.VAA02618@htbrug.net.HCC.nl>you write:
> 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
>
> * loop.c (move_movables): Corrected threshold calculation for
> moved_once registers.
Installed. Thanks!
> The loop is optimized by eliminating i out of the loop. Instead the
> variable a is used as exit test. The problem is that the compare
> instruction does not work correctly now. The loop is only executed once
> instead of twice. The problem probably only shows on this target because
> it has no 32*32 multiply instruction. The best it can do is a 24*24 bit
> multiply. Gcc tries to move this multiply (shift and add) out of the loop
> with the above result.
>
> 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
>
> * loop.c (maybe_eliminate_biv_1): Disable constant mulval plus
> register addval due to possible overflow.
I think I'd like to see something a little more precise than simply disabling
the optimization for all targets in all cases.
jeff