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.

Reply via email to