This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/40321] [4.4/4.5 Regression] internal compiler error: in compute_antic, at tree-ssa-pre.c:2501



------- 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.

The history here:

We didn't use to have a check for domination in avail_out.
As a result, values only died if they were in TMP_GEN.
(This is what is *supposed* to happen. At some point we added a check
for availability to valid_in_sets and i can't remember why).
PHI values are not in TMP_GEN, so they will never disappear from the
set once in it.

Nowadays, it may be safe to put phi values in there.
Honestly, the availability check in valid_in_sets worries me, because
it shouldn't be necessary.
Names should be prevented from being ANTIC past the point of their
definition through subtraction of TMP_GEN.


On Wed, Jul 15, 2009 at 8:54 AM, rguenth at gcc dot gnu dot
org<gcc-bugzilla@gcc.gnu.org> wrote:
>
>
> ------- Comment #21 from rguenth at gcc dot gnu dot org ?2009-07-15 12:54 -------
> Correction - only b_2 is missing from the maximal set, a_1 is there because
> it is used in non-PHI nodes. ?The fix indeed looks quite obvious to me now ...
>
> For reference, here is the function before PRE again:
>
> <bb 2>:
>
> <bb 3>:
> ?# a_1 = PHI <a_3(D)(2), b_2(6)>
> ?# b_2 = PHI <b_4(D)(2), a_1(6)>
> ?D.1251_5 = a_1->flag;
> ?if (D.1251_5 != 0)
> ? ?goto <bb 5>;
> ?else
> ? ?goto <bb 6>;
>
> <bb 6>:
> ?goto <bb 3>;
>
> <bb 5>:
>
> <bb 4>:
> ?# a_14 = PHI <a_1(5)>
> ?# b_15 = PHI <b_2(5)>
> ?D.1254_10 = a_14->pos;
> ?D.1255_11 = b_15->pos;
> ?D.1253_12 = D.1255_11 + D.1254_10;
> ?return D.1253_12;
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]