tree-optimization/84646 - remove premature thread path rejection

Message ID 20221109135046.17EDE1331F@imap2.suse-dmz.suse.de
State Repeat Merge
Headers
Series tree-optimization/84646 - remove premature thread path rejection |

Checks

Context Check Description
snail/gcc-patch-check warning Git am fail log

Commit Message

Richard Biener Nov. 9, 2022, 1:50 p.m. UTC
  This removes a premature rejection that's done later in a different
way.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

	PR tree-optimization/84646
	* tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
	Remove premature cycle rejection.
---
 gcc/tree-ssa-threadbackward.cc | 23 +++++++----------------
 1 file changed, 7 insertions(+), 16 deletions(-)
  

Patch

diff --git a/gcc/tree-ssa-threadbackward.cc b/gcc/tree-ssa-threadbackward.cc
index 2a8cfa3ee01..2290b95717d 100644
--- a/gcc/tree-ssa-threadbackward.cc
+++ b/gcc/tree-ssa-threadbackward.cc
@@ -249,25 +249,16 @@  back_threader::maybe_register_path (back_threader_profitability &profit)
 
   if (taken_edge && taken_edge != UNREACHABLE_EDGE)
     {
-      if (m_visited_bbs.contains (taken_edge->dest))
+      bool irreducible = false;
+      if (profit.profitable_path_p (m_path, taken_edge, &irreducible)
+	  && debug_counter ()
+	  && m_registry.register_path (m_path, taken_edge))
 	{
-	  // Avoid circular paths by indicating there is nothing to
-	  // see in this direction.
-	  taken_edge = UNREACHABLE_EDGE;
+	  if (irreducible)
+	    vect_free_loop_info_assumptions (m_path[0]->loop_father);
 	}
       else
-	{
-	  bool irreducible = false;
-	  if (profit.profitable_path_p (m_path, taken_edge, &irreducible)
-	      && debug_counter ()
-	      && m_registry.register_path (m_path, taken_edge))
-	    {
-	      if (irreducible)
-		vect_free_loop_info_assumptions (m_path[0]->loop_father);
-	    }
-	  else
-	    taken_edge = NULL;
-	}
+	taken_edge = NULL;
     }
 
   if (dump_file && (dump_flags & TDF_DETAILS))