diff options
Diffstat (limited to 'gcc/fwprop.c')
-rw-r--r-- | gcc/fwprop.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fwprop.c b/gcc/fwprop.c index df8c45d3b6b..d3ed74298c0 100644 --- a/gcc/fwprop.c +++ b/gcc/fwprop.c @@ -1208,7 +1208,7 @@ forward_propagate_and_simplify (df_ref use, rtx def_insn, rtx def_set) if (INSN_CODE (use_insn) < 0) asm_use = asm_noperands (PATTERN (use_insn)); - if (!use_set && asm_use < 0) + if (!use_set && asm_use < 0 && !DEBUG_INSN_P (use_insn)) return false; /* Do not propagate into PC, CC0, etc. */ @@ -1265,6 +1265,11 @@ forward_propagate_and_simplify (df_ref use, rtx def_insn, rtx def_set) loc = &SET_DEST (use_set); set_reg_equal = false; } + else if (!use_set) + { + loc = &INSN_VAR_LOCATION_LOC (use_insn); + set_reg_equal = false; + } else { rtx note = find_reg_note (use_insn, REG_EQUAL, NULL_RTX); |