Commit 7d407433 by Bob Wilson Committed by Bob Wilson

var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a REG_FRAME_RELATED_EXPR note...

	* var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
	REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
	of from insn.

From-SVN: r141272
parent cd6d4007
2008-10-21 Bob Wilson <bob.wilson@acm.org>
* var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
of from insn.
2008-10-21 Adam Nemet <anemet@caviumnetworks.com> 2008-10-21 Adam Nemet <anemet@caviumnetworks.com>
PR middle-end/37669 PR middle-end/37669
......
...@@ -466,22 +466,31 @@ static void ...@@ -466,22 +466,31 @@ static void
insn_stack_adjust_offset_pre_post (rtx insn, HOST_WIDE_INT *pre, insn_stack_adjust_offset_pre_post (rtx insn, HOST_WIDE_INT *pre,
HOST_WIDE_INT *post) HOST_WIDE_INT *post)
{ {
rtx pattern;
*pre = 0; *pre = 0;
*post = 0; *post = 0;
if (GET_CODE (PATTERN (insn)) == SET) pattern = PATTERN (insn);
stack_adjust_offset_pre_post (PATTERN (insn), pre, post); if (RTX_FRAME_RELATED_P (insn))
else if (GET_CODE (PATTERN (insn)) == PARALLEL {
|| GET_CODE (PATTERN (insn)) == SEQUENCE) rtx expr = find_reg_note (insn, REG_FRAME_RELATED_EXPR, NULL_RTX);
if (expr)
pattern = XEXP (expr, 0);
}
if (GET_CODE (pattern) == SET)
stack_adjust_offset_pre_post (pattern, pre, post);
else if (GET_CODE (pattern) == PARALLEL
|| GET_CODE (pattern) == SEQUENCE)
{ {
int i; int i;
/* There may be stack adjustments inside compound insns. Search /* There may be stack adjustments inside compound insns. Search
for them. */ for them. */
for ( i = XVECLEN (PATTERN (insn), 0) - 1; i >= 0; i--) for ( i = XVECLEN (pattern, 0) - 1; i >= 0; i--)
if (GET_CODE (XVECEXP (PATTERN (insn), 0, i)) == SET) if (GET_CODE (XVECEXP (pattern, 0, i)) == SET)
stack_adjust_offset_pre_post (XVECEXP (PATTERN (insn), 0, i), stack_adjust_offset_pre_post (XVECEXP (pattern, 0, i), pre, post);
pre, post);
} }
} }
......
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