[Mono-devel-list] SSAPRE: this time it's for real ;-)
massi at ximian.com
Wed Nov 24 17:25:10 EST 2004
OK, this time (if there are no objections) I could really commit
It passes *all* regression tests, which means I enabled SSAPRE
by default in driver.c and then I rebuilt the whole tree (both
mono and mcs).
After that, I executed the following:
make -C mcs/tests test-everything
make -C mcs/errors test-everything
make -C mono/mono/mini rcheck
make -C mono/mono/tests testjit
All gave "normal" results (there were issues in mcs/errors, but
Martin said it's OK, and a couple of things failed in the jit
test, but were not SSAPRE related and failed anyway without it).
I have no nice benchmark results for now.
Anyway, keep in mind that in this first release it is already
a good result the fact that it does not make things *worse* :-)
There are a few issues I should still evaluate carefully (like
the fact that critical edges have bad interferences with branch
optimizations, too many variables are added on average, loop
invariant code motion is still suboptimal...
The compilation time of mscorlib.dll (mono --compile-all) goes
from about 1.310s with "-O=abcrem,-ssapre" to 1.420s with
"-O=abcrem,ssapre" (I included abcrem to have SSA in, otherwise
the comparison would not be fair).
It is worse (like it should be), but not that bad considering all
the work that SSAPRE must do.
I would especially like to see comments on these things:
 The small modification I did in ssa.c, it looks safe, but I
still haven't done a "svn blame" to see why that comment was
there... anyway, removing the comment works ;-)
 I disable SSA when a method has arguments by reference, because
this can lead to aliasing problems if the reference is passed
forward to some other method (I found it the hard way, SSAPRE
didn't work with aliasing).
 There is a "WARNING" log in ssapre.c when ssa.c did not put
the definition bb in the def_bb field, my code puts it in, but
why doesn't the SSA construction code do it in the first place?
(I'm going to investigate this soon, but if anybody just happens
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 85770 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20041124/915d88f8/attachment.bin
More information about the Mono-devel-list