diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ddg.c | 2 | ||||
-rw-r--r-- | gcc/loop-doloop.c | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3384d60b428..9175244bd2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-07-19 Bingfeng Mei <bmei@broadcom.com> + * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes + of a loop. + * loop-doloop.c (doloop_condition_get): Skip possible debug_insn. + 2010-07-19 Iain Sandoe <iains@gcc.gnu.org> * config/i386/darwin.h: Define darwin_emit_branch_islands. diff --git a/gcc/ddg.c b/gcc/ddg.c index 295c4e8da81..0a20ed61291 100644 --- a/gcc/ddg.c +++ b/gcc/ddg.c @@ -488,7 +488,7 @@ create_ddg (basic_block bb, int closing_branch_deps) } /* There is nothing to do for this BB. */ - if (num_nodes <= 1) + if ((num_nodes - g->num_debug) <= 1) { free (g); return NULL; diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c index 47a81edaec9..4f0850b7702 100644 --- a/gcc/loop-doloop.c +++ b/gcc/loop-doloop.c @@ -104,11 +104,11 @@ doloop_condition_get (rtx doloop_pat) if (GET_CODE (pattern) != PARALLEL) { rtx cond; + rtx prev_insn = prev_nondebug_insn (doloop_pat); /* We expect the decrement to immediately precede the branch. */ - 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; |