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

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May  8 17:06:46 2019
New Revision: 271013

URL: https://gcc.gnu.org/viewcvs?rev=271013&root=gcc&view=rev
Log:
        PR c++/59813
        PR tree-optimization/89060
        * tree-ssa-live.h (live_vars_map): New typedef.
        (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
        * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
        (struct compute_live_vars_data): New type.
        (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
        live_vars_at_stmt, destroy_live_vars): New functions.
        * tree-tailcall.c: Include tree-ssa-live.h.
        (live_vars, live_vars_vec): New global variables.
        (find_tail_calls): Perform variable life analysis before punting.
        (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
        * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
        member.
        * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
        Perform variable life analysis to select variables that really need
        clobbers added.
        (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
        instead set id->eh_landing_pad_dest and assert it is the same.
        (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.

        * gcc.dg/tree-ssa/pr89060.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr89060.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-inline.c
    trunk/gcc/tree-inline.h
    trunk/gcc/tree-ssa-live.c
    trunk/gcc/tree-ssa-live.h
    trunk/gcc/tree-tailcall.c

Reply via email to