polyEqual

Matthew Fluet fluet@CS.Cornell.EDU
Sun, 4 Nov 2001 09:20:55 -0500 (EST)


Initial port of polyEqual from CPS to SSA.

There are some short comings in the DirectExp interface:
1. I only ported the necessary functions for polyEqual.
2. I couldn't figure out how to port the "reify" function correctly;
   this means that all of the equality functions have exactly one return
   transfer; all of the various branches join up to use this return.
3. There is an implicit assumption that a DirectExp is translated in
   a context with no local handler; so Calls always use Handler.CallerHandler
   and Raises are always Raises (not Gotos).  This certainly needs to be
   changed if there is any reason for including the CpsTree.DirectExp.handlee
   constructor.


Steve, you'll probably want to look at DirectExp sometime.  I'm debating
changing the send* functions from 
t * ??? -> Label.t * Block.t list 
to 
t * ??? -> Block.t list 
and let it implicit that the start label is the label of the first block
in the list.