diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2024-12-01 17:12:34 +0100 |
---|---|---|
committer | Georg-Johann Lay <avr@gjlay.de> | 2024-12-05 11:59:53 +0100 |
commit | b78c0dcb1b6b523880ee193698defca3ebd0b3f7 (patch) | |
tree | 04c57b46604578e4105533fa1d83e906a548b574 /libcpp/files.cc | |
parent | f7b5527d1b48b33d8ab633c1e9dcb9883667492a (diff) | |
download | gcc-b78c0dcb1b6b523880ee193698defca3ebd0b3f7.zip gcc-b78c0dcb1b6b523880ee193698defca3ebd0b3f7.tar.gz gcc-b78c0dcb1b6b523880ee193698defca3ebd0b3f7.tar.bz2 |
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().
Diffstat (limited to 'libcpp/files.cc')
0 files changed, 0 insertions, 0 deletions