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

Reply via email to