RSSA backend

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Thu, 17 Jan 2002 17:05:30 -0500 (EST)


Looking at the the slowdowns in the RSSA branch, I think most of them are
explainable.

For (mlton-HEAD) / (mlton-RSSA), we have:

fft                 1.08
peek                2.58
tsp                 1.09

For (mlton-HEAD -drop-pass knownCase) / (mlton-HEAD), we have:

fft                 0.89
peek                0.33
tsp                 0.90

So, for (mlton-HEAD -drop-pass knownCase) / (MLton-RSSA), we would have:

fft                 0.96
peek                0.85
tsp                 0.98

So, that looks fine.


For (mlton-HEAD) / (mlton-RSSA), we have

wc-input1           1.15

Most of that seems attributable to the fact that the HEAD branch
aligns loop headers in the assembly, whereas the RSSA's codegen does not.


For (mlton-HEAD) / (mlton-RSSA), we have

logic               1.13

This one seems to be related to the improved flattener in the HEAD branch;
the hot block in mlton-RSSA is doing some extra selects of a tuple that is
flattened in mlton-HEAD


For (mlton-HEAD) / (mlton-RSSA), we have
ray                 1.11
tyan                1.09

Haven't looked at these.


For (mlton-HEAD) / (mlton-RSSA), we have
hamlet              1.13

Hopefully this is just little bits of flattening and loop alignment.  It's
too big to really look at in detail.


Anyways, that's everything with runtime of 
(mlton-HEAD) / (mlton-RSSA) > 1.02.  And there are only three more that
are (mlton-HEAD) / (mlton-RSSA) > 1.00.  I think we're looking pretty
good.