[Bug tree-optimization/88854] redundant store after load that would makes aliasing UB

kretz at kde dot org gcc-bugzilla@gcc.gnu.org
Tue Jan 15 15:02:00 GMT 2019


--- Comment #7 from Matthias Kretz <kretz at kde dot org> ---
(In reply to rguenther@suse.de from comment #5)
> Yeah, we do not perform this kind of "flow-sensitive" TBAA.  So
> when trying to DSE *a = x; we only look at
>      int x = *a;
>      *b = 1;
>      *a = x;
> and do not consider the earlier load from *b at all because it is
> not on the path from the load making the store possibly redundant.

However, if I annotate a and/or b as __restrict__ GCC does the DSE. I don't
think I want another DSE special case but a general case of inducing aliasing
knowledge, which may affect decisions throughout the whole program where the
pointers are used.

More information about the Gcc-bugs mailing list