Some 4.4 project musings
Andrew MacLeod
amacleod@redhat.com
Mon Feb 11 16:52:00 GMT 2008
Diego Novillo wrote:
> On Fri, Feb 1, 2008 at 3:55 PM, Andrew MacLeod <amacleod@redhat.com> wrote:
>
>
>> 1 - Pass cleanup. There have been rumblings about this, but I haven't
>>
>
> Yes, this is an area that is in desperate need of TLC. Your plan
> looks good to me. We need to have a mechanism to determine whether a
> pass did something, we need to be able to have different pipelines for
> different architectures.
>
> Do you have anything specific in mind? Create a branch? Work
> directly on mainline?
>
I think I'll create a branch since its not completely clear if the
chosen information will be sufficient.. First convert all the passes to
pass some info back in an organized way and then there will be some
collecting/experimenting to do. I'll do the trees first, but make sure
it can be applied to RTL as well.
>
>> 2 - Interface to the virtual operands. The virtual operand web provides
>> what really amounts to low level detail of memory accesses. Every pass
>>
>>
Richi's work will probably change what the web looks like, so this seems
like a good item for me to defer for a bit until we see where we end up.
>> 3 - SRA. There appear to be some deficiencies in SRA, and also how it
>> interacts with the MEMSSA partitioner. I found when looking at some 4.3
>>
>>
> Agreed. SRA needs a new implementation.
>
Richi's work may completely remove need for touching SRA, so I'm going
to punt on this for the time being as well.
>
>> 4 - SSA pressure reduction. I'm throwing this back on the table. I never
>> quite got around to it before, and nothing has changed to resolve the
>> issues. We freely create as much register pressure in the SSA optimizers
>> as we want (as we should be able to). The backend has doing nothing to
>> address the issue and the RTL register allocator is simply swamped by
>> the sheer quantity of live ranges sometimes. Perhaps Vlad's RA will get
>> in this release, and/or perhaps the need for this will be eliminated by
>> something else, but it is something that may help code generation in the
>> short term at least.
>>
>
> What about the RTL expansion from SSA directly? This is an area that
> is going to affect the tuples branch very soon. We are currently
> going into RTL from tuples directly (no TER), but since most passes
> have not been converted, I can yet tell how much of a problem this is.
> In a few weeks we'll hit this problem.
>
>
Thats a lot more work, and by itself may actually increase pressure in
the average case :-) It will be interesting to see if anything has
changed in the past few years regarding RTL that gets generated without
TER. It would be nice if it wasn't needed, but I'm not aware of work
which has changed enough to help select better RTL patterns. we'll see
:-) It will be interesting to see what happens. As an easy experiment,
have you tried a straight comparison with -fno-tree-ter on SPEC or
anything like that? It may give you some idea of what to expect.
The pressure is likely to go up since TER usually moves defs closer to
the use... I have no data whatsoever, but I would think that TER
reduces the pressure slightly in the average case. The larger
pathological cases are a little more unpredictable.
Andrew
More information about the Gcc
mailing list