Commit ac19be7e by Dale Johannesen

Do not foward a branch to just after a loop exit before

loop optimization; this broke doloop detection.

From-SVN: r57260
parent 6a022513
2002-09-17 Dale Johannesen <dalej@apple.com>
* cfgcleanup.c (try_forward_edges): Do not forward a
branch to just after a loop exit before loop optimization;
this interfered with doloop detection.
2002-09-17 Nick Clifton <nickc@redhat.com> 2002-09-17 Nick Clifton <nickc@redhat.com>
* config/arm/arm.c (output_return_instruction): Do not * config/arm/arm.c (output_return_instruction): Do not
...@@ -118,6 +123,7 @@ Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it> ...@@ -118,6 +123,7 @@ Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
* real.h (real_nan): Return bool. * real.h (real_nan): Return bool.
* doc/extend.texi: Document new builtins. * doc/extend.texi: Document new builtins.
>>>>>>> 1.15460
2002-09-16 Jason Merrill <jason@redhat.com> 2002-09-16 Jason Merrill <jason@redhat.com>
Danny Smith <dannysmith@users.sourceforge.net> Danny Smith <dannysmith@users.sourceforge.net>
......
...@@ -515,6 +515,15 @@ try_forward_edges (mode, b) ...@@ -515,6 +515,15 @@ try_forward_edges (mode, b)
if (GET_CODE (insn) == NOTE) if (GET_CODE (insn) == NOTE)
break; break;
/* Do not clean up branches to just past the end of a loop
at this time; it can mess up the loop optimizer's
recognition of some patterns. */
insn = PREV_INSN (target->head);
if (insn && GET_CODE (insn) == NOTE
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
break;
} }
counter++; counter++;
......
/* Make sure both loops are recognized as doloops.
If so, "bdnz" will be generated on ppc; if not,
you will get "ble". */
/* { dg-do compile { target powerpc-*-* } } */
/* { dg-options "-O2" } */
void foo (int count, char* pca, char* pcb) {
int i;
if (count > 10)
for (i = 0; i < count; ++i)
pcb += i;
else
for (i = 0; i < count; ++i)
pca += i;
*pca = *pcb;
}
/* { dg-final { scan-assembler "bdnz" } } */
/* { dg-final { scan-assembler-not "blt" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment