https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91322
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[10 regression] alias-4 |[10 regression]
|test failure |g++.dg/lto/alias-4_0.C test
| |failure
Status|WAITING |NEW
Keywords| |alias, missed-optimization
Target| |arm
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
FAIL: g++.dg/lto/alias-4 cp_lto_alias-4_0.o-cp_lto_alias-4_0.o execute -O3
-flto -fno-early-inlining
on periodic testing on armv8l-linux-gnueabihf
Adjusting summary - we also have gcc.dg/alias-4.c.
So we're failing to disambiguate loads against stores here for some reason
(we sure need either IPA PTA or TBAA for this to work - it's unclear
what's special here about 'arm' - all loads and stores are pointers
and there's one aggregate assignment involving struct a, also containing
a pointer)
# VUSE <.MEM_6(D)>
# PT = nonlocal escaped null
_1 = ptrD.5611;
# .MEM_7 = VDEF <.MEM_6(D)>
*_1 = 0B;
# VUSE <.MEM_7>
# PT = nonlocal escaped null
_10 = aptrD.5614;
# .MEM_11 = VDEF <.MEM_7>
*_10 = aD.5615;
# VUSE <.MEM_11>
# PT = nonlocal escaped null
_2 = ptrD.5611;
# VUSE <.MEM_11>
# PT = nonlocal escaped null
_3 = *_2;
_4 = _3 == 0B;
So I'm quite sure the missed optimization isn't a regression? (can somebody
quickly check GCC 9 whether the testcase is optimized there on ARM?)
Which makes it a testsuite issue to solve for GCC 10, for example by
xfail-ing it on affected platforms.
The actual issue can probably be simplified quite a bit into a testcase
for alias analysis and FRE1.