This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch for compile/991229-3.c -O3 -fomit-frame-pointer -funroll-loops SH failure
- To: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Subject: Re: patch for compile/991229-3.c -O3 -fomit-frame-pointer -funroll-loops SH failure
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 16 Feb 2000 21:27:04 -0700
- cc: gcc-patches at gcc dot gnu dot org, amylaar at pasanda dot cygnus dot co dot uk
- Reply-To: law at cygnus dot com
In message <200002162012.UAA30288@phal.cygnus.co.uk>you write:
> When doing the second loop optimization pass for 991229-3.c,
> check_dbra_loop deletes the last insn that uses (reg:SI 62);
OK.
> unroll_loop then proceeds to completely unroll the inner loop.
OK.
> Thus, when scan_loop processes the outer
> loop looking for movables, (reg:SI 62) is set in the last basic block, and
> the last use recorded in reg_n_info doesn't exist anymore.
?!? Shouldn't the set of (reg:SI 62) have been deleted by the call to
delete_trivially_dead_insns that occurs after the first loop optimization
pass? The whole point of delete_trivially_dead_insns is to remove assignments
to pseudos which are never used.
I think you should first find out why the set wasn't removed since that's
ultimately what appears to be causing the problems.