http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52445
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-01 08:54:51 UTC --- I'd say the problem is that add_or_mark_expr hasn't been properly adjusted for MEM_REFs, it ignores the offset of the MEM_REFs altogether. Before MEM_REF, this function would just track INDIRECT_REFs dereferencing the same pointer SSA_NAME (i.e. all of them would be same offset, same size). Now it should take into account not just the offset, but also the access size.