From: Andrew Pinski Date: Thu, 20 Apr 2023 17:56:17 +0000 (-0700) Subject: PHIOPT: Allow other diamond uses when do_hoist_loads is true X-Git-Tag: basepoints/gcc-15~9938 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7049241f6ee558cfc0b227b5a0a355ec29afd6f1;p=thirdparty%2Fgcc.git PHIOPT: Allow other diamond uses when do_hoist_loads is true While working on adding diamond shaped form to match-and-simplify phiopt, I Noticed that we would not reach there if do_hoist_loads was true. In the original code before the cleanups it was not obvious why but after I finished the cleanups, it was just a matter of removing a continue and that is what this patch does. This just happens also to fix a bug report that I noticed too. OK? Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: PR tree-optimization/68894 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the continue for the do_hoist_loads diamond case. --- diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index f9d8d6e78b20..ce3409b532b2 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -241,10 +241,7 @@ tree_ssa_phiopt_worker (bool do_store_elim, bool do_hoist_loads, bool early_p) is likely to perform worse than the well-predicted branch. */ && !predictable_edge_p (EDGE_SUCC (bb, 0)) && !predictable_edge_p (EDGE_SUCC (bb, 1))) - { - hoist_adjacent_loads (bb, bb1, bb2, bb3); - continue; - } + hoist_adjacent_loads (bb, bb1, bb2, bb3); } gimple_stmt_iterator gsi;