commit: 127aabd4d9cabfe7f6af572bade472d481a5bb67 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Thu Jun 19 16:59:16 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Jun 19 16:59:16 2025 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=127aabd4
16.0.0: drop merged bloat patch Signed-off-by: Sam James <sam <AT> gentoo.org> ...n-PARM_DECLs-again-to-at-least-BITS_PER_W.patch | 107 --------------------- 1 file changed, 107 deletions(-) diff --git a/16.0.0/gentoo/86_all_PR120689-expand-Align-PARM_DECLs-again-to-at-least-BITS_PER_W.patch b/16.0.0/gentoo/86_all_PR120689-expand-Align-PARM_DECLs-again-to-at-least-BITS_PER_W.patch deleted file mode 100644 index a173566..0000000 --- a/16.0.0/gentoo/86_all_PR120689-expand-Align-PARM_DECLs-again-to-at-least-BITS_PER_W.patch +++ /dev/null @@ -1,107 +0,0 @@ -https://inbox.sourceware.org/gcc-patches/aFMXyiQw8fBWE4jl@tucnak/ - -From a483146d61698559fbe3adad9a536b3eb509ecaa Mon Sep 17 00:00:00 2001 -Message-ID: <a483146d61698559fbe3adad9a536b3eb509ecaa.1750281360.git....@gentoo.org> -From: Jakub Jelinek <[email protected]> -Date: Wed, 18 Jun 2025 21:47:22 +0200 -Subject: [PATCH] expand: Align PARM_DECLs again to at least BITS_PER_WORD if - possible [PR120689] - -Hi! - -The following testcase shows a regression caused by the r10-577 change -made for cris. Before that change, the MEM holding (in this case 3 byte) -struct parameter was BITS_PER_WORD aligned, now it is just BITS_PER_UNIT -aligned and that causes significantly worse generated code. -So, the MAX (DECL_ALIGN (parm), BITS_PER_WORD) extra alignment clearly -doesn't help just STRICT_ALIGNMENT targets, but other targets as well. -Of course, it isn't worth doing stack realignment in the rare case of -MAX_SUPPORTED_STACK_ALIGNMENT < BITS_PER_WORD targets like cris, so the -patch only bumps the alignment if it won't go the -> MAX_SUPPORTED_STACK_ALIGNMENT path because of that optimization. - -The change on the testcase is: -bar: -- movl %edi, %eax -- movzbl %dil, %r8d -- movl %esi, %ecx -- movzbl %sil, %r10d -- movl %edx, %r9d -- movzbl %dl, %r11d -- shrl $16, %edi -- andl $65280, %ecx -- shrl $16, %esi -- shrl $16, %edx -- andl $65280, %r9d -- orq %r10, %rcx -- movzbl %dl, %edx -- movzbl %sil, %esi -- andl $65280, %eax -- movzbl %dil, %edi -- salq $16, %rdx -- orq %r11, %r9 -- salq $16, %rsi -- orq %r8, %rax -- salq $16, %rdi -- orq %r9, %rdx -- orq %rcx, %rsi -- orq %rax, %rdi - jmp foo - -Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? - -2025-06-18 Jakub Jelinek <[email protected]> - - PR target/120689 - * function.cc (assign_parm_setup_block): Align parm to at least - word alignment even on !STRICT_ALIGNMENT targets, as long as - BITS_PER_WORD is not larger than MAX_SUPPORTED_STACK_ALIGNMENT. - - * gcc.target/i386/pr120689.c: New test. ---- - gcc/function.cc | 2 +- - gcc/testsuite/gcc.target/i386/pr120689.c | 17 +++++++++++++++++ - 2 files changed, 18 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.target/i386/pr120689.c - -diff --git a/gcc/function.cc b/gcc/function.cc -index a5b245a98e91..a3a74b44b916 100644 ---- a/gcc/function.cc -+++ b/gcc/function.cc -@@ -2937,7 +2937,7 @@ assign_parm_setup_block (struct assign_parm_data_all *all, - if (stack_parm == 0) - { - HOST_WIDE_INT parm_align -- = (STRICT_ALIGNMENT -+ = ((STRICT_ALIGNMENT || BITS_PER_WORD <= MAX_SUPPORTED_STACK_ALIGNMENT) - ? MAX (DECL_ALIGN (parm), BITS_PER_WORD) : DECL_ALIGN (parm)); - - SET_DECL_ALIGN (parm, parm_align); -diff --git a/gcc/testsuite/gcc.target/i386/pr120689.c b/gcc/testsuite/gcc.target/i386/pr120689.c -new file mode 100644 -index 000000000000..cd10cdb487df ---- /dev/null -+++ b/gcc/testsuite/gcc.target/i386/pr120689.c -@@ -0,0 +1,17 @@ -+/* PR target/120689 */ -+/* { dg-do compile { target lp64 } } */ -+/* { dg-options "-O2 -mtune=generic -fno-stack-protector -masm=att" } */ -+/* { dg-final { scan-assembler-not "\t\(movzbl\|shrl\|salq\|orq\)\t" } } */ -+ -+struct S { char a, b, c; }; -+ -+[[gnu::noipa]] -+void foo (struct S x, struct S y, struct S z) -+{ -+} -+ -+void -+bar (struct S x, struct S y, struct S z) -+{ -+ [[gnu::musttail]] return foo (x, y, z); -+} - -base-commit: 9cc6cfdca980a508f72865830a09b353140e738e --- -2.50.0 -
