On Tue, Jul 04, 2017 at 03:46:26PM +0200, Jan Hubicka wrote: > Hi, > this is the last occurence of missing probability update during x86-64 > bootstrap®testing. I am not sure what is really going on here, > is haing probability as almost never executed OK?
This is for the test whether the particular iteration has been masked off and nothing should be done for that iteration. Never is a bad guess, if the mask is always true on all iterations, then one should be using a different simd clone function without the mask argument which is more efficient to gain performance. I think the mask non-zero (i.e. do something) is still more probable than zero, but not significantly much. The hope is we can vectorize using AVX512 masked operations, but in reality in many cases we can't. > Index: omp-simd-clone.c > =================================================================== > --- omp-simd-clone.c (revision 249928) > +++ omp-simd-clone.c (working copy) > @@ -1240,7 +1240,9 @@ simd_clone_adjust (struct cgraph_node *n > g = gimple_build_cond (EQ_EXPR, mask, build_zero_cst (TREE_TYPE > (mask)), > NULL, NULL); > gsi_insert_after (&gsi, g, GSI_CONTINUE_LINKING); > - make_edge (loop->header, incr_bb, EDGE_TRUE_VALUE); > + edge e = make_edge (loop->header, incr_bb, EDGE_TRUE_VALUE); > + /* FIXME: What is real porbability here? */ > + e->probability = profile_probability::guessed_never (); > FALLTHRU_EDGE (loop->header)->flags = EDGE_FALSE_VALUE; > } > Jakub