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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2017-12-20
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> My bisection says it starts with r249104, but that doesn't make sense, so it
> is likely r249097 or r249098 or some other change from that time.

One needs to tweak a bit flags, so with:

$ gcc pr83213.c  -O2 -Wno-implicit-function-declaration -c -freorder-functions
-freorder-blocks-and-partition -fprofile-use

It started in r249013 which is:

SVN revision: 249013
Author: hubicka

        * predict.c (maybe_hot_bb_p): Do not check profile status.
        (maybe_hot_edge_p): Likewise.
        (probably_never_executed): Check for zero counts even if profile
        is not read.
        (unlikely_executed_edge_p): New function.
        (unlikely_executed_stmt_p): New function.
        (unlikely_executed_bb_p): New function.
        (set_even_probabilities): Use unlikely predicates.
        (combine_predictions_for_bb): Likewise.
        (predict_paths_for_bb): Likewise.
        (predict_paths_leading_to_edge): Likewise.
        (determine_unlikely_bbs): New function.
        (estimate_bb_frequencies): Use it.
        (compute_function_frequency): Use zero counts even if profile is
        not read.
        * profile-count.h: Fix typo.

        * g++.dg/tree-ssa/counts-1.C: New testcase.
        * gcc.dg/tree-ssa/counts-1.c: New testcase.

It's also not real trigger as it only fixes some predicates related to hotness
of a basic-block.

Reply via email to