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

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

https://gcc.gnu.org/g:8f3d0c8c3dd02d94635517c68fd314cbceed8373

commit r15-2741-g8f3d0c8c3dd02d94635517c68fd314cbceed8373
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Aug 2 13:49:34 2024 +0200

    middle-end/111821 - compile-time/memory-hog with large copy

    The following fixes a compile-time/memory-hog when performing a
    large aggregate copy to a small object allocated to a register.
    While store_bit_field_1 called by store_integral_bit_field will
    do nothign for accesses outside of the target the loop over the
    source in store_integral_bit_field will still code-generate
    the read parts for all words in the source.  The following copies
    the noop condition from store_bit_field_1 and terminates the
    loop when it runs forward or avoid code-generating the read parts
    when not.

            PR middle-end/111821
            * expmed.cc (store_integral_bit_field): Terminate the
            word-wise copy loop when we get out of the destination
            and do a forward copy.  Skip the word if it would be
            outside of the destination in case of a backward copy.

            * gcc.dg/torture/pr111821.c: New testcase.

Reply via email to