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

--- Comment #12 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alex Coplan <acop...@gcc.gnu.org>:

https://gcc.gnu.org/g:9759f6299d9633cabac540e5c893341c708093ac

commit r15-3585-g9759f6299d9633cabac540e5c893341c708093ac
Author: Alex Coplan <alex.cop...@arm.com>
Date:   Sat Aug 3 17:02:36 2024 +0000

    lto: Stream has_unroll flag during LTO [PR116140]

    When #pragma GCC unroll is processed in
    tree-cfg.cc:replace_loop_annotate_in_block, we set both the loop->unroll
    field (which is currently streamed out and back in during LTO) but also
    the cfun->has_unroll flag.

    cfun->has_unroll, however, is not currently streamed during LTO.  This
    patch fixes that.

    Prior to this patch, loops marked with #pragma GCC unroll that would be
    unrolled by RTL loop2_unroll in a non-LTO compilation didn't get
    unrolled under LTO.

    gcc/ChangeLog:

            PR libstdc++/116140
            * lto-streamer-in.cc (input_struct_function_base): Stream in
            fn->has_unroll.
            * lto-streamer-out.cc (output_struct_function_base): Stream out
            fn->has_unroll.

    gcc/testsuite/ChangeLog:

            PR libstdc++/116140
            * g++.dg/ext/pragma-unroll-lambda-lto.C: New test.

Reply via email to