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

--- Comment #17 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:16465ceb06cc1f65cfca3c0eb2c1ee27ab03bdfd

commit r12-1252-g16465ceb06cc1f65cfca3c0eb2c1ee27ab03bdfd
Author: liuhongt <hongtao....@intel.com>
Date:   Tue Jun 1 09:00:57 2021 +0800

    CALL_INSN may not be a real function call.

    Use "used" flag for CALL_INSN to indicate it's a fake call. If it's a
    fake call, it won't have its own function stack.

    gcc/ChangeLog

            PR target/82735
            * df-scan.c (df_get_call_refs): When call_insn is a fake call,
            it won't use stack pointer reg.
            * final.c (leaf_function_p): When call_insn is a fake call, it
            won't affect caller as a leaf function.
            * reg-stack.c (callee_clobbers_any_stack_reg): New.
            (subst_stack_regs): When call_insn doesn't clobber any stack
            reg, don't clear the arguments.
            * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
            a insn.
            * shrink-wrap.c (requires_stack_frame_p): No need for stack
            frame for a fake call.
            * rtl.h (FAKE_CALL_P): New macro.

Reply via email to