diff options
author | Richard Biener <rguenther@suse.de> | 2022-06-28 12:07:14 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-06-28 13:13:34 +0200 |
commit | 8354d0abeb7646e109b2fb982afbc253644b0925 (patch) | |
tree | d7c2e6130e2d3182977ff613c6a22d8fd3c823c2 /gcc/tree-ssa-loop-split.cc | |
parent | 07f49e855b50d06181b08aa2498e631be27e8055 (diff) | |
download | gcc-8354d0abeb7646e109b2fb982afbc253644b0925.zip gcc-8354d0abeb7646e109b2fb982afbc253644b0925.tar.gz gcc-8354d0abeb7646e109b2fb982afbc253644b0925.tar.bz2 |
Speedup loop splitting SSA update
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.
2022-06-28 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
call update_ssa.
Diffstat (limited to 'gcc/tree-ssa-loop-split.cc')
-rw-r--r-- | gcc/tree-ssa-loop-split.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-split.cc b/gcc/tree-ssa-loop-split.cc index d61bad5..bccf621 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; } |