https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69347
--- Comment #5 from Jeffrey A. Law <law at redhat dot com> --- So the most glaring problem is that we're trying awful hard to find jump threads that ultimately we're going to have to throw away anyway. We're being asked to find jump threads to determine a constant value for an SSA_NAME that is used in an abnormal PHI. While there are cases where in theory that ought to work, we've traditionally rejected jump threads if any of the edges in the thread path or copied blocks are abnormals. The FSM threader is missing those checks, thus it spends an awful lot of time running around in circles in the relatively complex CFG (it's large due to the number of blocks, but also because there's a computed jump inside). I'd bet that if we were to compare gcc-4.9 to gcc-5 we'd see a significant compile-time regression there too, but not as painful as gcc-5 to the current trunk. So I gave up waiting on the current trunk to complete, so call it 19 minutes or whatever, doesn't really matter. r228736 takes ~45 seconds. Filtering out the paths early, ~35 seconds, with nearly 25% of that in the SSA & statement verification code. That's what I'll throw into testing...