https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107957
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Georg-Johann Lay <g...@gcc.gnu.org>: https://gcc.gnu.org/g:b78c0dcb1b6b523880ee193698defca3ebd0b3f7 commit r15-5937-gb78c0dcb1b6b523880ee193698defca3ebd0b3f7 Author: Georg-Johann Lay <a...@gjlay.de> Date: Sun Dec 1 17:12:34 2024 +0100 AVR: target/107957 - Split multi-byte loads and stores. This patch splits multi-byte loads and stores into single-byte ones provided: - New option -msplit-ldst is on (e.g. -O2 and higher), and - The memory is non-volatile, and - The address space is generic, and - The split addresses are natively supported by the hardware. gcc/ PR target/107957 * config/avr/avr.opt (-msplit-ldst, avropt_split_ldst): New option and associated var. * common/config/avr/avr-common.cc (avr_option_optimization_table) [OPT_LEVELS_2_PLUS]: Turn on -msplit_ldst. * config/avr/avr-passes.cc (splittable_address_p) (avr_byte_maybe_mem, avr_split_ldst): New functions. * config/avr/avr-protos.h (avr_split_ldst): New proto. * config/avr/avr.md (define_split) [avropt_split_ldst]: Run avr_split_ldst().