Message ID | mpta5rs9hjr.fsf@arm.com |
---|---|
State | New |
Headers | show |
Series | explow: Avoid unnecessary alignment operations | expand |
On Sun, Nov 5, 2023 at 7:33 PM Richard Sandiford <richard.sandiford@arm.com> wrote: > > 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? OK > 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 >
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. */