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

--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> ---
Ok, I've just installed the patch with the debug counter.

I can reproduce it with first bad value with --param=lto-partitions=1:
-fdbg-cnt=ipa_mod_ref:16848

and the difference comes from dealII.ltrans0.ltrans.137t.pre:

distribute_dofs (struct DoFHandler * const this, const struct FiniteElement &
ff, const unsigned int offset):

GOOD:
  <bb 164> [local count: 410235502]:
  # __n_981 = PHI <__n_979(163), __n_978(162)>
  # __tmp$_M_p_984 = PHI <_980(163), _977(162)>
  _982 = (unsigned int) __n_981;
  _983 = 1 << _982;
  _985 = *__tmp$_M_p_984;
  _986 = _983 | _985;
  *__tmp$_M_p_984 = _986;
  operator++ (&cell);
  _25 = BIT_FIELD_REF <MEM[(const struct TriaAccessor *)&cell + 8B], 64, 0>;
  if (_25 != -1)
    goto <bb 165>; [89.00%]
  else
    goto <bb 166>; [11.00%]

  <bb 165> [local count: 365109597]:
  pretmp_2354 = MEM[(int *)&cell + 12B];
  goto <bb 132>; [100.00%]

  <bb 166> [local count: 50703262]:
  # next_free_dof_577 = PHI <offset_13(D)(128), next_free_dof_822(164)>
  this_6(D)->used_dofs = next_free_dof_577;
  MEM[(struct _Bvector_impl_data *)&tmp] ={v} {CLOBBER};
  MEM[(struct __as_base  &)&tmp] ={v} {CLOBBER};

BAD:
  <bb 164> [local count: 410235502]:
  # __n_981 = PHI <__n_979(163), __n_978(162)>
  # __tmp$_M_p_984 = PHI <_980(163), _977(162)>
  _982 = (unsigned int) __n_981;
  _983 = 1 << _982;
  _985 = *__tmp$_M_p_984;
  _986 = _983 | _985;
  *__tmp$_M_p_984 = _986;
  operator++ (&cell);
  _25 = BIT_FIELD_REF <MEM[(const struct TriaAccessor *)&cell + 8B], 64, 0>;
  if (_25 != -1)
    goto <bb 132>; [89.00%]
  else
    goto <bb 165>; [11.00%]

  <bb 165> [local count: 50703262]:
  # next_free_dof_577 = PHI <offset_13(D)(128), next_free_dof_822(164)>
  this_6(D)->used_dofs = next_free_dof_577;
  MEM[(struct _Bvector_impl_data *)&tmp] ={v} {CLOBBER};
  MEM[(struct __as_base  &)&tmp] ={v} {CLOBBER};

Reply via email to