public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues
@ 2020-04-21 13:43 burnus at gcc dot gnu.org
  2020-04-21 13:48 ` [Bug fortran/94690] " burnus at gcc dot gnu.org
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-21 13:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

            Bug ID: 94690
           Summary: [OpenMP] omp ... distribute – lastprivate not
                    permitted and more issues
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: openmp, rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Created attachment 48323
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48323&action=edit
[Patch, see comment 0 for issues] Add LASTPRIVATE to OMP_DISTRIBUTE_CLAUSES,
add a bunch of test cases

sollve_vv's test_target_teams_distribute_lastprivate.F90 fails as gfortran
misses 'lastprivate' in 'distribute' (missing from OMP_DISTRIBUTE_CLAUSES).

However, when trying to fortranify the C/C++ testcases pr66199-[3-9].c, some
more issues showed up:

* pr66199-4.f90 + pr66199-5.f90 do not recognize 'collapse(2)'
* pr66199-7.f90 fails with ‘d2’ not specified in enclosing ‘teams’,
  which might be a test case (conversion) bug.
* pr66199-9.f90 – gives an ICE in omp_add_variable
  (if 'lastprivate' is permitted, otherwise, it is rejected.)

[The C/C++ test cases were added in r228777 alias
r6-3899-gd9a6bd32adc40a7e1e5c72692a330f14453ad7f0 ]

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
@ 2020-04-21 13:48 ` burnus at gcc dot gnu.org
  2020-04-21 14:56 ` burnus at gcc dot gnu.org
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-21 13:48 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
However, adding LASTPRIVATE to OMP_DISTRIBUTE_CLAUSES (see patch) *is*
sufficient for sollve_vv's test_target_teams_distribute_lastprivate.F90.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
  2020-04-21 13:48 ` [Bug fortran/94690] " burnus at gcc dot gnu.org
@ 2020-04-21 14:56 ` burnus at gcc dot gnu.org
  2020-04-21 15:53 ` burnus at gcc dot gnu.org
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-21 14:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #0)
> * pr66199-4.f90 + pr66199-5.f90 do not recognize 'collapse(2)'

Turns out this is due to truncating of the line...

EXPECTED: There is some diagnostic for free-form Fortran and for
-Wline-truncation also for fixed-form Fortran source form.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
  2020-04-21 13:48 ` [Bug fortran/94690] " burnus at gcc dot gnu.org
  2020-04-21 14:56 ` burnus at gcc dot gnu.org
@ 2020-04-21 15:53 ` burnus at gcc dot gnu.org
  2020-04-22  7:33 ` burnus at gcc dot gnu.org
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-21 15:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #2)
> EXPECTED: There is some diagnostic for free-form Fortran and for
> -Wline-truncation also for fixed-form Fortran source form.

That's fixed by the following patch. It is first set to disable tab warnings
but after exceeding the line length, it can be set again.

The too-long line warning itself is taken care of in gfc_next_char_literal,
which also knows about comments, OpenMP etc.

diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index f65594f8baa..d1c9379ba88 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -1902,2 +1902,3 @@ load_line (FILE *input, gfc_char_t **pbuf, int *pbuflen,
const int *first_char)
          bool trunc_warn = true;
+         seen_comment = false;

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-04-21 15:53 ` burnus at gcc dot gnu.org
@ 2020-04-22  7:33 ` burnus at gcc dot gnu.org
  2020-04-22 12:43 ` burnus at gcc dot gnu.org
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-22  7:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #3)
> (In reply to Tobias Burnus from comment #2)
> > EXPECTED: There is some diagnostic for free-form Fortran and for
> > -Wline-truncation also for fixed-form Fortran source form.

That's now tracked in PR 94709. The simple patch is incomplete (see new PR).

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2020-04-22  7:33 ` burnus at gcc dot gnu.org
@ 2020-04-22 12:43 ` burnus at gcc dot gnu.org
  2020-04-22 12:54 ` burnus at gcc dot gnu.org
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-22 12:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #0)
> * pr66199-9.f90 – gives an ICE in omp_add_variable
>   (if 'lastprivate' is permitted, otherwise, it is rejected.)

Reduced test case (needs patch to permit lastprivate in
OMP_DISTRIBUTE_CLAUSES):
  internal compiler error: in omp_add_variable, at gimplify.c:6958

integer function f2 ()
  implicit none
  integer :: d, a
! !$omp teams shared(d) shared(a)
  !$omp distribute lastprivate(d)
  do d = 1, 2
    a = d * 5
  end do

! !$omp end teams
  f2 = d
end

["omp teams" is not needed for the ICE, but without the C testcase fails with:
 "lastprivate variable ‘d’ is private in outer context"]

The problem is (original dump):
  #pragma omp distribute private(d) lastprivate(d)

Mixing 'private' + 'lastprivate' is bad.

 * * *

The private is added in gfc_trans_omp_do, as dovar_found == 0.

We have:
* clauses->lists[OMP_LIST_LASTPRIVATE]->sym->name
$41 = 0x7ffff78c0128 "d"

* clauses->lists[OMP_LIST_PRIVATE] == NULL

And the code (in gfc_trans_omp_do):

          if (op != EXEC_OMP_DISTRIBUTE)
            for (n = clauses->lists[(op == EXEC_OMP_SIMD && collapse == 1)
                                    ? OMP_LIST_LINEAR : OMP_LIST_LASTPRIVATE];
...
          else if (n == NULL && op != EXEC_OMP_SIMD)
            for (n = clauses->lists[OMP_LIST_PRIVATE]; n != NULL; n = n->next)

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2020-04-22 12:43 ` burnus at gcc dot gnu.org
@ 2020-04-22 12:54 ` burnus at gcc dot gnu.org
  2020-04-22 13:23 ` burnus at gcc dot gnu.org
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-22 12:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #5)
> The problem is (original dump):
>   #pragma omp distribute private(d) lastprivate(d)

If one does not add the 'private(d)', it works: 'private(d)' is added by the ME
only if 'lastprivate(d)' is not present.

Namely, the following patch works – but the question is, whence to add a
clause. (There is more such code.)

--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -4312,7 +4312,5 @@ gfc_trans_omp_do (gfc_code *code, gfc_exec_op op,
stmtblock_t *pblock,
                dovar_found = 2;
-           }
-         else
-           tmp = build_omp_clause (input_location, OMP_CLAUSE_PRIVATE);
          OMP_CLAUSE_DECL (tmp) = dovar_decl;
          omp_clauses = gfc_trans_add_clause (tmp, omp_clauses);
+           }
        }

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2020-04-22 12:54 ` burnus at gcc dot gnu.org
@ 2020-04-22 13:23 ` burnus at gcc dot gnu.org
  2020-04-23  8:52 ` burnus at gcc dot gnu.org
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-22 13:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
If no lastprivate is available, it is added in gimplify.c's gimplify_omp_for,
line 11759: 

  for (i = 0; i < TREE_VEC_LENGTH (OMP_FOR_INIT (for_stmt)); i++)
...
      if (is_doacross)
...
      else if (ort == ORT_SIMD)
...
      else if (omp_is_private (gimplify_omp_ctxp, decl, 0))
...
      else
        omp_add_variable (gimplify_omp_ctxp, decl, GOVD_PRIVATE | GOVD_SEEN);

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2020-04-22 13:23 ` burnus at gcc dot gnu.org
@ 2020-04-23  8:52 ` burnus at gcc dot gnu.org
  2020-05-13  8:07 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-04-23  8:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2020-04-23
           Assignee|unassigned at gcc dot gnu.org      |burnus at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Patch: https://gcc.gnu.org/pipermail/gcc-patches/2020-April/544387.html

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2020-04-23  8:52 ` burnus at gcc dot gnu.org
@ 2020-05-13  8:07 ` cvs-commit at gcc dot gnu.org
  2020-05-13 16:58 ` burnus at gcc dot gnu.org
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-13  8:07 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:f884bef21cccc05d748fd7869cd641cbb4f6b6bb

commit r11-349-gf884bef21cccc05d748fd7869cd641cbb4f6b6bb
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Wed May 13 10:06:45 2020 +0200

    [Fortran] OpenMP - permit lastprivate in distribute + SIMD fixes (PR94690)

    gcc/fortran/
    2020-05-13  Tobias Burnus  <tobias@codesourcery.com>

            PR fortran/94690
            * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
            (gfc_resolve_do_iterator): Skip the private handling for SIMD as
            that is handled by ME code.
            * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
            for dovar_found == 0, unless !simple.

    libgomp/
    2020-05-13  Tobias Burnus  <tobias@codesourcery.com>

            PR fortran/94690
            * testsuite/libgomp.fortran/pr66199-3.f90: New.
            * testsuite/libgomp.fortran/pr66199-4.f90: New.
            * testsuite/libgomp.fortran/pr66199-5.f90: New.
            * testsuite/libgomp.fortran/pr66199-6.f90: New.
            * testsuite/libgomp.fortran/pr66199-7.f90: New.
            * testsuite/libgomp.fortran/pr66199-8.f90: New.
            * testsuite/libgomp.fortran/pr66199-9.f90: New.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2020-05-13  8:07 ` cvs-commit at gcc dot gnu.org
@ 2020-05-13 16:58 ` burnus at gcc dot gnu.org
  2020-05-15 14:42 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-05-13 16:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #10 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Created attachment 48522
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48522&action=edit
Patch to add OpenMP 5 feature (private + lastprivate permitted for 'simd')

The patch solves an independent issue, required for the test case below
(namely, the "private(j)").

The *committed* patch causes gfortran.dg/gomp/target1.f90 to FAIL.

The problem shows up with the following test case (reduced but modified):
-------------
  subroutine foo ()
    integer :: s, i, j
    !$omp target teams
    !$omp distribute parallel do default(shared) &
    !$omp collapse (2) private(j) lastprivate (s)
      do i = 1, 10
        do j = 1, 10
          s = i * 10 + j
        end do
      end do
    !$omp end target teams
  end subroutine
-------------

The problem is that this currently produces (-fdump-tree-original):
  #pragma omp teams private(i) private(j)

Which later causes problems as it doesn't add a  (last)private(i) when it
should 

(Search for "if (outer && lastprivate)" in gimplify_omp_for – and look through
the lines below. As "i" is present, omp_check_private() returns true and a
required omp_add_variable is not called. – Leading later to the ICE.)

That's solved by:

--- a/gcc/fortran/openmp.c
+++ b/gcc/fortran/openmp.c
@@ -5688,3 +5688,3 @@ gfc_resolve_do_iterator (gfc_code *code, gfc_symbol *sym,
bool add_clause)
       gfc_code *omp_code = omp_current_ctx->code->block;
-      for ( ; omp_code->next; omp_code = omp_code->next)
+      for ( ; omp_code; omp_code = omp_code->next)
        switch (omp_code->op)

However, that leads to the odd result that:

  !$omp target teams
    !$omp distribute parallel do default(shared) &  ! "do"
    !$omp collapse (2) private(j) lastprivate (s)
    ...
    !$omp distribute parallel do simd default(shared) & ! "do simd" (!)
    !$omp collapse (2) private(j) lastprivate (s)
    ...

has "#pragma omp teams" [w/o private(i) private(j)]

While removing the "simd" from the code above leads to no "private(i)
private(j)", which does not make sense.

The code (openmp.c's gfc_do_resolve_do_iterator) is supposed to do:
  /* !$omp do and !$omp parallel do iteration variable is predetermined
     private just in the !$omp do resp. !$omp parallel do construct,
     with no implications for the outer parallel constructs.  */

But here it adds it to 'teams', which looks wrong/inconsistent.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2020-05-13 16:58 ` burnus at gcc dot gnu.org
@ 2020-05-15 14:42 ` cvs-commit at gcc dot gnu.org
  2020-05-17 18:39 ` schwab@linux-m68k.org
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-15 14:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:0ec52417fd9b3bef5227cdc9a18ff4f0247b0ea4

commit r11-421-g0ec52417fd9b3bef5227cdc9a18ff4f0247b0ea4
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Fri May 15 16:40:34 2020 +0200

    [Fortran] OpenMP 5 â permit more sharing clauses for SIMD (PR94690)

    gcc/fortran/
            PR fortran/94690
            * openmp.c (resolve_omp_do): Permit more clauses for SIMD
            iteration variables.

    gcc/testsuite/
            PR fortran/94690
            * gfortran.dg/gomp/openmp-simd-4.f90: New test.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2020-05-15 14:42 ` cvs-commit at gcc dot gnu.org
@ 2020-05-17 18:39 ` schwab@linux-m68k.org
  2020-05-17 18:49 ` burnus at gcc dot gnu.org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: schwab@linux-m68k.org @ 2020-05-17 18:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #12 from Andreas Schwab <schwab@linux-m68k.org> ---
This breaks gfortran.dg/gomp/target1.f90 on riscv.

/daten/src/gcc/gcc/gcc/testsuite/gfortran.dg/gomp/target1.f90:318:0: internal
compiler error: in lookup_decl_in_outer_ctx, at omp-low.c:3967
0xbb9b5a lookup_decl_in_outer_ctx
        ../../gcc/gcc/omp-low.c:3967
0xbe0b76 lower_send_clauses
        ../../gcc/gcc/omp-low.c:7290
0xbe0b76 lower_omp_taskreg
        ../../gcc/gcc/omp-low.c:11295
0xbca7ae lower_omp_1
        ../../gcc/gcc/omp-low.c:12878
0xbca7ae lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbe2367 lower_omp_for
        ../../gcc/gcc/omp-low.c:10564
0xbcaae6 lower_omp_1
        ../../gcc/gcc/omp-low.c:12823
0xbcaae6 lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015
0xbc9bbd lower_omp_1
        ../../gcc/gcc/omp-low.c:12807
0xbc9bbd lower_omp
        ../../gcc/gcc/omp-low.c:13015

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2020-05-17 18:39 ` schwab@linux-m68k.org
@ 2020-05-17 18:49 ` burnus at gcc dot gnu.org
  2020-09-09  7:34 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-05-17 18:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #13 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Andreas Schwab from comment #12)
> This breaks gfortran.dg/gomp/target1.f90 on riscv.
See comment 10 – or PR95109, which points to comment 10.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2020-05-17 18:49 ` burnus at gcc dot gnu.org
@ 2020-09-09  7:34 ` cvs-commit at gcc dot gnu.org
  2020-09-09  9:55 ` cvs-commit at gcc dot gnu.org
  2020-09-09 11:27 ` burnus at gcc dot gnu.org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-09-09  7:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:61c2d476a52bb108bd05d0226c5522bf0c4b24b5

commit r11-3066-g61c2d476a52bb108bd05d0226c5522bf0c4b24b5
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Wed Sep 9 09:33:51 2020 +0200

    Fortran: Fixes for OpenMP loop-iter privatization (PRs 95109 + 94690)

    This commit also fixes a gfortran.dg/gomp/target1.f90 regression;
    target1.f90 tests the resolve.c and openmp.c changes.

    gcc/fortran/ChangeLog:

            PR fortran/95109
            PR fortran/94690
            * resolve.c (gfc_resolve_code): Also call
            gfc_resolve_omp_parallel_blocks for 'distribute parallel do
(simd)'.
            * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
            (gfc_resolve_do_iterator): Remove special code for SIMD, which is
            not needed.
            * trans-openmp.c (gfc_trans_omp_target): For
TARGET_PARALLEL_DO_SIMD,
            call simd not do processing function.

    gcc/testsuite/ChangeLog:

            PR fortran/95109
            PR fortran/94690
            * gfortran.dg/gomp/combined-if.f90: Update scan-tree-dump-times for
            'omp simd.*if'.
            * gfortran.dg/gomp/openmp-simd-5.f90: New test.

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2020-09-09  7:34 ` cvs-commit at gcc dot gnu.org
@ 2020-09-09  9:55 ` cvs-commit at gcc dot gnu.org
  2020-09-09 11:27 ` burnus at gcc dot gnu.org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-09-09  9:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Tobias Burnus
<burnus@gcc.gnu.org>:

https://gcc.gnu.org/g:f93eba8c5fde83100bf0854607848b6f50c8bbb2

commit r10-8721-gf93eba8c5fde83100bf0854607848b6f50c8bbb2
Author: Tobias Burnus <tobias@codesourcery.com>
Date:   Wed Sep 9 11:54:43 2020 +0200

    Fortran: Fixes for OpenMP loop-iter privatization (PRs 95109 + 94690)

    This commit also fixes a gfortran.dg/gomp/target1.f90 regression;
    target1.f90 tests the resolve.c and openmp.c changes.

    gcc/fortran/ChangeLog:

            PR fortran/95109
            PR fortran/94690
            * resolve.c (gfc_resolve_code): Also call
            gfc_resolve_omp_parallel_blocks for 'distribute parallel do
(simd)'.
            * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
            * trans-openmp.c (gfc_trans_omp_target): For
TARGET_PARALLEL_DO_SIMD,
            call simd not do processing function.

    gcc/testsuite/ChangeLog:

            PR fortran/95109
            PR fortran/94690
            * gfortran.dg/gomp/openmp-simd-5.f90: New test.

    (cherry picked from commit 61c2d476a52bb108bd05d0226c5522bf0c4b24b5)

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

* [Bug fortran/94690] [OpenMP] omp ... distribute – lastprivate not permitted and more issues
  2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
                   ` (14 preceding siblings ...)
  2020-09-09  9:55 ` cvs-commit at gcc dot gnu.org
@ 2020-09-09 11:27 ` burnus at gcc dot gnu.org
  15 siblings, 0 replies; 17+ messages in thread
From: burnus at gcc dot gnu.org @ 2020-09-09 11:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94690

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #16 from Tobias Burnus <burnus at gcc dot gnu.org> ---
FIXED on mainline (GCC 11), backported to GCC 10 and to OG10 =
devel/omp/gcc-10.

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

end of thread, other threads:[~2020-09-09 11:27 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-21 13:43 [Bug fortran/94690] New: [OpenMP] omp ... distribute – lastprivate not permitted and more issues burnus at gcc dot gnu.org
2020-04-21 13:48 ` [Bug fortran/94690] " burnus at gcc dot gnu.org
2020-04-21 14:56 ` burnus at gcc dot gnu.org
2020-04-21 15:53 ` burnus at gcc dot gnu.org
2020-04-22  7:33 ` burnus at gcc dot gnu.org
2020-04-22 12:43 ` burnus at gcc dot gnu.org
2020-04-22 12:54 ` burnus at gcc dot gnu.org
2020-04-22 13:23 ` burnus at gcc dot gnu.org
2020-04-23  8:52 ` burnus at gcc dot gnu.org
2020-05-13  8:07 ` cvs-commit at gcc dot gnu.org
2020-05-13 16:58 ` burnus at gcc dot gnu.org
2020-05-15 14:42 ` cvs-commit at gcc dot gnu.org
2020-05-17 18:39 ` schwab@linux-m68k.org
2020-05-17 18:49 ` burnus at gcc dot gnu.org
2020-09-09  7:34 ` cvs-commit at gcc dot gnu.org
2020-09-09  9:55 ` cvs-commit at gcc dot gnu.org
2020-09-09 11:27 ` burnus at gcc dot gnu.org

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).