https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124759
--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by H.J. Lu <[email protected]>: https://gcc.gnu.org/g:e754b70fe5470b975d31887fa5647f1c92d6522d commit r17-2163-ge754b70fe5470b975d31887fa5647f1c92d6522d Author: H.J. Lu <[email protected]> Date: Tue Apr 7 23:16:38 2026 +0800 x86: Rewrite ix86_find_max_used_stack_alignment Revert changes in ix86_find_max_used_stack_alignment 7b39d7b3b84 Correct x86: Call ix86_access_stack_p only for larger alignment c8a84242e4b Update x86: Call ix86_access_stack_p only for larger alignment f511bf93f94 x86: Call ix86_access_stack_p only for larger alignment a7cce1afee8 x86: Call ix86_access_stack_p only with symbolic constant load b54533a2863 x86: Update stack alignment only if stack is used b9ea3b2ef98 x86: Properly find the maximum stack slot alignment Rewrite ix86_find_max_used_stack_alignment based on RTL points-to info with find_base_term and static_reg_base_value. If RTL points-to info isn't available, 1. Use ix86_decompose_address to check for symbolic displacement. 2. Check MEM_EXPR for incoming parameter reference and non-local reference. Update the maximum stack slot alignment from memory alignment only if its base may point to stack or frame pointers. The compile times of PR target/124165 and PR target/124684 test are unchanged. PR target/109780 PR target/109093 PR target/123210 PR target/124098 PR target/124165 PR target/124684 PR target/124759 PR target/124789 * alias.cc (static_reg_base_value): Moved to rtl.h. (find_base_term): Remove static. * alias.h (find_base_term): New prototype. * function.cc (thread_prologue_and_epilogue_insns): Call init_alias_analysis and end_alias_analysis. * rtl.h (static_reg_base_value): Moved from alias.cc. * config/i386/i386.cc (stack_access_data): Removed. (ix86_find_all_reg_uses_1): Likewise. (ix86_find_all_reg_uses): Likewise. (ix86_access_stack_p): Likewise. (ix86_need_alignment_p_2): Likewise. (ix86_need_alignment_p_1): Likewise. (ix86_need_alignment_p): Likewise. (ix86_update_stack_alignment_2): New function. (ix86_update_stack_alignment_1): Likewise. (ix86_update_stack_alignment): Rewrite. (ix86_find_max_used_stack_alignment): If check_stack_slot is true, call ix86_update_stack_alignment on each INSN. Signed-off-by: H.J. Lu <[email protected]> Co-Authored-By: Richard Biener <[email protected]>
