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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #45730|0                           |1
        is obsolete|                            |
  Attachment #46544|0                           |1
        is obsolete|                            |

--- Comment #12 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Created attachment 46584
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46584&action=edit
Another WIP patch

Thanks for tracking that down, indeed we found that the speculation
was undoing inlining decisions which is something that is generally
unsupported by the inliner.

This patch fixes that and it indeed survives LTO bootstrap of all
languages (profiled LTO bootstrap is underway).  Unfortunately, it
causes the following tests to fail:

FAIL: g++.dg/tree-prof/devirt.C scan-tree-dump-times tracer "folding virtual
function call to virtual unsigned int mozPersonalDictionary::_ZThn16" 1
FAIL: g++.dg/tree-prof/devirt.C scan-tree-dump-times tracer "folding virtual
function call to virtual unsigned int mozPersonalDictionary::AddRef" 1

So far all my attempts to quickly fix this without actually having to
understand what is going on in the testcase have failed.  I'm afraid
I'll have to look deeper into it which will take time, so far I did
not even manage to reproduce the problem manually.

Reply via email to