RSSA

Matthew Fluet fluet@CS.Cornell.EDU
Mon, 7 Jan 2002 19:40:48 -0500 (EST)


> > > O.k.  Then that means I'll never see a case where extraBytes = 0.
> > 
> > ?  But you can, for example if there is no extra allocation.  Then we
> > would have extraBytes = 12, but for LIMIT_SLOP, so we really have
> > extraBytes = 0.
> 
> You're right.

What it basically comes down to is should I special case:

  Array {numElts, bytesPerElt as 0, extraBytes as 0}

or will we turn this into a Heap limit check for 0 bytes and just special
case

  Heap {bytes as 0, stackToo}

Likewise, I could imagine turning

  Array {numElts as Operand.Int numElts', bytesPerElt, extraBytes}

into a standard Heap check.

But, I don't know how this figures in with your notion of checking limit
check insertions; I would imagine leaving Array kinds associated with
Array allocations would make it easier.