------- Comment #3 from rguenth at gcc dot gnu dot org 2009-09-12 20:02 ------- srcshift is not moved out of the loop because we think the store to dstdata may alias it. I'll fix that.
Index: tree-ssa-alias.c =================================================================== --- tree-ssa-alias.c (revision 151651) +++ tree-ssa-alias.c (working copy) @@ -633,6 +633,9 @@ indirect_ref_may_alias_decl_p (tree ref1 HOST_WIDE_INT offset2, HOST_WIDE_INT max_size2, alias_set_type base2_alias_set) { + if (TREE_READONLY (base2)) + return false; + /* If only one reference is based on a variable, they cannot alias if the pointer access is beyond the extent of the variable access. (the pointer base cannot validly point to an offset less than zero -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-09-12 20:02:13 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34011