public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Speedup loop splitting SSA update
@ 2022-06-28 11:12 Richard Biener
  0 siblings, 0 replies; 3+ messages in thread
From: Richard Biener @ 2022-06-28 11:12 UTC (permalink / raw)
  To: gcc-patches

Since we never process loops with inner loops that have been split
we can delay SSA update until after the pass is done with the whole
loop, avoiding the O(function-size) work associated with it.

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

2022-06-28  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
	call update_ssa.
---
 gcc/tree-ssa-loop-split.cc | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gcc/tree-ssa-loop-split.cc b/gcc/tree-ssa-loop-split.cc
index d61bad5ba47..bccf621493b 100644
--- a/gcc/tree-ssa-loop-split.cc
+++ b/gcc/tree-ssa-loop-split.cc
@@ -491,8 +491,6 @@ static void
 fix_loop_bb_probability (class loop *loop1, class loop *loop2, edge true_edge,
 			 edge false_edge)
 {
-  update_ssa (TODO_update_ssa);
-
   /* Proportion first loop's bb counts except those dominated by true
      branch to avoid drop 1s down.  */
   basic_block *bbs1, *bbs2;
@@ -1668,7 +1666,8 @@ tree_ssa_split_loops (void)
       if (loop->aux)
 	{
 	  /* If any of our inner loops was split, don't split us,
-	     and mark our containing loop as having had splits as well.  */
+	     and mark our containing loop as having had splits as well.
+	     This allows for delaying SSA update.  */
 	  loop_outer (loop)->aux = loop;
 	  continue;
 	}
-- 
2.35.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] Speedup loop splitting SSA update
@ 2022-06-28 11:12 Richard Biener
  0 siblings, 0 replies; 3+ messages in thread
From: Richard Biener @ 2022-06-28 11:12 UTC (permalink / raw)
  To: gcc-patches

Since we never process loops with inner loops that have been split
we can delay SSA update until after the pass is done with the whole
loop, avoiding the O(function-size) work associated with it.

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

2022-06-28  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
	call update_ssa.
---
 gcc/tree-ssa-loop-split.cc | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gcc/tree-ssa-loop-split.cc b/gcc/tree-ssa-loop-split.cc
index d61bad5ba47..bccf621493b 100644
--- a/gcc/tree-ssa-loop-split.cc
+++ b/gcc/tree-ssa-loop-split.cc
@@ -491,8 +491,6 @@ static void
 fix_loop_bb_probability (class loop *loop1, class loop *loop2, edge true_edge,
 			 edge false_edge)
 {
-  update_ssa (TODO_update_ssa);
-
   /* Proportion first loop's bb counts except those dominated by true
      branch to avoid drop 1s down.  */
   basic_block *bbs1, *bbs2;
@@ -1668,7 +1666,8 @@ tree_ssa_split_loops (void)
       if (loop->aux)
 	{
 	  /* If any of our inner loops was split, don't split us,
-	     and mark our containing loop as having had splits as well.  */
+	     and mark our containing loop as having had splits as well.
+	     This allows for delaying SSA update.  */
 	  loop_outer (loop)->aux = loop;
 	  continue;
 	}
-- 
2.35.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] Speedup loop splitting SSA update
@ 2022-06-28 11:12 Richard Biener
  0 siblings, 0 replies; 3+ messages in thread
From: Richard Biener @ 2022-06-28 11:12 UTC (permalink / raw)
  To: gcc-patches

Since we never process loops with inner loops that have been split
we can delay SSA update until after the pass is done with the whole
loop, avoiding the O(function-size) work associated with it.

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

2022-06-28  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
	call update_ssa.
---
 gcc/tree-ssa-loop-split.cc | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gcc/tree-ssa-loop-split.cc b/gcc/tree-ssa-loop-split.cc
index d61bad5ba47..bccf621493b 100644
--- a/gcc/tree-ssa-loop-split.cc
+++ b/gcc/tree-ssa-loop-split.cc
@@ -491,8 +491,6 @@ static void
 fix_loop_bb_probability (class loop *loop1, class loop *loop2, edge true_edge,
 			 edge false_edge)
 {
-  update_ssa (TODO_update_ssa);
-
   /* Proportion first loop's bb counts except those dominated by true
      branch to avoid drop 1s down.  */
   basic_block *bbs1, *bbs2;
@@ -1668,7 +1666,8 @@ tree_ssa_split_loops (void)
       if (loop->aux)
 	{
 	  /* If any of our inner loops was split, don't split us,
-	     and mark our containing loop as having had splits as well.  */
+	     and mark our containing loop as having had splits as well.
+	     This allows for delaying SSA update.  */
 	  loop_outer (loop)->aux = loop;
 	  continue;
 	}
-- 
2.35.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-06-28 11:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-28 11:12 [PATCH] Speedup loop splitting SSA update Richard Biener
2022-06-28 11:12 Richard Biener
2022-06-28 11:12 Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).