summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ddg.c2
-rw-r--r--gcc/loop-doloop.c4
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;