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.