This patch reverts a previous change (D14996) which was blowing up compilation times under certain circumstances. I don't think the conditions which motivated that change can occur since the introduction of catchswitch statements.
Reverting this change led to a couple of tests failing because the order of exception handlers is different than the tests expect, but I do not believe the difference is significant so I just updated the tests to reflect the new order. I'm posting this review primarily to get a second opinion on that judgment.