diff options
author | Richard Biener <rguenther@suse.de> | 2014-02-20 14:56:27 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-02-20 14:56:27 +0000 |
commit | efd2d3c8c4e1e6387304d85b3b12b8d623348330 (patch) | |
tree | aa3934efa281a2d3b58e4b7bfb04d00879d857f2 /gcc | |
parent | f238107464c0a36d65d52689b01ac3c0cc8be9cb (diff) | |
download | gcc-efd2d3c8c4e1e6387304d85b3b12b8d623348330.zip gcc-efd2d3c8c4e1e6387304d85b3b12b8d623348330.tar.gz gcc-efd2d3c8c4e1e6387304d85b3b12b8d623348330.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 14 |
2 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 805a561..f4cb359 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 3f17e14..325285c 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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. */ |