------- Comment #26 from rguenther at suse dot de 2009-07-15 15:00 ------- Subject: Re: [4.4/4.5 Regression] internal compiler error: in compute_antic, at tree-ssa-pre.c:2501
On Wed, 15 Jul 2009, dberlin at dberlin dot org wrote: > Subject: Re: [4.4/4.5 Regression] internal > compiler error: in compute_antic, at tree-ssa-pre.c:2501 > > On Wed, Jul 15, 2009 at 9:58 AM, rguenther at suse dot > de<gcc-bugzi...@gcc.gnu.org> wrote: > > > > > > ------- Comment #24 from rguenther at suse dot de ?2009-07-15 13:58 ------- > > Subject: Re: ?[4.4/4.5 Regression] internal > > ?compiler error: in compute_antic, at tree-ssa-pre.c:2501 > > > > On Wed, 15 Jul 2009, dberlin at dberlin dot org wrote: > > > >> ------- Comment #23 from dberlin at gcc dot gnu dot org ?2009-07-15 13:46 > >> ------- > >> Subject: Re: ?[4.4/4.5 Regression] internal > >> ? ? ? ? compiler error: in compute_antic, at tree-ssa-pre.c:2501 > >> > >> a_1 shouldn't be in the maximal set. If it is, that's a bug. > > > > D.1251_5 = a_1->flag; > > > > so it's even in exp_gen. > > I expect it got in exp_gen through add_to_exp_gen. > But the check there should have ensured it didn't get into the maximal set. Indeed it's not in there. The maximal set is w/o the patch maximal[0] := { a_3(D) (0003), b_4(D) (0004), {component_ref<flag>,indirect_ref,a...@.mem_13(D) (0005), {component_ref<pos>,indirect_ref,a...@.mem_13(D) (0006), {component_ref<pos>,indirect_ref,b...@.mem_13(D) (0007), {plus_expr,D.1254_10,D.1255_11} (0008) } without them in the maximal-set we seem to get into non-monotonic situations during ANTIC calculation because nobody cleans PHI_GEN, so it will *add* bits. ... ? The logic behind "PHI nodes can't go in the maximal sets because they are not in TMP_GEN, so it is possible to get into non-monotonic situations during ANTIC calculation, because it will *add* bits." sounds weird. Isn't the maximal set only used initially, so it will at most add bits once? The patch btw bootstrapped and tested ok. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321