2014-02-20 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Feb 2014 14:56:27 +0000 (14:56 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Feb 2014 14:56:27 +0000 (14:56 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207958 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-cfg.c

index 805a561..f4cb359 100644 (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
index 3f17e14..325285c 100644 (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.  */