[Patch][v2] OpenMP/Fortran: Partially fix non-rect loop nests [PR107424]
Tobias Burnus
tobias@codesourcery.com
Wed Jan 25 14:47:18 GMT 2023
Hi Jakub, hi all,
updated patch included, i.e. avoiding 'count' for 'j' when a 'j.0' would
do (i.e. only local var without the different step calculation). I also
now reject if there is a non-unit step on the loop using an outer var.
Eventually still to be done: replace the 'sorry' by working code, i.e.
implement the suggestions to handle some/all non-unit iteration steps as
proposed in this thread.
On 20.01.23 18:39, Jakub Jelinek wrote:
> I think instead of non-unity etc. it is better to talk about constant
> step 1 or -1.
I concur.
> The actual problem with non-simple loops for non-rectangular loops is
> both in case it is an inner loop which uses some outer loop's iterator,
> or if it is outer loop whose iterator is used, both of those cases
> will not be handled properly.
I have now added a check for the other case as well.
Just to confirm, the following is fine, isn't it?
!$omp simd collapse(4)
do i = 1, 10, 2
do outer_var = 1, 10 ! step = + 1
do j = 1, 10, 2
do inner_var = 1, outer_var ! step = 1
i.e. both the inner_var and outer_var have 'step = 1',
even if other loops in the 'collapse' have step != 1.
I think it should be fine.
OK mainline?
Tobias
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
-------------- next part --------------
A non-text attachment was scrubbed...
Name: omp-non-rect.diff
Type: text/x-patch
Size: 65587 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20230125/93a2f0fc/attachment-0001.bin>
More information about the Gcc-patches
mailing list