]> git.ipfire.org Git - thirdparty/gcc.git/commit
x86: Properly find the maximum stack slot alignment
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 14 Mar 2023 18:41:51 +0000 (11:41 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 16 Feb 2025 00:19:32 +0000 (08:19 +0800)
commit11902be7a57c0ccf03786aa0255fffaf0f54dbf9
tree9d81001487af11d81d2e0518e5e79072c1e93180
parentfa699c10b5921dd6d76f9f7dca97c0945f74f7ac
x86: Properly find the maximum stack slot alignment

Don't assume that stack slots can only be accessed by stack or frame
registers.  We first find all registers defined by stack or frame
registers.  Then check memory accesses by such registers, including
stack and frame registers.

gcc/

PR target/109780
PR target/109093
* config/i386/i386.cc (ix86_update_stack_alignment): New.
(ix86_find_all_reg_use_1): Likewise.
(ix86_find_all_reg_use): Likewise.
(ix86_find_max_used_stack_alignment): Also check memory accesses
from registers defined by stack or frame registers.

gcc/testsuite/

PR target/109780
PR target/109093
* g++.target/i386/pr109780-1.C: New test.
* gcc.target/i386/pr109093-1.c: Likewise.
* gcc.target/i386/pr109780-1.c: Likewise.
* gcc.target/i386/pr109780-2.c: Likewise.
* gcc.target/i386/pr109780-3.c: Likewise.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
gcc/config/i386/i386.cc
gcc/testsuite/g++.target/i386/pr109780-1.C [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr109093-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr109780-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr109780-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr109780-3.c [new file with mode: 0644]