tree-cfg.c (replace_uses_by): Mark altered BBs before doing the substitution.

2014-02-20  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (replace_uses_by): Mark altered BBs before
	doing the substitution.
	(verify_gimple_assign_single): Also verify bare MEM_REFs
	on the lhs.

From-SVN: r207958
This commit is contained in:
Richard Biener 2014-02-20 14:56:27 +00:00 committed by Richard Biener
parent f238107464
commit efd2d3c8c4
2 changed files with 15 additions and 6 deletions

View file

@ -1,3 +1,10 @@
2014-02-20 Richard Biener <rguenther@suse.de>
* tree-cfg.c (replace_uses_by): Mark altered BBs before
doing the substitution.
(verify_gimple_assign_single): Also verify bare MEM_REFs
on the lhs.
2014-02-20 Martin Jambor <mjambor@suse.cz>
PR ipa/55260

View file

@ -1677,6 +1677,11 @@ replace_uses_by (tree name, tree val)
FOR_EACH_IMM_USE_STMT (stmt, imm_iter, name)
{
/* Mark the block if we change the last stmt in it. */
if (cfgcleanup_altered_bbs
&& stmt_ends_bb_p (stmt))
bitmap_set_bit (cfgcleanup_altered_bbs, gimple_bb (stmt)->index);
FOR_EACH_IMM_USE_ON_STMT (use, imm_iter)
{
replace_exp (use, val);
@ -1701,11 +1706,6 @@ replace_uses_by (tree name, tree val)
gimple orig_stmt = stmt;
size_t i;
/* Mark the block if we changed the last stmt in it. */
if (cfgcleanup_altered_bbs
&& stmt_ends_bb_p (stmt))
bitmap_set_bit (cfgcleanup_altered_bbs, gimple_bb (stmt)->index);
/* FIXME. It shouldn't be required to keep TREE_CONSTANT
on ADDR_EXPRs up-to-date on GIMPLE. Propagation will
only change sth from non-invariant to invariant, and only
@ -3986,7 +3986,9 @@ verify_gimple_assign_single (gimple stmt)
return true;
}
if (handled_component_p (lhs))
if (handled_component_p (lhs)
|| TREE_CODE (lhs) == MEM_REF
|| TREE_CODE (lhs) == TARGET_MEM_REF)
res |= verify_types_in_gimple_reference (lhs, true);
/* Special codes we cannot handle via their class. */