On Sat, 14 Jun 2014, Eric Botcazou wrote: > > 2014-06-13 Richard Biener <rguent...@suse.de> > > > > * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): > > Rewrite to propagate the VN result into all uses where > > possible and to remove stmts becoming dead because of that. > > (eliminate): Generalize stmt removal handling, remove in > > reverse dominator order to support proper debug stmt > > generation. Update stmts before removing stmts. > > * tree-ssa-propagate.c (propagate_tree_value): Remove > > bogus assert. > > This breaks Ada bootstrap with non-standard build options (-gnatpgn). I have > attached a reduced testcase, but you need the Ada SJLJ scheme to see it so > the > following procedure can be used: > > 1. Put p.ad[bs] in $(BUILDDIR) > 2. Do "gcc/gnat1 -quiet p.adb -I $(SRCDIR)/gcc/ada -I gcc/ada -O2 -gnatn" > > eric@polaris:~/build/gcc/native> gcc/gnat1 -quiet p.adb -I ~/svn/gcc/gcc/ada - > I gcc/ada -O2 -gnatn > +===========================GNAT BUG DETECTED==============================+ > | 4.10.0 20140614 (experimental) [trunk revision 211664] (x86_64-suse-linux) > GCC error:| > | in forward_edge_to_pdom, at tree-ssa-dce.c:1042 | > | Error detected around /home/eric/svn/gcc/gcc/ada/sinfo.adb:6010:8 |
Seems to be an issue with the assert 1041 /* The resulting PHI if not dead can only be degenerate. */ 1042 gcc_assert (degenerate_phi_p (phi)); and the fact that the PHI is abnormal and thus while it really _is_ degenerate value-wise, we can't easily prove it (by that predicate). Not sure what to do here but adjust it to gcc_assert (degenerate_phi_p (phi) || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_phi_result (phi))); So - can you check if bootstrap works with that? Thanks, Richard.