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.