------- 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 <[EMAIL PROTECTED]> > > * 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