This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/39074] PTA constraint processing for *x = y is wrong
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Feb 2009 00:29:46 -0000
- Subject: [Bug tree-optimization/39074] PTA constraint processing for *x = y is wrong
- References: <bug-39074-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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-bugzilla@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.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39074