https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122380
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> --- So while I have a prototype that takes valueization out of the equation, the PRE expression equivalence processing still uses vn_reference_eq which, while not valueizing, performs equivalence processing ignoring the full access path - aka it matches only offsets. I can fix that (w/o also fixing hashing it will cause some collisions there) and that seems to fix the issue at hand. It does and will necessarily regress gcc.dg/tree-ssa/ssa-pre-30.c, though that is of questionable validity w/o -fno-strict-aliasing and it does not work with -fno-strict-aliasing at this point. It also seems to still fail the testcase, but only with -flto. So I have to keep investigating :/ It's already pretty invasive for stage4 (again, seems to be a deja-vu). Was the original testcase reduced from a real-world program or was it created artificially?
