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.