https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117964
Bug ID: 117964 Summary: duplicate computed gotos will happily duplicate blocks with 9189 successors Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- The PR26854 testcase (http://www.math.purdue.edu/~lucier/gcc/test-files/bugzilla/1/all.i.gz) shows that maybe_duplicate_computed_goto while applying a limit on the insn size copied per computed goto duplicated, it does not limit the number of computed goto copies it creates (EDGE_COUNT (bb->preds)) or the number of outgoing edges it will duplicate by this (EDGE_COUNT (bb->succs)). For the PR we have 5739 predecessors and 9189 successors for the factored computed goto block which results in 3GB worth of edges to be created. It will also, for each level of duplication (via the recursion) add an additional BARRIER given emit_barrier_after_bb does not check whether there's one present already (we seem to be in CFGRTL for this pass).