This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26796] [4.2 Regression] ACATS ICE c34002a c52005 spurious storage_error
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Mar 2006 15:38:50 -0000
- Subject: [Bug tree-optimization/26796] [4.2 Regression] ACATS ICE c34002a c52005 spurious storage_error
- References: <bug-26796-7210@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from law at redhat dot com 2006-03-28 15:38 -------
Subject: Re: [4.2 Regression] ACATS ICE c34002a c52005
spurious storage_error
On Wed, 2006-03-22 at 19:28 +0000, ebotcazou at gcc dot gnu dot org
wrote:
>
> ------- Comment #2 from ebotcazou at gcc dot gnu dot org 2006-03-22 19:27 -------
> The 2 failures have been introduced by the following change:
>
> 2006-03-20 Jeff Law <law@redhat.com>
>
> * tree-pass.h (pass_phi_only_copy_prop): Delete.
> (pass_phi_only_cprop): Declare.
> * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
> with phi_only_cprop
> * tree-ssa-dom.c (degenerate_phi_result): New function.
> (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
> (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
> (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
> (eliminate_degenerate_phis): Likewise.
> (pass_phi_only_cprop): New pass descriptor.
> * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
> support code. Callers updated.
> (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
> (store_copy_prop): Likewise.
> (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
The problem is that phi-cprop managed to perform some propagations
which ultimately led it to proving certain EH edges were not executable.
So we dutifully purged the EH edges, which in turn wiped out the
dominator tree. Opps. I wasn't aware of that little tidbit
(forwprop doesn't use the DOM tree, so it doesn't have this
issue).
As it turns out DOM already has a mechanism to deal with queued
blocks needing EH edge cleanups. So I tweaked the phi-cprop
pass to use that existing mechanism.
Bootstrapped and regression tested on i686-pc-linux-gnu (ada included).
Fixes c340002a and c52005.
------- Comment #6 from law at redhat dot com 2006-03-28 15:38 -------
Created an attachment (id=11137)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11137&action=view)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26796