align_dynamic_address would output alignment operations even for a required alignment of 1 byte.
Tested on aarch64-linux-gnu & x86_64-linux-gnu. OK to install? Richard gcc/ * explow.cc (align_dynamic_address): Do nothing if the required alignment is a byte. --- gcc/explow.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/explow.cc b/gcc/explow.cc index aa64d5e906c..0be6d2629c9 100644 --- a/gcc/explow.cc +++ b/gcc/explow.cc @@ -1201,6 +1201,9 @@ record_new_stack_level (void) rtx align_dynamic_address (rtx target, unsigned required_align) { + if (required_align == BITS_PER_UNIT) + return target; + /* CEIL_DIV_EXPR needs to worry about the addition overflowing, but we know it can't. So add ourselves and then do TRUNC_DIV_EXPR. */ -- 2.25.1