This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/62070] ICE: verify_ssa failed


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-checking
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
            Summary|[4.10 Regression] ICE:      |ICE: verify_ssa failed
                   |verify_ssa failed           |
      Known to fail|                            |4.10.0, 4.6.4, 4.7.4,
                   |                            |4.8.3, 4.9.1

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fails since 4.6 at least.  Predictive commoning gets confused.  Not sure if
really a regression.  Note that you need checking enabled.

We end up here

static void
execute_pred_commoning_chain (struct loop *loop, chain_p chain,
                             bitmap tmp_vars)
{
  unsigned i;
  dref a;
  tree var;

  if (chain->combined)
    {
      /* For combined chains, just remove the statements that are used to
         compute the values of the expression (except for the root one).  */
      for (i = 1; chain->refs.iterate (i, &a); i++)
        remove_stmt (a->stmt);

failing to realize that unrolling may end up creating new PHIs.

Note that predcom does just fine in the end - it just is "broken" by
the intermittent verification in gimple_duplicate_loop_to_header_edge.
That is already skipped in some cases so just remove it completely now.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]