[tree-ssa] copy propagation and the abstraction penalty
Daniel Berlin
dberlin@dberlin.org
Thu May 15 18:01:00 GMT 2003
On Thursday, May 15, 2003, at 01:09 PM, Joe Buck wrote:
> On Thu, May 15, 2003 at 10:10:22AM -0400, Diego Novillo wrote:
>
>> There's a few bits still missing, but we should be getting there. In
>> this particular testcase I see:
>>
>> * Structures. We only build enough SSA links to prove liveness.
>> Two alternatives to dealing with this is using ESSA from the
>> SSAPRE engine and/or rely on a scalarization pass.
>
> Since this is the absolutely most common defect in our current C++
> compiler, it seems worth trying to tune optimization to solve it
> directly,
> rather than trying to solve a harder, more general problem.
>
> If copy propagation can store the content of individual structure
> fields,
> then it seems that you don't need the rest of scalarization
But the amount of memory necessary to do SSA on component_refs gets
*really* large unless you share the component_refs for the SSA
variables where possible.
Diego and I went through this back when we had Factored Use-Def chains.
I really think we *should* have structure accesses renamed, and it's
easier than doing pointer renaming (since unions are the only thing you
have to really worry about, and you can calculate the offsets).
It's just something that we had punted on until later (after the great
FUD chain -> renaming switchover).
I guess now = later.
--Dan
More information about the Gcc
mailing list