Clean up dead condition for operators in DCE.
authorMartin Liska <mliska@suse.cz>
Thu, 15 Aug 2019 11:29:37 +0000 (13:29 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 15 Aug 2019 11:29:37 +0000 (11:29 +0000)
2019-08-15  Martin Liska  <mliska@suse.cz>

* tree-ssa-dce.c (propagate_necessity): We can't reach now
operators with no arguments.
(eliminate_unnecessary_stmts): Likewise here.

From-SVN: r274529

gcc/ChangeLog
gcc/tree-ssa-dce.c

index f43819b89e152432f40267e488227cd7fb61f797..49aabbeb08e0f9ccaffccfe0fddd866b5a0b2f89 100644 (file)
@@ -1,3 +1,9 @@
+2019-08-15  Martin Liska  <mliska@suse.cz>
+
+       * tree-ssa-dce.c (propagate_necessity): We can't reach now
+       operators with no arguments.
+       (eliminate_unnecessary_stmts): Likewise here.
+
 2019-08-15  Uroš Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386-features.c (general_scalar_chain::convert_insn)
index afb7bd9dedc622112bcc56c9f0b9f6a06e4e4a9f..80d5f5c30f7f4bbe209db5357414ff443ee88b5f 100644 (file)
@@ -810,11 +810,6 @@ propagate_necessity (bool aggressive)
          if (is_delete_operator
              || gimple_call_builtin_p (stmt, BUILT_IN_FREE))
            {
-             /* It can happen that a user delete operator has the pointer
-                argument optimized out already.  */
-             if (gimple_call_num_args (stmt) == 0)
-               continue;
-
              tree ptr = gimple_call_arg (stmt, 0);
              gimple *def_stmt;
              tree def_callee;
@@ -1328,18 +1323,13 @@ eliminate_unnecessary_stmts (void)
                  || (is_gimple_call (stmt)
                      && gimple_call_operator_delete_p (as_a <gcall *> (stmt)))))
            {
-             /* It can happen that a user delete operator has the pointer
-                argument optimized out already.  */
-             if (gimple_call_num_args (stmt) > 0)
+             tree ptr = gimple_call_arg (stmt, 0);
+             if (TREE_CODE (ptr) == SSA_NAME)
                {
-                 tree ptr = gimple_call_arg (stmt, 0);
-                 if (TREE_CODE (ptr) == SSA_NAME)
-                   {
-                     gimple *def_stmt = SSA_NAME_DEF_STMT (ptr);
-                     if (!gimple_nop_p (def_stmt)
-                         && !gimple_plf (def_stmt, STMT_NECESSARY))
-                       gimple_set_plf (stmt, STMT_NECESSARY, false);
-                   }
+                 gimple *def_stmt = SSA_NAME_DEF_STMT (ptr);
+                 if (!gimple_nop_p (def_stmt)
+                     && !gimple_plf (def_stmt, STMT_NECESSARY))
+                   gimple_set_plf (stmt, STMT_NECESSARY, false);
                }
            }