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.