aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.cc
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2023-03-14 11:41:51 -0700
committerH.J. Lu <hjl.tools@gmail.com>2025-04-28 21:29:00 +0800
commitb9ea3b2ef98048f93b02fcd6ff51777bce1676c2 (patch)
tree0ff9f36da807530f53343a4b119335f60a13879d /gcc/fortran/expr.cc
parent7a16ef443b13fff9537baa533597836c57131262 (diff)
downloadgcc-b9ea3b2ef98048f93b02fcd6ff51777bce1676c2.zip
gcc-b9ea3b2ef98048f93b02fcd6ff51777bce1676c2.tar.gz
gcc-b9ea3b2ef98048f93b02fcd6ff51777bce1676c2.tar.bz2
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 (stack_access_data): New. (ix86_update_stack_alignment): Likewise. (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> Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
Diffstat (limited to 'gcc/fortran/expr.cc')
0 files changed, 0 insertions, 0 deletions