------- Comment #6 from hjl at lucon dot org 2007-07-28 20:51 -------
This part of the patch:
Index: tree-ssa.c
===================================================================
--- tree-ssa.c (revision 126326)
+++ tree-ssa.c (working copy)
@@ -979,11 +979,9 @@ useless_type_conversion_p (tree outer_ty
return false;
/* Do not lose casts between pointers with different
- TYPE_REF_CAN_ALIAS_ALL setting or alias sets. */
- if ((TYPE_REF_CAN_ALIAS_ALL (inner_type)
- != TYPE_REF_CAN_ALIAS_ALL (outer_type))
- || (get_alias_set (TREE_TYPE (inner_type))
- != get_alias_set (TREE_TYPE (outer_type))))
+ TYPE_REF_CAN_ALIAS_ALL setting. */
+ if (TYPE_REF_CAN_ALIAS_ALL (inner_type)
+ != TYPE_REF_CAN_ALIAS_ALL (outer_type))
return false;
/* Do not lose casts from const qualified to non-const
causes this performance regression.
437.leslie3d is a big file with 19 functions. If I put each function in
a separate file, there is no regression. If I put 2 particular functions
in one file, there are 10-30% regressions depending on input file. Those
2 functions work on several global arrays.
I tried " --param max-aliased-vops=1000000 --param avg-aliased-vops=7".
It doesn't make a difference.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921