https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49330
--- Comment #26 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #25) > When considering the patch from comment#18 additional data is that only > 95802 out of 636160 disambiguations that ultimately require base_alias_check > involve non-CONST_INT_P "other" operand. That is out of 9531871 total > cases that would run into base_alias_check, or 1%. > > This is w/o "fixing" DSE (the simple patch of course miscompiles things). Sorting by invoking pass this is 236 combine 8138 cse1 8404 cse2 1423 cse_local 144964 dse1 83650 dse2 350 ira 32000 postreload 32758 sched2 75866 vartrack so the majority comes from DSE (note the above numbers are for the full boostrap so not comparable to the numbers quoted which are just for stage3-gcc/*.o) From CSE I also see the weird (mem:TF (plus:SI (reg/f:SI 7 sp) (scratch:SI)) [0 S16 A8]) vs. (mem/c:TF (plus:SI (reg/f:SI 19 frame) (const_int -16 [0xfffffffffffffff0])) [1 S16 A128]) what's this (scratch:SI)!? Anyway, I wonder how with unknown scratch value base_alias_check can figure out the above do not alias.