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

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |egallager at gcc dot gnu.org

--- Comment #10 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to rsand...@gcc.gnu.org from comment #4)
> Author: rsandifo
> Date: Wed May 18 14:01:31 2016
> New Revision: 236393
> 
> URL: https://gcc.gnu.org/viewcvs?rev=236393&root=gcc&view=rev
> Log:
> To: gcc-patc...@gcc.gnu.org
> Subject: PR 71020: Handle abnormal PHIs in tree-call-cdce.c
> From: Richard Sandiford <richard.sandif...@arm.com>
> Gcc: private.sent
> --text follows this line--
> The PR is about a case where tree-call-cdce.c causes two abnormal
> PHIs for the same variable to be live at the same time, leading to
> a coalescing failure.  It seemed like getting rid of these kinds of
> input would be generally useful, so I added a utility to tree-dfa.c.
> 
> Tested on x86_64-linux-gnu.
> 
> gcc/
>       PR middle-end/71020
>       * tree-dfa.h (replace_abnormal_ssa_names): Declare.
>       * tree-dfa.c (replace_abnormal_ssa_names): New function.
>       * tree-call-cdce.c: Include tree-dfa.h.
>       (can_guard_call_p): New function, extracted from...
>       (can_use_internal_fn): ...here.
>       (shrink_wrap_one_built_in_call_with_conds): Remove failure path
>       and return void.
>       (shrink_wrap_one_built_in_call): Likewise.
>       (use_internal_fn): Likewise.
>       (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
>       and return void.  Call replace_abnormal_ssa_names.
>       (pass_call_cdce::execute): Check can_guard_call_p during the
>       initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
>       will always change something.
> 
> gcc/testsuite/
>       * gcc.dg/torture/pr71020.c: New test.
> 
> Added:
>     trunk/gcc/testsuite/gcc.dg/torture/pr71020.c
> Modified:
>     trunk/gcc/ChangeLog
>     trunk/gcc/testsuite/ChangeLog
>     trunk/gcc/tree-call-cdce.c
>     trunk/gcc/tree-dfa.c
>     trunk/gcc/tree-dfa.h

Last chance to backport this to 6-branch

Reply via email to