Commit 6f7e2c0c by Roger Sayle Committed by Roger Sayle

re PR rtl-optimization/22053 (ACATS ICE cxg2002 cxg2008 cxg2019 cxg2020 cxg2021…

re PR rtl-optimization/22053 (ACATS ICE cxg2002 cxg2008 cxg2019 cxg2020 cxg2021 compensate_edge, at reg-stack.c:2671)


	PR rtl-optimization/22053
	* reg-stack.c (compensate_edge): Correct mistake in the assertion
	checking of EDGE_ABNORMAL_CALL edges; complex return values can
	result in the top two stack slots, st(0) and st(1), being live.

From-SVN: r100926
parent ad1f3d7a
2005-06-13 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/22053
* reg-stack.c (compensate_edge): Correct mistake in the assertion
checking of EDGE_ABNORMAL_CALL edges; complex return values can
result in the top two stack slots, st(0) and st(1), being live.
2005-06-13 Jeff Law <law@redhat.com> 2005-06-13 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
......
...@@ -2667,8 +2667,9 @@ compensate_edge (edge e, FILE *file) ...@@ -2667,8 +2667,9 @@ compensate_edge (edge e, FILE *file)
{ {
/* Assert that the lifetimes are as we expect -- one value /* Assert that the lifetimes are as we expect -- one value
live at st(0) on the end of the source block, and no live at st(0) on the end of the source block, and no
values live at the beginning of the destination block. */ values live at the beginning of the destination block.
gcc_assert (source_stack->top == 0); For complex return values, we may have st(1) live as well. */
gcc_assert (source_stack->top == 0 || source_stack->top == 1);
gcc_assert (target_stack->top == -1); gcc_assert (target_stack->top == -1);
return false; return false;
} }
......
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