commit email: explicit arrays and limit checks

Matthew Fluet fluet@cs.cornell.edu
Mon, 18 Feb 2002 07:58:41 -0500 (EST)


> There is one bug remaining, with the x86-codegen replacing Word32_addCheck of
> one with an increment, which doesn't preserve the carry flag, but Matthew will
> fix that soon.

I'll check in a short term fix before the end of the day; in the long
term, though, I want to go through and annotate the use_def_kill of all
the instructions with their status flags and propagate it around as
liveness information.  I've got too many hacks in there right now to catch
specific cases, and I'm probably missing some corner cases.  Also, that
would let me translate some adds and multiplies into lea instructions when
we can verify that the flags aren't needed; unfortunately, with the new
limit check interface, this won't be as helpful, because all of the
explicit limit check calculations are checking for overflow.  But, in the
longer run, I think we could calculate bytes in Word64, which would never
overflow (assuming we leave Array.maxLength = valOf (Int32.maxInt)); 
although, that we couldn't turn back into lea-s.