This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] doloop partial loops adjustment (PPC regression)
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 28 Feb 2004 21:59:05 -0500
- Subject: [tree-ssa] doloop partial loops adjustment (PPC regression)
The appended patch, written by Zdenek and already added to the LNO
branch, fixes the Tree-SSA doloop failure exposed by execute/920411-1.c.
The patch adjusts the number of iterations to take into account partial
loops. It's an interim fix until the doloop functionality is replaced
using the rewrite on the LNO branch.
Okay for Tree-SSA branch?
Thanks, David
* doloop.c (doloop_optimize): Increment n_iterations if loop->top
present.
Index: doloop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doloop.c,v
retrieving revision 1.19.2.10
diff -c -p -r1.19.2.10 doloop.c
*** doloop.c 13 Feb 2004 13:11:21 -0000 1.19.2.10
--- doloop.c 29 Feb 2004 02:17:53 -0000
*************** doloop_optimize (const struct loop *loop
*** 785,790 ****
--- 785,794 ----
n_iterations = loop_info->n_iterations;
if (n_iterations)
{
+ /* See the comment in doloop_modify_runtime. */
+ if (loop->top)
+ n_iterations += loop_info->unroll_number;
+
/* This is the simple case where the initial and final loop
values are constants. */
n_iterations_max = n_iterations;