+2018-12-02 Jan Hubicka <jh@suse.cz>
+
+ * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges):
+ trust precise profiles.
+
2018-12-02 Jakub Jelinek <jakub@redhat.com>
* tree-nested.c (convert_nonlocal_omp_clauses,
if (probably_never_executed_bb_p (cfun, bb))
{
+ cold_bb = true;
+
/* Handle profile insanities created by upstream optimizations
by also checking the incoming edge weights. If there is a non-cold
incoming edge, conservatively prevent this block from being split
into the cold section. */
- cold_bb = true;
- FOR_EACH_EDGE (e, ei, bb->preds)
- if (!probably_never_executed_edge_p (cfun, e))
- {
- cold_bb = false;
- break;
- }
+ if (!bb->count.precise_p ())
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ if (!probably_never_executed_edge_p (cfun, e))
+ {
+ cold_bb = false;
+ break;
+ }
}
if (cold_bb)
{