CVS hackery
Stephen Weeks
MLton@sourcelight.com
Tue, 9 Oct 2001 11:52:53 -0700
> Sounds good. What's the trajectory from here? Here are a couple of
> things from my "when SSA exists todo":
...
> contify, unusedArgs and commonBlock are the CPS optimizations I'm most
> familiar with, so I know what would be different in their translation to
> SSA. commonSubexpr (and I assume others) will probable be fairly simple,
> but (just?) require a traversal of the dominator tree rather than the
> lexical scope. I don't know what happens to raise-to-jump (that's got to
> be all different with the new exception model). The shrinker probably
> needs a careful translation.
Your list looks good. I'd like to move towards elimination of the CPS IL as
quickly as possible, working from backend to front end. We're going to be
paying a cost in self-compiles and compile size with all this duplicate code.
I hope to take the shrinker, constant-propagation, useless, and simplify-types,
since they're pretty hairy. Also, poly-equal will be a bear because it requires
adding the DirectExp interface.
You can take the passes you mentioned. Also, I think remove-unused should be
easy enough, and you are familiar with it.
As to the other ones, let's announce whenever we commence on a pass as we work
back. Henry, this reminds me, we would like some way to add a keyword (EMAIL)
that causes cvs commits to send email.
Raise-to-jump goes away, since raises now only raise to the caller. Passes that
move function bodies (contificication, inlining) have to do raise-to-jump
themselves, but it's no harder than what they currently do in keeping the
continuation straight. After all, the exception stack is just another
continuation.
I hereby announce that I am working on the shrinker, on the ssa-branch until we
get CVS fixed.