aboutsummaryrefslogtreecommitdiff
path: root/gcc/cprop.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cprop.c')
-rw-r--r--gcc/cprop.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 6f34f6b..aca319a 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -963,10 +963,6 @@ cprop_jump (basic_block bb, rtx_insn *setcc, rtx_insn *jump, rtx from, rtx src)
remove_note (jump, note);
}
- /* Delete the cc0 setter. */
- if (HAVE_cc0 && setcc != NULL && CC0_P (SET_DEST (single_set (setcc))))
- delete_insn (setcc);
-
global_const_prop_count++;
if (dump_file != NULL)
{
@@ -1009,15 +1005,15 @@ constprop_register (rtx from, rtx src, rtx_insn *insn)
rtx sset;
rtx_insn *next_insn;
- /* Check for reg or cc0 setting instructions followed by
- conditional branch instructions first. */
+ /* Check for reg setting instructions followed by conditional branch
+ instructions first. */
if ((sset = single_set (insn)) != NULL
&& (next_insn = next_nondebug_insn (insn)) != NULL
&& any_condjump_p (next_insn)
&& onlyjump_p (next_insn))
{
rtx dest = SET_DEST (sset);
- if ((REG_P (dest) || CC0_P (dest))
+ if (REG_P (dest)
&& cprop_jump (BLOCK_FOR_INSN (insn), insn, next_insn,
from, src))
return 1;
@@ -1636,8 +1632,7 @@ bypass_block (basic_block bb, rtx_insn *setcc, rtx_insn *jump)
/* Avoid unification of the edge with other edges from original
branch. We would end up emitting the instruction on "both"
edges. */
- if (dest && setcc && !CC0_P (SET_DEST (PATTERN (setcc)))
- && find_edge (e->src, dest))
+ if (dest && setcc && find_edge (e->src, dest))
dest = NULL;
old_dest = e->dest;
@@ -1647,13 +1642,11 @@ bypass_block (basic_block bb, rtx_insn *setcc, rtx_insn *jump)
{
redirect_edge_and_branch_force (e, dest);
- /* Copy the register setter to the redirected edge.
- Don't copy CC0 setters, as CC0 is dead after jump. */
+ /* Copy the register setter to the redirected edge. */
if (setcc)
{
rtx pat = PATTERN (setcc);
- if (!CC0_P (SET_DEST (pat)))
- insert_insn_on_edge (copy_insn (pat), e);
+ insert_insn_on_edge (copy_insn (pat), e);
}
if (dump_file != NULL)
@@ -1719,7 +1712,7 @@ bypass_conditional_jumps (void)
break;
dest = SET_DEST (PATTERN (insn));
- if (REG_P (dest) || CC0_P (dest))
+ if (REG_P (dest))
setcc = insn;
else
break;