[PATCH] [5/n] Fix minor SSA_NAME leaks
authorJeff Law <law@redhat.com>
Fri, 9 Oct 2015 05:09:56 +0000 (23:09 -0600)
committerJeff Law <law@gcc.gnu.org>
Fri, 9 Oct 2015 05:09:56 +0000 (23:09 -0600)
* value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
and release_ssa_name in two places.
(gimple_stringop_fixed_value): Similarly.

From-SVN: r228632

gcc/ChangeLog
gcc/value-prof.c

index 8ba160389a59b91c3b655b1fcd248245f215e3df..a1b9d1ba4899d983b526f80d7d267751e3459dcd 100644 (file)
@@ -5,6 +5,10 @@
 
 2015-10-08  Jeff Law  <law@redhat.com>
 
+       * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
+       and release_ssa_name in two places.
+       (gimple_stringop_fixed_value): Similarly.
+
        * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
        release_defs.
 
index 90211ef379551a1ef379254f951e6afec5f1f76f..ddf1215969720710315e1311d947e3c25a8d4a77 100644 (file)
@@ -1384,6 +1384,11 @@ gimple_ic (gcall *icall_stmt, struct cgraph_node *direct_call,
   cond_stmt = gimple_build_cond (EQ_EXPR, tmp1, tmp0, NULL_TREE, NULL_TREE);
   gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
 
+  if (TREE_CODE (gimple_vdef (icall_stmt)) == SSA_NAME)
+    {
+      unlink_stmt_vdef (icall_stmt);
+      release_ssa_name (gimple_vdef (icall_stmt));
+    }
   gimple_set_vdef (icall_stmt, NULL_TREE);
   gimple_set_vuse (icall_stmt, NULL_TREE);
   update_stmt (icall_stmt);
@@ -1472,6 +1477,11 @@ gimple_ic (gcall *icall_stmt, struct cgraph_node *direct_call,
            {
              gimple *copy;
 
+             if (TREE_CODE (gimple_vdef (iretbnd_stmt)) == SSA_NAME)
+               {
+                 unlink_stmt_vdef (iretbnd_stmt);
+                 release_ssa_name (gimple_vdef (iretbnd_stmt));
+               }
              gimple_set_vdef (iretbnd_stmt, NULL_TREE);
              gimple_set_vuse (iretbnd_stmt, NULL_TREE);
              update_stmt (iretbnd_stmt);
@@ -1698,6 +1708,11 @@ gimple_stringop_fixed_value (gcall *vcall_stmt, tree icall_size, int prob,
   cond_stmt = gimple_build_cond (EQ_EXPR, tmp1, tmp0, NULL_TREE, NULL_TREE);
   gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
 
+  if (TREE_CODE (gimple_vdef (vcall_stmt)) == SSA_NAME)
+    {
+      unlink_stmt_vdef (vcall_stmt);
+      release_ssa_name (gimple_vdef (vcall_stmt));
+    }
   gimple_set_vdef (vcall_stmt, NULL);
   gimple_set_vuse (vcall_stmt, NULL);
   update_stmt (vcall_stmt);