re PR middle-end/44684 (FAIL: g++.dg/opt/pmf1.C)

2010-06-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44684
	* tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
	(stmt_may_clobber_ref_p_1): Do not bother to call the oracle
	for register LHS.  Or non-store assignments.

From-SVN: r161456
This commit is contained in:
Richard Guenther 2010-06-27 08:10:45 +00:00 committed by Richard Biener
parent 641cd7ed2a
commit 11af16ef2c
2 changed files with 17 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2010-06-27 Richard Guenther <rguenther@suse.de>
PR middle-end/44684
* tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
(stmt_may_clobber_ref_p_1): Do not bother to call the oracle
for register LHS. Or non-store assignments.
2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.c (sparc_emit_set_const32): Make static.

View File

@ -801,11 +801,13 @@ refs_may_alias_p_1 (ao_ref *ref1, ao_ref *ref2, bool tbaa_p)
alias_set_type set;
gcc_checking_assert ((!ref1->ref
|| TREE_CODE (ref1->ref) == SSA_NAME
|| DECL_P (ref1->ref)
|| handled_component_p (ref1->ref)
|| INDIRECT_REF_P (ref1->ref)
|| TREE_CODE (ref1->ref) == TARGET_MEM_REF)
&& (!ref2->ref
|| TREE_CODE (ref2->ref) == SSA_NAME
|| DECL_P (ref2->ref)
|| handled_component_p (ref2->ref)
|| INDIRECT_REF_P (ref2->ref)
@ -1409,11 +1411,15 @@ stmt_may_clobber_ref_p_1 (gimple stmt, ao_ref *ref)
return call_may_clobber_ref_p_1 (stmt, ref);
}
else if (is_gimple_assign (stmt))
else if (gimple_assign_single_p (stmt))
{
ao_ref r;
ao_ref_init (&r, gimple_assign_lhs (stmt));
return refs_may_alias_p_1 (ref, &r, true);
tree lhs = gimple_assign_lhs (stmt);
if (!is_gimple_reg (lhs))
{
ao_ref r;
ao_ref_init (&r, gimple_assign_lhs (stmt));
return refs_may_alias_p_1 (ref, &r, true);
}
}
else if (gimple_code (stmt) == GIMPLE_ASM)
return true;