latest contify.fun

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Thu, 22 Feb 2001 15:07:20 -0500 (EST)


> > > It won't matter for funcs.  The edge (Root, f) can only be added once, if
> > > f is unreachable (or if f is main).
> >
> > It might matter, since you are doing a lookup on root's edge list, which could
> > be long. Even 50 traversals of a 50k element list is noticeable.
>
> Ahh.  Maybe you meant you could drop the lookup without the flag.  That makes
> sense.

Yes.

> My intuition is no lookup.  

So, we can drop the lookup everywhere and do special checks for (Root,j)
edges.

Sort of a side question, but does MLton do "unused record slot removal"?
I was going to have both an addEdge and an addEdge' (the latter doing the
linear lookup), and was wondering if MLton would determine that the
addEdge' function is never called, so conceivable could be removed from
the record.  But that would mean chaning the return type of
newJumpFuncGraph, which started seeming overly complicated.