[MLton] Int Overflow detection
Matthew Fluet
fluet@cs.cornell.edu
Sun, 20 Mar 2005 16:51:17 -0500 (EST)
>> And given the high tech representations that mlton has perhaps some
>> of these optimizations would not be incredibly difficult to
>> implement.
>
> Unfortunately, we haven't taken advantage of loops nearly as much as
> we should have. Some folks gave a pretty good try at implement
> SSA-PRE in MLton, which in principle should enable a lot of code
> motion. But it never got beyond the experimental stage.
I agree that SSA-PRE in MLton would be very beneficial; although, I will
point out that the loop invariant code that was identified in the
assembly does not correspond to loop invariant's at the SSA or SSA2 ILs.
In the assembly, it corresponded to extracting the array pointer from the
ML stack; because stack allocated variables are never assumed to be in
registers across basic blocks, we do the extraction each time around the
loop. This is a limitation of the native codegen, and there is the option
to treat stack allocated variables as candidates for register allocation
across basic blocks, but it slows down the codegen by a considerable
ammount.