Since removing the worklist for both mergephi and cfglceanup
(r0-80545-g672987e82f472b), these
two functions are now called right after tree_forwarder_block_p so there is no
reason to the
extra check for infinite loop nor the current loop on the headers check as it
is already
handled in tree_forwarder_block_p.
Bootstrapped and tested on x86_64-linux-gnu.
gcc/ChangeLog:
* tree-cfgcleanup.cc (remove_forwarder_block): Remove check for
infinite loop.
(remove_forwarder_block_with_phi): Likewise. Also remove check for loop
header.
Signed-off-by: Andrew Pinski <[email protected]>
---
gcc/tree-cfgcleanup.cc | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc
index 2e613df6855..6f97c7e41ad 100644
--- a/gcc/tree-cfgcleanup.cc
+++ b/gcc/tree-cfgcleanup.cc
@@ -582,12 +582,6 @@ remove_forwarder_block (basic_block bb)
edge_iterator ei;
gimple_stmt_iterator gsi, gsi_to;
- /* We check for infinite loops already in tree_forwarder_block_p.
- However it may happen that the infinite loop is created
- afterwards due to removal of forwarders. */
- if (dest == bb)
- return false;
-
/* If the destination block consists of a nonlocal label or is a
EH landing pad, do not merge it. */
stmt = first_stmt (dest);
@@ -1262,17 +1256,6 @@ remove_forwarder_block_with_phi (basic_block bb)
gimple *label;
basic_block dombb, domdest, dom;
- /* We check for infinite loops already in tree_forwarder_block_p.
- However it may happen that the infinite loop is created
- afterwards due to removal of forwarders. */
- if (dest == bb)
- return false;
-
- /* Removal of forwarders may expose new natural loops and thus
- a block may turn into a loop header. */
- if (current_loops && bb_loop_header_p (bb))
- return false;
-
/* If the destination block consists of a nonlocal label, do not
merge it. */
label = first_stmt (dest);
--
2.43.0