https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68198
--- Comment #5 from Jeffrey A. Law <law at redhat dot com> --- I've reproduced this issue. We've got a reasonably sized switch statement that the FSM threader is able to optimize. The problem is we go from something 2k edges and 1k blocks to 70k edges and 35k blocks. I'll have to put in some instrumentation, but early indications are most of the paths are redundant. ie, many of the incoming blocks thread to the same outgoing block. The FSM threader creates a distinct copy for each of those cases where the old threader knew how to factor them into a single path. I probably won't get much further than that while I'm on the road.