]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/51117 (rev.181172 causes glibc build failure)
authorJakub Jelinek <jakub@redhat.com>
Fri, 9 Dec 2011 20:50:40 +0000 (21:50 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 9 Dec 2011 20:50:40 +0000 (21:50 +0100)
PR tree-optimization/51117
* tree-eh.c (optimize_clobbers): Don't remove just one
clobber, but all consecutive clobbers before RESX.
Use gimple_clobber_p predicate.

From-SVN: r182177

gcc/ChangeLog
gcc/tree-eh.c

index 3f3506179d456653d52eeb4799130c7b790641d8..0400f1bc837264d11c4c99b151dabe01f416968a 100644 (file)
@@ -1,3 +1,10 @@
+2011-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51117
+       * tree-eh.c (optimize_clobbers): Don't remove just one
+       clobber, but all consecutive clobbers before RESX.
+       Use gimple_clobber_p predicate.
+
 2011-12-09  Michael Meissner  <meissner@the-meissners.org>
 
        * config/rs6000/rs6000.c (altivec_expand_builtin): Call
index 7fc850a2ae9839db6376fc13b429ae78d99e0e67..7ab8a90a37f5f1ad3d0ce209ba0a9d4b1a7d63e3 100644 (file)
@@ -3180,17 +3180,13 @@ static void
 optimize_clobbers (basic_block bb)
 {
   gimple_stmt_iterator gsi = gsi_last_bb (bb);
-  for (gsi_prev (&gsi); !gsi_end_p (gsi);)
+  for (gsi_prev (&gsi); !gsi_end_p (gsi); gsi_prev (&gsi))
     {
       gimple stmt = gsi_stmt (gsi);
       if (is_gimple_debug (stmt))
-       {
-         gsi_prev (&gsi);
-         continue;
-       }
-      if (!gimple_assign_single_p (stmt)
-         || TREE_CODE (gimple_assign_lhs (stmt)) == SSA_NAME
-         || !TREE_CLOBBER_P (gimple_assign_rhs1 (stmt)))
+       continue;
+      if (!gimple_clobber_p (stmt)
+         || TREE_CODE (gimple_assign_lhs (stmt)) == SSA_NAME)
        return;
       unlink_stmt_vdef (stmt);
       gsi_remove (&gsi, true);
This page took 0.105596 seconds and 5 git commands to generate.