gcc/ChangeLog.gimple-classes:
        * tree-ssa-dse.c (dse_optimize_stmt): Add checked cast.  Replace
        is_gimple_assign with dyn_cast, introducing local gassign *
        "assign_stmt", using it in place of "stmt" for typesafety.
---
 gcc/ChangeLog.gimple-classes |  6 ++++++
 gcc/tree-ssa-dse.c           | 11 ++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/gcc/ChangeLog.gimple-classes b/gcc/ChangeLog.gimple-classes
index 48942c1..9b455c3 100644
--- a/gcc/ChangeLog.gimple-classes
+++ b/gcc/ChangeLog.gimple-classes
@@ -1,5 +1,11 @@
 2014-11-03  David Malcolm  <dmalc...@redhat.com>
 
+       * tree-ssa-dse.c (dse_optimize_stmt): Add checked cast.  Replace
+       is_gimple_assign with dyn_cast, introducing local gassign *
+       "assign_stmt", using it in place of "stmt" for typesafety.
+
+2014-11-03  David Malcolm  <dmalc...@redhat.com>
+
        * tree-ssa-dom.c (initialize_hash_element): Replace check for
        GIMPLE_ASSIGN with a dyn_cast, introducing local "assign_stmt",
        using it in place of "stmt" for typesafety.
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 3434a80..efffa16 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -233,7 +233,8 @@ dse_optimize_stmt (gimple_stmt_iterator *gsi)
   /* Don't return early on *this_2(D) ={v} {CLOBBER}.  */
   if (gimple_has_volatile_ops (stmt)
       && (!gimple_clobber_p (stmt)
-         || TREE_CODE (gimple_assign_lhs (stmt)) != MEM_REF))
+         || (TREE_CODE (gimple_assign_lhs (as_a <gassign *> (stmt)))
+             != MEM_REF)))
     return;
 
   /* We know we have virtual definitions.  We can handle assignments and
@@ -287,18 +288,18 @@ dse_optimize_stmt (gimple_stmt_iterator *gsi)
        }
     }
 
-  if (is_gimple_assign (stmt))
+  if (gassign *assign_stmt = dyn_cast <gassign *> (stmt))
     {
       gimple use_stmt;
 
       /* Self-assignments are zombies.  */
-      if (operand_equal_p (gimple_assign_rhs1 (stmt),
-                          gimple_assign_lhs (stmt), 0))
+      if (operand_equal_p (gimple_assign_rhs1 (assign_stmt),
+                          gimple_assign_lhs (assign_stmt), 0))
        use_stmt = stmt;
       else
        {
          ao_ref ref;
-         ao_ref_init (&ref, gimple_assign_lhs (stmt));
+         ao_ref_init (&ref, gimple_assign_lhs (assign_stmt));
          if (!dse_possible_dead_store_p (&ref, stmt, &use_stmt))
            return;
        }
-- 
1.7.11.7

Reply via email to