Message ID | 7FB04A5C213E9943A72EE127DB74F0ADA6897ACFF2@SJEXCHCCR02.corp.ad.broadcom.com |
---|---|
State | New |
Headers | show |
On Fri, Jul 16, 2010 at 05:15:21AM -0700, Bingfeng Mei wrote: > --- loop-doloop.c (revision 162258) > +++ loop-doloop.c (working copy) > @@ -104,11 +104,15 @@ > if (GET_CODE (pattern) != PARALLEL) > { > rtx cond; > + rtx prev_insn = PREV_INSN (doloop_pat); > > - /* We expect the decrement to immediately precede the branch. */ > + /* We expect the decrement to immediately precede the branch. > + Need to skip possible debug_insn */ > + while (prev_insn != NULL_RTX && DEBUG_INSN_P (prev_insn)) > + prev_insn = PREV_INSN (prev_insn); > > - if ((PREV_INSN (doloop_pat) == NULL_RTX) > - || !INSN_P (PREV_INSN (doloop_pat))) > + if ((prev_insn == NULL_RTX) > + || !INSN_P (prev_insn)) > return 0; > > cmp = pattern; Why don't you just do rtx prev_insn = prev_nondebug_insn (doloop_pat); if (prev_insn == NULL_RTX || !INSN_P (prev_insn)) return 0; ? Jakub
Index: ddg.c =================================================================== --- ddg.c (revision 162258) +++ ddg.c (working copy) @@ -488,7 +488,7 @@ } /* There is nothing to do for this BB. */ - if (num_nodes <= 1) + if ((num_nodes - g->num_debug) <= 1) { free (g); return NULL; Index: loop-doloop.c =================================================================== --- loop-doloop.c (revision 162258) +++ loop-doloop.c (working copy) @@ -104,11 +104,15 @@ if (GET_CODE (pattern) != PARALLEL) { rtx cond; + rtx prev_insn = PREV_INSN (doloop_pat); - /* We expect the decrement to immediately precede the branch. */ + /* We expect the decrement to immediately precede the branch. + Need to skip possible debug_insn */ + while (prev_insn != NULL_RTX && DEBUG_INSN_P (prev_insn)) + prev_insn = PREV_INSN (prev_insn); - if ((PREV_INSN (doloop_pat) == NULL_RTX) - || !INSN_P (PREV_INSN (doloop_pat))) + if ((prev_insn == NULL_RTX) + || !INSN_P (prev_insn)) return 0; cmp = pattern;