On Wednesday 21 December 2005 10:37, Zdenek Dvorak wrote: > However, if we instead put a really minimal DECL node (we allocate only > one per type, and consisting just of struct tree_common -- 16 bytes) as > a SSA_NAME_VAR, things are much easier to get working. > I see that you are creating a tcc_declaration in your patch, though. I've been thinking along similar lines, but my idea was to do something similar to what we have with memory tags. A DECL node derived from decl_minimal that is used when creating *all* compiler temporaries.
I like the idea of creating SSA_NAMEs directly for temporaries that are known to be set only once. However, perhaps this would not be completely necessary if we were to use a really minimal decl node for all temporaries? In any case, I agree with the general idea. Another couple of things I have in mind is the reduction/elimination of variable annotations. I'd like to convert some of the fields into on-the-side tables whenever it would save us memory and not introduce slowdowns. And also, I think I'm going to need to make SSA_NAMEs independent from DECLs for reducing the memory used by virtual operands. One of the grouping ideas is to have a single virtual SSA name cover a set of variables, that'd involve bitmaps or some other grouping mechanism, but I'm still undecided. Perhaps we could create a branch to work on these issues.