A patch that's in my local tree for quite some time.  This removes
redundant tests.

LTO bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2012-07-13  Richard Guenther  <rguent...@suse.de>

        * gimple.c (gimple_types_compatible_p_1): Remove redundant
        type attribute comparisons.
        (gimple_canonical_types_compatible_p): Likewise.

Index: gcc/gimple.c
===================================================================
--- gcc/gimple.c        (revision 189311)
+++ gcc/gimple.c        (working copy)
@@ -3422,10 +3422,6 @@ gimple_types_compatible_p_1 (tree t1, tr
        goto different_types;
     }
 
-  /* If their attributes are not the same they can't be the same type.  */
-  if (!attribute_list_equal (TYPE_ATTRIBUTES (t1), TYPE_ATTRIBUTES (t2)))
-    goto different_types;
-
   /* Do type-specific comparisons.  */
   switch (TREE_CODE (t1))
     {
@@ -4449,10 +4445,6 @@ gimple_canonical_types_compatible_p (tre
       return true;
     }
 
-  /* If their attributes are not the same they can't be the same type.  */
-  if (!attribute_list_equal (TYPE_ATTRIBUTES (t1), TYPE_ATTRIBUTES (t2)))
-    return false;
-
   /* Do type-specific comparisons.  */
   switch (TREE_CODE (t1))
     {
@@ -4499,13 +4491,6 @@ gimple_canonical_types_compatible_p (tre
        }
 
     case METHOD_TYPE:
-      /* Method types should belong to the same class.  */
-      if (!gimple_canonical_types_compatible_p
-            (TYPE_METHOD_BASETYPE (t1), TYPE_METHOD_BASETYPE (t2)))
-       return false;
-
-      /* Fallthru  */
-
     case FUNCTION_TYPE:
       /* Function types are the same if the return type and arguments types
         are the same.  */

Reply via email to