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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

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

commit r15-7946-ge1da6283a1cbd5db474c0f7e5cca9b9876768199
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Tue Mar 11 10:57:30 2025 +0100

    complex: Don't DCE unused COMPLEX_EXPRs for -O0 [PR119190]

    The PR116463 r15-3128 change regressed the following testcase at -O0.
    While for -O1+ we can do -fvar-tracking-assignments, for -O0 we don't
    (partly because it is compile time expensive and partly because at -O0
    most of the vars live most of their lifetime in memory slots), so if we
    DCE some statements, it can mean that DW_AT_location for some vars won't
    be available or even it won't be possible to put a breakpoint at some
    particular line in the source.
    We normally perform dce just in the subpasses of
    pass_local_optimization_passes or pass_all_optimizations or
    pass_all_optimizations_g, so don't do that at all for -O0.  So the complex
    change is an exception.  And it was described as a way to help forwprop and
    reassoc, neither applies to -O0.

    This regresses PR119120 again though, I'll post a patch for that
momentarily.

    2025-03-11  Jakub Jelinek  <ja...@redhat.com>

            PR debug/119190
            * tree-complex.cc (update_complex_assignment, tree_lower_complex):
            Perform simple dce on dce_worklist only if optimize.

            * gfortran.dg/guality/pr119190.f90: New test.

Reply via email to