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 middle-end/52173] internal compiler error: verify_ssa failed possibly caused by itm


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52173

--- Comment #14 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-09-21 13:27:30 UTC ---
We have broken immediate uses of .MEM_2 (for example).  Before update-ssa:

main ()
{
  int a.1;
  int a.0;
  int i;

  <bb 2>:

  <bb 8>:
  # i_10 = PHI <0(2)>
  # .MEM_11 = PHI <.MEM_3(D)(2)>

  <bb 9>:
  # .MEM_4 = VDEF <.MEM_2>
  __transaction_atomic  // SUBCODE=[ GTMA_HAVE_LOAD GTMA_HAVE_STORE ]
...
  <bb 3>:
  # .MEM_12 = VDEF <.MEM_2>
  __transaction_atomic  // SUBCODE=[ GTMA_HAVE_LOAD GTMA_HAVE_STORE ]
...
  <bb 7>:
  # VUSE <.MEM_2>
  return 0;

but debug_immediate_uses shows:

.MEM_2 : -->2 uses.
# VUSE <.MEM_2>
return 0;
# .MEM_12 = VDEF <.MEM_2>
__transaction_atomic  // SUBCODE=[ GTMA_HAVE_LOAD GTMA_HAVE_STORE ]

that means that update_stmt didn't do its job or it wasn't called.

Aahhhh.  Because in gimple_copy:

  /* Make copy of operands.  */
  if (num_ops > 0)
    {
...
      /* SSA operands need to be updated.  */
      gimple_set_modified (copy, true);
    }

there are zero (real) operands but we _do_ have virtual ops.


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