https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118353

            Bug ID: 118353
           Summary: Implement greedy algorithm for switch jump table
                    cluster finding
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pheeck at gcc dot gnu.org
                CC: ak at gcc dot gnu.org
  Target Milestone: ---

In the switchlower pass the algorithm for finding jump table clusters is at
least quadratic.  There haven't been any concrete problems reported yet, but
theoretically, this could cause long compilation times in some specific cases.

It would be nice to avoid these problems.  To do that we could implement a
greedy algorithm for finding jump table clusters which wouldn't necessarily
find the optimal clustering but would run quickly.  We could switch to this
algorithm when --param switch-lower-slow-alg-max-cases is exceeded (when the
switch has more than this number of cases).  This would be similar to how
switch bit test clustering is currently done.

This was previously discussed in pr118032.

Reply via email to