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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[12 regression] large bison |[12/13 regression] large
                   |grammars compilation got a  |bison grammars compilation
                   |lot slower, mainly due to   |got a lot slower, mainly
                   |-Wuninitialized             |due to -Wuninitialized
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
           Keywords|needs-bisection             |
             Status|NEW                         |ASSIGNED

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Also with GCC 13.  The obvious candidate would be the VN run done now to
identify unreachable code and reduce false positives.  I'll refactor timevars
to better track that.

OK, so callgrind points at dominated_by_p_w_unex, called from
rpo_elim::eliminate_avail.  Looks like we manage to run into a
degenerate case of a value with a very large avail set.  The
most avail queries are from

      if (eliminate && ! iterate)
        ...
      else
        /* If not eliminating, make all not already available defs
           available.  */
        FOR_EACH_SSA_TREE_OPERAND (op, gsi_stmt (gsi), i, SSA_OP_DEF)
          if (! avail.eliminate_avail (bb, op))
            avail.eliminate_push_avail (bb, op);

Reply via email to