> Why are these two passes conflicting: UnifyFunctionExitNodes and LowerSwitch?
Because they invalidate each other. Neither preserves the other.
I thought so. However, it's not clear to me why "preservation" is required at all?
That's just an optimization. The PassManager should be able to run passes with
interdependencies by serializing them (for example in the order as they were
added to the queue).
This way, users simply have no other choice but to write batch scripts, unless
if I'm missing something.