From: Jakub Jelinek Date: Tue, 4 Oct 2011 13:36:24 +0000 (+0200) Subject: re PR tree-optimization/50522 (C++ std::valarray vectorization missed optimization) X-Git-Tag: releases/gcc-4.7.0~3390 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31330e16d502ac34453ff3d694d33c3c469af890;p=thirdparty%2Fgcc.git re PR tree-optimization/50522 (C++ std::valarray vectorization missed optimization) 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b973a05e3f9..b6113219d6b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2011-10-04 Jakub Jelinek + 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. diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 82307decaf49..a89094467f1b 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -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