Hi folks. Now that the branch is bootstrapping with no regressions (C and C++ anyhow), I have run some memory benchmarks to make sure we're on the right path.
So far I have only implemented GIMPLE_MODIFY_STMT which is the tuples counterpart of MODIFY_EXPR. To compare memory usage, I forced a garbage collect in tree_expand_cfg(), right before we convert to RTL, and compared G.allocated between mainline (at the last merge) and the branch. The results are promising, especially taking into consideration that we've only converted MODIFY_EXPRs. Having analyzed about 8000 functions taken from Diego's .i sandbox (includes GCC files, spec files, and a potpourri of other .i files), here are the average memory savings: -O0: -0.243863% -O1: -0.977962% -02: -0.968168% As we have hoped, every single function exhibits memory savings. Yay. I don't know if this merits merging into mainline, or if it's preferable to keep plodding along and convert the rest of the tuples. What do you guys think? Either way, I have my work cut out for me, though I believe the hardest part is over (FLW). Aldy Aldy