OSDN Git Service

PR tree-optimization/42963
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Apr 2010 14:50:33 +0000 (14:50 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 01:00:58 +0000 (10:00 +0900)
* tree-cfg.c (touched_switch_bbs): New static variable.
(group_case_labels_stmt): New function broken out from ...
(group_case_labels): ... here, use the above.
(start_recording_case_labels): Allocate touched_switch_bbs.
(end_recording_case_labels): Deallocate it, call
group_case_labels_stmt.
(gimple_redirect_edge_and_branch): Remember index of affected BB.

testsuite/
* testsuite/gcc.dg/pr42963.c: New testcase.

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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/tree-cfg.c

index 60548dc..06e1af4 100644 (file)
@@ -1,3 +1,14 @@
+2010-04-14  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/42963
+       * tree-cfg.c (touched_switch_bbs): New static variable.
+       (group_case_labels_stmt): New function broken out from ...
+       (group_case_labels): ... here, use the above.
+       (start_recording_case_labels): Allocate touched_switch_bbs.
+       (end_recording_case_labels): Deallocate it, call
+       group_case_labels_stmt.
+       (gimple_redirect_edge_and_branch): Remember index of affected BB.
+
 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
index d006531..13ef39f 100644 (file)
@@ -1,3 +1,8 @@
+2010-04-14  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/42963
+       * testsuite/gcc.dg/pr42963.c: New testcase.
+
 2010-04-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnat.dg/class_wide.adb: Rename into...
index ec69dd8..0e89f99 100644 (file)
@@ -24,7 +24,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "rtl.h"
 #include "tm_p.h"
+#include "hard-reg-set.h"
 #include "basic-block.h"
 #include "output.h"
 #include "flags.h"
@@ -33,8 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "ggc.h"
 #include "langhooks.h"
 #include "diagnostic.h"
-#include "tree-pretty-print.h"
-#include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "timevar.h"
 #include "tree-dump.h"
@@ -3455,13 +3455,8 @@ do_pointer_plus_expr_check:
         connected to the operand types.  */
       return verify_gimple_comparison (lhs_type, rhs1, rhs2);
 
-    case WIDEN_MULT_EXPR:
-      if (TREE_CODE (lhs_type) != INTEGER_TYPE)
-       return true;
-      return ((2 * TYPE_PRECISION (rhs1_type) != TYPE_PRECISION (lhs_type))
-             || (TYPE_PRECISION (rhs1_type) != TYPE_PRECISION (rhs2_type)));
-
     case WIDEN_SUM_EXPR:
+    case WIDEN_MULT_EXPR:
     case VEC_WIDEN_MULT_HI_EXPR:
     case VEC_WIDEN_MULT_LO_EXPR:
     case VEC_PACK_TRUNC_EXPR: