re PR tree-optimization/50522 (C++ std::valarray vectorization missed optimization)
authorJakub Jelinek <jakub@redhat.com>
Tue, 4 Oct 2011 13:36:24 +0000 (15:36 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 4 Oct 2011 13:36:24 +0000 (15:36 +0200)
PR tree-optimization/50522
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
TYPE_RESTRICT.
(ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
unconditionally.

From-SVN: r179502

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

index 3b973a05e3f96ac6c24a09a1228bfcbb83cb9406..b6113219d6b8fd673b2372b5b586577fb8a38f41 100644 (file)
@@ -1,5 +1,11 @@
 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
 
+       PR tree-optimization/50522
+       * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
+       TYPE_RESTRICT.
+       (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
+       unconditionally.
+
        * fold-const.c (fold_unary_loc): Don't optimize
        POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
        casting the inner pointer if it isn't TYPE_RESTRICT.
index 82307decaf4982de8042b7e86f93f62e6dcc1fb5..a89094467f1ba58672942013d8e0281ea3a30773 100644 (file)
@@ -223,7 +223,6 @@ ptr_deref_may_alias_decl_p (tree ptr, tree decl)
      pointer and that pointers points-to set doesn't contain this decl
      then they can't alias.  */
   if (DECL_RESTRICTED_P (decl)
-      && TYPE_RESTRICT (TREE_TYPE (ptr))
       && pi->pt.vars_contains_restrict)
     return bitmap_bit_p (pi->pt.vars, DECL_PT_UID (decl));
 
@@ -319,9 +318,7 @@ ptr_derefs_may_alias_p (tree ptr1, tree ptr2)
 
   /* If both pointers are restrict-qualified try to disambiguate
      with restrict information.  */
-  if (TYPE_RESTRICT (TREE_TYPE (ptr1))
-      && TYPE_RESTRICT (TREE_TYPE (ptr2))
-      && !pt_solutions_same_restrict_base (&pi1->pt, &pi2->pt))
+  if (!pt_solutions_same_restrict_base (&pi1->pt, &pi2->pt))
     return false;
 
   /* ???  This does not use TBAA to prune decls from the intersection