"root" of ChunkPerFunc chunk

Henry Cejtin henry@sourcelight.com
Wed, 1 Nov 2000 17:42:35 -0600


I'm  confused  about how the results of the add could be used in the handler.
Assuming everything is in A-normal form, the result of the add is going  into
a  new (val) binding, so nothing can be closed over it.  (If it weren't in A-
normal form then you could do something like
    x := y + z
and it could make the contents of the ref x be the destination.)

As to the block linearization, what I used long ago in something else was  to
just  start  at  an arbitrary place and every time I come to an unconditional
jump, if the target hasn't already been done, do it now (dropping the  jump).
Thus the only unconditional jumps are backwards.

I  completely  agree  that  this far in the back end isn't the right place to
replace checking-arithmetic with unchecking versions.  It is important though
that the unchecking versions are available (for earlier passes to use).

Note,  you  talked  about  simplifying  multiplies by -1, but these can still
overflow.

Did you do any runs to see how much the checking is costing?