re PR middle-end/43513 (The stack pointer is adjusted twice)

2011-07-30  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/43513
	* tree-ssa-dce.c (ref_may_be_aliased): Add assert.
	(propagate_necessity): Handle WITH_SIZE_EXPR call arg.

From-SVN: r176959
This commit is contained in:
Tom de Vries 2011-07-30 12:37:47 +00:00 committed by Tom de Vries
parent ee27f97bd8
commit b3421a06f9
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-07-30 Tom de Vries <tom@codesourcery.com>
PR middle-end/43513
* tree-ssa-dce.c (ref_may_be_aliased): Add assert.
(propagate_necessity): Handle WITH_SIZE_EXPR call arg.
2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/mips/driver-native.c [__sgi__]: Include <invent.h>,

View File

@ -490,6 +490,7 @@ find_obviously_necessary_stmts (struct edge_list *el)
static bool
ref_may_be_aliased (tree ref)
{
gcc_assert (TREE_CODE (ref) != WITH_SIZE_EXPR);
while (handled_component_p (ref))
ref = TREE_OPERAND (ref, 0);
if (TREE_CODE (ref) == MEM_REF
@ -850,6 +851,8 @@ propagate_necessity (struct edge_list *el)
if (TREE_CODE (arg) == SSA_NAME
|| is_gimple_min_invariant (arg))
continue;
if (TREE_CODE (arg) == WITH_SIZE_EXPR)
arg = TREE_OPERAND (arg, 0);
if (!ref_may_be_aliased (arg))
mark_aliased_reaching_defs_necessary (stmt, arg);
}