http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60315
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Actually the problem here seems to be that we soon work out that most of edges are never executed, yet we still inlining them. The metrics are not growing then so we take time to hit the limits. I guess with ability to redirect edges to unreachable, we can kill nodes early. BTW the cache is not really intended to help the updates, it only avoids repeated recomputations. This is not really a dataflow problem - we only walk the inline trees that (modulo bugs) should not grow arbitrarily large because of inlining limits. Not seeing that the switch is controlled by parameters sucks indeed. Will add code going thorugh casts.