RSSA

Matthew Fluet fluet@CS.Cornell.EDU
Tue, 8 Jan 2002 13:23:32 -0500 (EST)


I checked in my changes to the x86-codegen directory for the Machine IL.
It's completely untested, but mostly type-checks.

I haven't commited changes in the backend or c-codegen, and the
x86-codgen relies on a slightly modified Machine.Block.kind datatype.
But, should be simple enough to adapt.

In particular, though, I need Machine.Block.Kind.t variants like:

		   | CReturn of {prim: Prim.t,
				 dst: Operand.t option}
		   | Runtime of {prim: Prim.t}

in order to know what post processing to do.  (No prim that enters the
runtime currently needs post processing, but this seems the right way to
do it.)  The limit check failure branch should go to a block with kind
Runtime {prim = Prim.gcCollect}.

You don't need the return type in CReturn, because Machine.Operand.ty can
always recover the type from dst if we need it.