GCC 3.5 Status (2004-08-29)
Daniel Berlin
dberlin@dberlin.org
Mon Aug 30 00:53:00 GMT 2004
On Sun, 29 Aug 2004, Mark Mitchell wrote:
> Andrew Pinski wrote:
>
>>
>> On Aug 29, 2004, at 4:17 PM, Mark Mitchell wrote:
>>
>>> * Aliasing improvements for structure fields [Berlin]
>>
>>
>> Actually without this, we will produce wrong code so I think this one
>> should be rethought about and not delaying it until 3.6.
>
> I think you are talking about something different.
>
> In particular, this is work that Dan said he could not complete for several
> months. I fail to believe that PR 15262 cannot be fixed without adding lots
> of new optimization infrastructure.
This is correct (the time estimate).
Being realistic, without help, it will be several months before it can be
complete (IE when it's not causing regressions and all latent bugs are
fixed).Of course, if it doesn't expose any latent bugs, causes no
testsuite failures, a good design for how to integrate the information
is quickly agreed upon, and others were to help out with the integrating
(there are a few pieces that should be able to be parallelized once a
design is agreed upon), the time could be significantly shortened.
A lot of that time is going to be spent in the infrastructure necessary
to make this useful, which encompasses a lot of
the low hanging fruit by definition (simply saying that a store to a.b
doesn't kill the entire value of a).
In fact, this is actually where most of these months is going to be spent
(and fixing latent bugs/problems that pop up as a result).
Actually writing something that produces the alias information we want
(knowing whether p->a and p->b alias, knowing whether x[0] and x[1]
alias), and making sure it gives correct
results for corner cases, is what i saw as the easy part, at least for me.
This is, in fact, done, bootstrapping, and passes all it's internal
checking during bootstrap. I've tested it on some wonky cases, and it
produces what appear to be correct results.
I can post it tommorrow if people want to see it.
There are improvements that could be made to the results, of
course, and TODO's, but none that were so important as the basic
information.
Using the information, of course, is the part that is going to require the
architectural changes, design work, etc.
I just sent some email to Diego and RTH this morning to see if they had
any thoughts about what to do here, along with a somewhat simplistic idea
of how to solve the "a.b vs a.c" issue.
I'll note that a design is agreed upon for the "make stores
to a.b not kill a.c" issue, if others were to help implement it, we could
probably tackle it before 3.5 (IE in the next month), and i would happily
do the rest of the work alone (if need be) for "p->a vs p->b, a[0] vs
a[1]", etc
--Dan
More information about the Gcc
mailing list