Liveness need nop for place holding as well.

And we need a pass to remove them after platform-dependent code generation.
Driver cleanup.

See NewDriver.hs.

Planning to write a coalescer with better performance.
New *iterative* coalescing framework.

Performance should be much better now.
However, it seems that there is still some un-coalesced moves. Let me
compare it with the non-iteraive version...
Iterative coalescing really works. Merge in.

For large function the compilation speed can be reduced to 10%.
Welp, the previous naive implementation was sooo inefficient :P