https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124098

--- Comment #10 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]>

Reply via email to