]> git.ipfire.org Git - thirdparty/gcc.git/commit
openmp: Improve composite triangular loop lowering and expansion
authorJakub Jelinek <jakub@redhat.com>
Tue, 13 Oct 2020 07:30:47 +0000 (09:30 +0200)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Tue, 9 Feb 2021 18:09:02 +0000 (10:09 -0800)
commit88528328ea560230f728af97110e89396c8267d2
tree94d607a1b184ed23b70ac0442d7374b3b7f7ec89
parent758fdf6514348a40ed424f3244cb25b92a005095
openmp: Improve composite triangular loop lowering and expansion

This propagates needed values from the point where number of iterations
is calculated on composite loops to the places where that information
is needed to use the more efficient square root discovery to compute
the starting iterator values from the logical iteration number.

2020-10-13  Jakub Jelinek  <jakub@redhat.com>

* omp-low.c (add_taskreg_looptemp_clauses): For triangular loops
with non-constant number of iterations add another 4 _looptemp_
clauses before the (optional) one for lastprivate.
(lower_omp_for_lastprivate): Skip those clauses when looking for
the lastprivate clause.
(lower_omp_for): For triangular loops with non-constant number of
iterations add another 4 _looptemp_ clauses.
* omp-expand.c (expand_omp_for_init_counts): For triangular loops
with non-constant number of iterations set counts[0],
fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly
added _looptemp_ clauses.
(expand_omp_for_init_vars): Initialize the newly added _looptemp_
clauses.
(find_lastprivate_looptemp): New function.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
expand_omp_taskloop_for_outer): Use it instead of manually skipping
_looptemp_ clauses.

(cherry picked from commit 14707c896a207606f13886d3b3251e8db1f3c9c0)
gcc/ChangeLog.omp
gcc/omp-expand.c
gcc/omp-low.c