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).

Reply via email to