aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-03-13 13:16:40 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-03-13 12:16:40 +0000
commit50af63845bc1ce97cd8dd9a2a7236a29ac93a366 (patch)
treec2d4322ca61db735bc9e783b41bb0575e108cccc
parent8083853174ebacc8775d52e58a142639d8aa2180 (diff)
downloadgcc-50af63845bc1ce97cd8dd9a2a7236a29ac93a366.zip
gcc-50af63845bc1ce97cd8dd9a2a7236a29ac93a366.tar.gz
gcc-50af63845bc1ce97cd8dd9a2a7236a29ac93a366.tar.bz2
jump.c (follow_jumps): Do not check for loop notes.
* jump.c (follow_jumps): Do not check for loop notes. Move check for flag_test_coverage out of loop. From-SVN: r111996
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c23
2 files changed, 14 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cd3f8b2..257cb9a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
+ * jump.c (follow_jumps): Do not check for loop notes. Move check for
+ flag_test_coverage out of loop.
+
+2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
+
* final.c (shorten_branches): Remove outdated comment, and turn
the if branch that guards it to continue.
diff --git a/gcc/jump.c b/gcc/jump.c
index 38d1146..79a21b4 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1041,8 +1041,7 @@ sets_cc0_p (rtx x)
If the chain loops or we can't find end, return LABEL,
since that tells caller to avoid changing the insn.
- If RELOAD_COMPLETED is 0, we do not chain across a NOTE_INSN_LOOP_BEG or
- a USE or CLOBBER. */
+ If RELOAD_COMPLETED is 0, we do not chain across a USE or CLOBBER. */
rtx
follow_jumps (rtx label)
@@ -1063,19 +1062,15 @@ follow_jumps (rtx label)
&& BARRIER_P (next));
depth++)
{
- /* Don't chain through the insn that jumps into a loop
- from outside the loop,
- since that would create multiple loop entry jumps
- and prevent loop optimization. */
rtx tem;
- if (!reload_completed)
- for (tem = value; tem != insn; tem = NEXT_INSN (tem))
- if (NOTE_P (tem)
- && (NOTE_LINE_NUMBER (tem) == NOTE_INSN_LOOP_BEG
- /* ??? Optional. Disables some optimizations, but makes
- gcov output more accurate with -O. */
- || (flag_test_coverage && NOTE_LINE_NUMBER (tem) > 0)))
- return value;
+ if (!reload_completed && flag_test_coverage)
+ {
+ /* ??? Optional. Disables some optimizations, but makes
+ gcov output more accurate with -O. */
+ for (tem = value; tem != insn; tem = NEXT_INSN (tem))
+ if (NOTE_P (tem) && NOTE_LINE_NUMBER (tem) > 0)
+ return value;
+ }
/* If we have found a cycle, make the insn jump to itself. */
if (JUMP_LABEL (insn) == label)