Commit 968e5728 by Alexandre Oliva Committed by Alexandre Oliva

re PR debug/41353 (VTA missed-debug issues)

PR debug/41353
* regmove.c (regmove_backward_pass): Replace src with dst in the
debug insn, and check for dst before rather than after.

From-SVN: r152573
parent 42ccb890
2009-10-08 Alexandre Oliva <aoliva@redhat.com>
PR debug/41353
* regmove.c (regmove_backward_pass): Replace src with dst in the
debug insn, and check for dst before rather than after.
2009-10-08 Janis Johnson <janis187@us.ibm.com>
* config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
......@@ -1117,23 +1117,28 @@ regmove_backward_pass (void)
break;
}
/* We can't make this change if SRC is read or
/* We can't make this change if DST is mentioned at
all in P, since we are going to change its value.
We can't make this change if SRC is read or
partially written in P, since we are going to
eliminate SRC. We can't make this change
if DST is mentioned at all in P,
since we are going to change its value. */
if (reg_overlap_mentioned_p (src, PATTERN (p)))
eliminate SRC. However, if it's a debug insn, we
can't refrain from making the change, for this
would cause codegen differences, so instead we
invalidate debug expressions that reference DST,
and adjust references to SRC in them so that they
become references to DST. */
if (reg_mentioned_p (dst, PATTERN (p)))
{
if (DEBUG_INSN_P (p))
validate_replace_rtx_group (dst, src, insn);
validate_change (p, &INSN_VAR_LOCATION_LOC (p),
gen_rtx_UNKNOWN_VAR_LOC (), 1);
else
break;
}
if (reg_mentioned_p (dst, PATTERN (p)))
if (reg_overlap_mentioned_p (src, PATTERN (p)))
{
if (DEBUG_INSN_P (p))
validate_change (p, &INSN_VAR_LOCATION_LOC (p),
gen_rtx_UNKNOWN_VAR_LOC (), 1);
validate_replace_rtx_group (src, dst, p);
else
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment