* bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
edges; zero probability is not better than uninitialized.
From-SVN: r250033
+2017-07-06 Jan Hubicka <hubicka@ucw.cz>
+
+ * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
+ edges; zero probability is not better than uninitialized.
+
2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
* asan.h (asan_sanitize_allocas_p): Declare.
return !cur_best_edge
|| cur_best_edge->dest->index > e->dest->index;
- if (prob > best_prob + diff_prob || !best_prob.initialized_p ())
+ /* Those edges are so expensive that continuing a trace is not useful
+ performance wise. */
+ if (e->flags & (EDGE_ABNORMAL | EDGE_EH))
+ return false;
+
+ if (prob > best_prob + diff_prob
+ || (!best_prob.initialized_p ()
+ && prob > profile_probability::guessed_never ()))
/* The edge has higher probability than the temporary best edge. */
is_better_edge = true;
else if (prob < best_prob - diff_prob)