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.