summaryrefslogtreecommitdiff
path: root/gcc/lower-subreg.c
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-07 22:43:55 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-07 22:43:55 +0000
commitdb2200eb29d404298af201d053500c7ca2c6896a (patch)
tree35317e8ce965742d89bd2dfc7ea0f9271e85e464 /gcc/lower-subreg.c
parent11d973e51b39ade5476bf6bb8592f60de09dd0ed (diff)
downloadgcc-db2200eb29d404298af201d053500c7ca2c6896a.tar.gz
PR rtl-optimization/32776
* lower-subreg.c (resolve_clobber): Call resolve_reg_notes. (resolve_use): Likewise. (decompose_multiword_subregs): Remove "changed" local variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127282 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lower-subreg.c')
-rw-r--r--gcc/lower-subreg.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index 288566d87b5..c61a8b7759e 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -936,6 +936,8 @@ resolve_clobber (rtx pat, rtx insn)
emit_insn_after (x, insn);
}
+ resolve_reg_notes (insn);
+
return true;
}
@@ -950,6 +952,9 @@ resolve_use (rtx pat, rtx insn)
delete_insn (insn);
return true;
}
+
+ resolve_reg_notes (insn);
+
return false;
}
@@ -1251,25 +1256,17 @@ decompose_multiword_subregs (void)
FOR_BB_INSNS (bb, insn)
{
rtx next, pat;
- bool changed;
if (!INSN_P (insn))
continue;
next = NEXT_INSN (insn);
- changed = false;
pat = PATTERN (insn);
if (GET_CODE (pat) == CLOBBER)
- {
- if (resolve_clobber (pat, insn))
- changed = true;
- }
+ resolve_clobber (pat, insn);
else if (GET_CODE (pat) == USE)
- {
- if (resolve_use (pat, insn))
- changed = true;
- }
+ resolve_use (pat, insn);
else
{
rtx set;
@@ -1302,8 +1299,6 @@ decompose_multiword_subregs (void)
insn = resolve_simple_move (set, insn);
if (insn != orig_insn)
{
- changed = true;
-
remove_retval_note (insn);
recog_memoized (insn);
@@ -1320,7 +1315,6 @@ decompose_multiword_subregs (void)
decomposed_shift = resolve_shift_zext (insn);
if (decomposed_shift != NULL_RTX)
{
- changed = true;
insn = decomposed_shift;
recog_memoized (insn);
extract_insn (insn);
@@ -1349,8 +1343,6 @@ decompose_multiword_subregs (void)
gcc_assert (i);
remove_retval_note (insn);
-
- changed = true;
}
}
}