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

Sam James <sjames at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |15.0
            Summary|ICE when building           |[15 regression] ICE when
                   |firefox-134.0 with PGO and  |building firefox-134.0 with
                   |LTO                         |PGO and LTO

--- Comment #7 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #6)
> Do you know why compatible_p returns false? It looks like mixing IPA and
> function local profiles together..

```
Breakpoint 2.2, profile_count::operator+= (this=0x7ffff6e7e888, other=...) at
/usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/profile-count.h:932
932               gcc_checking_assert (compatible_p (other));
(gdb) p other
$1 = (const profile_count &) @0x7fffffff72c0: {
  static n_bits = 61,
  static max_count = 2305843009213693950,
  static uninitialized_count = 2305843009213693951,
  m_val = 3694,
  m_quality = ADJUSTED
}
(gdb) call compatible_p(other)
$3 = false
[...]
Breakpoint 3.10, profile_count::compatible_p (this=0x7ffff6e7e888, other=...)
at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/profile-count.h:783
783               || other == zero ())
(gdb) n
787           if (ipa ().nonzero_p ()
(gdb) n
790           if (other.ipa ().nonzero_p ()
(gdb) n
791               && !(ipa () == *this))
(gdb) n
during IPA pass: cp
/var/tmp/portage/www-client/firefox-134.0/work/firefox-134.0/media/ffvpx/libavutil/tx.c:
At top level:
/var/tmp/portage/www-client/firefox-134.0/work/firefox-134.0/media/ffvpx/libavutil/tx.c:939:1:
internal compiler error: in operator+=, at profile-count.h:932
0x555556e495aa internal_error(char const*, ...)
```

so your theory is right, I think.

Reply via email to