------- Comment #8 from rguenther at suse dot de 2009-02-04 09:35 ------- Subject: Re: PTA constraint processing for *x = y is wrong
On Wed, 4 Feb 2009, dberlin at dberlin dot org wrote: > ------- Comment #7 from dberlin at gcc dot gnu dot org 2009-02-04 00:29 > ------- > Subject: Re: PTA constraint processing for *x = > y is wrong > > On Tue, Feb 3, 2009 at 9:24 AM, rguenther at suse dot de > <gcc-bugzi...@gcc.gnu.org> wrote: > > > > > > ------- Comment #6 from rguenther at suse dot de 2009-02-03 14:24 ------- > > Subject: Re: PTA constraint processing for *x > > = y is wrong > > > > On Tue, 3 Feb 2009, dberlin at dberlin dot org wrote: > > > >> Subject: Re: PTA constraint processing for *x = > >> y is wrong > >> > >> There used to be a *ANYTHING = ANYTHING constraint + ANYTHING > >> containing all the variables pointing to ANYTHING that would have > >> taken care of this. > >> You certainly don't want to dynamically add all variables at solving > >> time yourself, since that can't be optimized. > > > > This is the reason it "works" for ESCAPED, there we have an > > *ESCAPED = ESCAPED constraint. It doesn't work for CALLUSED though, > > I have a simple fix (CALLUSED is not big usually, so just not using > > it as a placeholder fixes the issue here). > > > > For the ANYTHING problem I have just dealt with it in do_ds_constraint > > (I'll post an updated patch soon after testing finished). > > My onl concern is practicality. > The last time I did this solely at solving time it was ridiculously > slow on large cases, since the solver is much better at difference > propagation. Do you remember what testcase(s) this was? I can certainly time removing the shortcutting against handling *ANYTHING (and I'll try to come up with a testcase that is not fixed with just removing the shortcutting). Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39074