]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix optimize_mask_stores profile update
authorJan Hubicka <jh@suse.cz>
Sun, 16 Jul 2023 21:55:14 +0000 (23:55 +0200)
committerJan Hubicka <jh@suse.cz>
Sun, 16 Jul 2023 21:55:14 +0000 (23:55 +0200)
While looking into sphinx3 regression I noticed that vectorizer produces
BBs with overall probability count 120%.  This patch fixes it.
Richi, I don't know how to create a testcase, but having one would
be nice.

Bootstrapped/regtested x86_64-linux, will commit it shortly.

gcc/ChangeLog:

PR tree-optimization/110649
* tree-vect-loop.cc (optimize_mask_stores): Set correctly
probability of the if-then-else construct.

gcc/tree-vect-loop.cc

index 7d917bfd72c06d49e3ac90f385f14f2376f354f3..61343eadee55104efeb751808fb8fcc492daffd7 100644 (file)
@@ -11680,6 +11680,7 @@ optimize_mask_stores (class loop *loop)
       efalse = make_edge (bb, store_bb, EDGE_FALSE_VALUE);
       /* Put STORE_BB to likely part.  */
       efalse->probability = profile_probability::unlikely ();
+      e->probability = efalse->probability.invert ();
       store_bb->count = efalse->count ();
       make_single_succ_edge (store_bb, join_bb, EDGE_FALLTHRU);
       if (dom_info_available_p (CDI_DOMINATORS))