Commits

Mark Lacey committed 226a8258078
Simplify the pass manager execution logic. Make it a bit more clear that we're alternating between collecting (and then running) function passes, and running module passes. Removes some duplication that was present. Reapplies 9d4d3c8 with fixes for bisecting pass execution.