diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-04-20 10:56:17 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-04-24 08:49:49 -0700 |
commit | 7049241f6ee558cfc0b227b5a0a355ec29afd6f1 (patch) | |
tree | 87345142640a6387bc79cbf03e7e1ccbbacfa38c /gcc | |
parent | 7dd4761ee7f95be3cbf74ad57564faa7b1464dc2 (diff) | |
download | gcc-7049241f6ee558cfc0b227b5a0a355ec29afd6f1.zip gcc-7049241f6ee558cfc0b227b5a0a355ec29afd6f1.tar.gz gcc-7049241f6ee558cfc0b227b5a0a355ec29afd6f1.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree-ssa-phiopt.cc | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index f9d8d6e..ce3409b 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; |