aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-08-02 08:37:16 +0200
committerRichard Biener <rguenther@suse.de>2022-08-02 08:40:30 +0200
commitc30bbd4d169c98b7535a30384c6a971ee875fa44 (patch)
tree8e4f9d52b34fcf3c707a59adecdafe59e7efa2b4 /gcc
parentbc7526f6fca0e6ac3bd462ae54170fa464539148 (diff)
downloadgcc-c30bbd4d169c98b7535a30384c6a971ee875fa44.zip
gcc-c30bbd4d169c98b7535a30384c6a971ee875fa44.tar.gz
gcc-c30bbd4d169c98b7535a30384c6a971ee875fa44.tar.bz2
tree-optimization/106498 - reduce SSA updates in autopar
The following reduces the number of SSA updates done during autopar OMP expansion, specifically avoiding the cases that just add virtual operands (where maybe none have been before) in dead regions of the CFG. Instead virtual SSA update is delayed until after the pass. There's much more TLC needed here, but test coverage makes it really difficult. PR tree-optimization/106498 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual SSA update here. (expand_omp_for): Or here. (execute_expand_omp): Instead schedule it here together with CFG cleanup via TODO.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/omp-expand.cc12
1 files changed, 2 insertions, 10 deletions
diff --git a/gcc/omp-expand.cc b/gcc/omp-expand.cc
index 936adff..64e6308 100644
--- a/gcc/omp-expand.cc
+++ b/gcc/omp-expand.cc
@@ -1530,8 +1530,6 @@ expand_omp_taskreg (struct omp_region *region)
expand_teams_call (new_bb, as_a <gomp_teams *> (entry_stmt));
else
expand_task_call (region, new_bb, as_a <gomp_task *> (entry_stmt));
- if (gimple_in_ssa_p (cfun))
- update_ssa (TODO_update_ssa_only_virtuals);
}
/* Information about members of an OpenACC collapsed loop nest. */
@@ -8191,9 +8189,6 @@ expand_omp_for (struct omp_region *region, gimple *inner_stmt)
(enum built_in_function) next_ix, sched_arg,
inner_stmt);
}
-
- if (gimple_in_ssa_p (cfun))
- update_ssa (TODO_update_ssa_only_virtuals);
}
/* Expand code for an OpenMP sections directive. In pseudo code, we generate
@@ -10591,13 +10586,10 @@ execute_expand_omp (void)
expand_omp (root_omp_region);
- if (flag_checking && !loops_state_satisfies_p (LOOPS_NEED_FIXUP))
- verify_loop_structure ();
- cleanup_tree_cfg ();
-
omp_free_regions ();
- return 0;
+ return (TODO_cleanup_cfg
+ | (gimple_in_ssa_p (cfun) ? TODO_update_ssa_only_virtuals : 0));
}
/* OMP expansion -- the default pass, run before creation of SSA form. */