From 0be955e73751c1ffc6468d6a9679201103a21718 Mon Sep 17 00:00:00 2001 From: Bingfeng Mei Date: Mon, 19 Jul 2010 09:18:14 +0000 Subject: [PATCH] ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes of a loop. 2010-07-19 Bingfeng Mei * 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. From-SVN: r162300 --- gcc/ChangeLog | 5 +++++ gcc/ddg.c | 2 +- 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 + * 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 * 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; -- 2.30.2