Daniel Berlin wrote on 06/09/06 19:32:
>> /* This structure is for generic trees. */
>> struct tree_common GTY(())
>> {
>> struct tree_base base;
>> tree chain;
>> tree type;
>> union tree_ann_d *ann;
>> };
> Why is there a chain in tree_common?
>
To avoid wholesale conversion. Initially, we are only interested in
gimple statements and assignment expressions. The idea is to gradually
make all the GIMPLE expressions to inherit from tree_base. The 'chain'
field may be useful for the front-ends (which we are not interested in
messing with).
> The last time i moved value handle to a hash table, FRE/PRE got like 20%
> slower.
> So if you are going to move it, you should probably take careful
> measurements before using a hash table, *or* use an indexed array
> (either is fine by me).
>
> I assume nothing has been done about array accesses or indirect refs yet
> due to no true consensus yet?
>
No. I've been waiting for the feedback to stop. I will send a revised
design soon.
> Also, one thing to throw on your todo list about gimple
> temporaries/ssa_names is that a *lot* of places create one var per
> ssa_name for no good reason.
>
Sure. I'm hoping we can get to 1 or 2 word GIMPLE temps (just the type
and an ID). Having a symbol associated with SSA names is convenient but
we should be able to remove that dependency.