RSSA LimitCheck transfer

Matthew Fluet fluet@CS.Cornell.EDU
Tue, 8 Jan 2002 08:55:34 -0500 (EST)


> So your approach is to keep the frontier/limit computation implicit,
> but to make the two labels explicit, right?  That sounds fine to me.
> This would require adding a Runtime variant to Rssa.Block.Kind.t and
> making the limit check transfer look like
> 
> 	     | LimitCheck of {failure: Label.t, (* of Runtime kind *)
> 			      kind: LimitCheck.t,
> 			      success: Label.t} (* of Normal kind *)
> 
> Here, the failure label goto's the success label.
> 
> This is a nice intermediate position that avoids all the complexities
> of exposing frontier and limit in MACHINE.

I like this.  It should save the codegens from needing to create the
runtime return block, because it will be explicit in Machine.