https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127053

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Thomas Schwinge <[email protected]>:

https://gcc.gnu.org/g:bfdd3d3d8b6877435898c89393177bbcbd713309

commit r17-4667-gbfdd3d3d8b6877435898c89393177bbcbd713309
Author: Thomas Schwinge <[email protected]>
Date:   Thu Sep 24 12:14:16 2026 +0200

    cselim: cond_if_else_store_replacement_limited support skipping on store
one either side: Adjust 'libgomp.graphite/force-parallel-8.c' [PR127053]

    With commit r17-4469-ge35b8dad030bc4164fdaa81dc0a5bfca8c1bbfc3
    "cselim: cond_if_else_store_replacement_limited support skipping on store
one either side [PR127053]",
    we regressed:

        PASS: libgomp.graphite/force-parallel-8.c (test for excess errors)
        PASS: libgomp.graphite/force-parallel-8.c execution test
        [-PASS:-]{+FAIL:+} libgomp.graphite/force-parallel-8.c
scan-tree-dump-times graphite "5 loops carried no dependency" 1
        PASS: libgomp.graphite/force-parallel-8.c scan-tree-dump-times
optimized "loopfn.0" 4
        PASS: libgomp.graphite/force-parallel-8.c scan-tree-dump-times
optimized "loopfn.1" 4

        libgomp.graphite/force-parallel-8.c: pattern found 0 times

    Indeed, instead of "5" it is now "3 loops carried no dependency".

    Per 'diff' of '-fdump-tree-all-details-folding' for
    commit r17-4469-ge35b8dad030bc4164fdaa81dc0a5bfca8c1bbfc3
    "cselim: cond_if_else_store_replacement_limited support skipping on store
one either side [PR127053]"
    reverted vs. current sources, I see in 'force-parallel-8.c.050t.phiopt1':

        [...]
         ;; Function foo (foo, funcdef_no=0, decl_uid=2216, cgraph_uid=3,
symbol_order=2)

        +factoring out stores:
        +       then:
        +# .MEM_30 = VDEF <.MEM_19>
        +x[i_12][j_14] = _3;
        +       else:
        +# .MEM_29 = VDEF <.MEM_19>
        +x[i_12][j_14] = _7;
        +
        +to use phi:
        +cstore_33 = PHI <_3(11), _7(12)>
        +
        +# .MEM_18 = VDEF <.MEM_27>
        +x[i_12][j_14] = cstore_33;
        [...]

    ..., and subsequent simplification (as far as I can quickly tell) of the
IR.

    Restore the previous state via '-fno-expensive-optimizations', to continue
    testing what was tested before.

            PR tree-optimization/127053
            libgomp/
            * testsuite/libgomp.graphite/force-parallel-8.c:
            'dg-additional-options -fno-expensive-optimizations'.

Reply via email to