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