[Bug fortran/83064] DO CONCURRENT and auto-parallelization

2018-10-30 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064

Thomas Koenig  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #31 from Thomas Koenig  ---
Hm, on my system (current trunk), with the unrolled loop, parallelization
only happens with -Ofast:

$ gfortran -ftree-parallelize-loops=2 -O1 conc.f90 && time ./a.out
 PI   3.1415926553497115 
 PI   3.14159274

real0m0.313s
user0m0.345s
sys 0m0.001s
$ gfortran -ftree-parallelize-loops=2 -O2 conc.f90 && time ./a.out
 PI   3.1415926553497115 
 PI   3.14159274

real0m0.273s
user0m0.272s
sys 0m0.001s
$ gfortran -ftree-parallelize-loops=2 -O3 conc.f90 && time ./a.out
 PI   3.1415926553497115 
 PI   3.14159274

real0m0.278s
user0m0.278s
sys 0m0.001s
$ gfortran -ftree-parallelize-loops=2 -Ofast conc.f90 && time ./a.out
 PI   3.1415926553497115 
 PI   3.14159274

real0m0.152s
user0m0.296s
sys 0m0.001s

However, the wrong-code bug is indeed fixed. I'll look at paralellization
separately.

[Bug fortran/83064] DO CONCURRENT and auto-parallelization

2018-10-30 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064

Jürgen Reuter  changed:

   What|Removed |Added

 CC||juergen.reuter at desy dot de

--- Comment #30 from Jürgen Reuter  ---
To me it looks like that after Thomas' commit from April '18 the table of
results is now:

Unrolled do-loop

Options   Parallel  Correct
-Og-ftree-parallelize-loops=2 N Y
-O1-ftree-parallelize-loops=2 Y Y
-O2-ftree-parallelize-loops=2 Y Y
-O3-ftree-parallelize-loops=2 Y Y
-Ofast -ftree-parallelize-loops=2 Y Y

Modulo inside do-loop, or Indexed via host associated array

Options   Parallel  Correct
-Og-ftree-parallelize-loops=2 N Y
-O1-ftree-parallelize-loops=2 Y Y
-O2-ftree-parallelize-loops=2 Y Y
-O3-ftree-parallelize-loops=2 Y Y
-Ofast -ftree-parallelize-loops=2 Y Y

The first number of PI in the test (the one with 16 digits) is different
between the unrolled do-loop and the module inside do-loop/indexed via host
association, while the second value (8 digits) is always the same. But all
results are consistent and do not change change any more in consecutive runs.
So is this fixed now?

[Bug fortran/83064] DO CONCURRENT and auto-parallelization

2018-04-12 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064

--- Comment #29 from Thomas Koenig  ---
Author: tkoenig
Date: Thu Apr 12 21:58:54 2018
New Revision: 259359

URL: https://gcc.gnu.org/viewcvs?rev=259359&root=gcc&view=rev
Log:
2018-04-12  Thomas Koenig  

PR fortran/83064
PR testsuite/85346
* trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
for annotation and remove dependence on -ftree-parallelize-loops.

2018-04-12  Thomas Koenig  

PR fortran/83064
PR testsuite/85346
* gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work
array and move test to libgomp/testsuite/libgomp.fortran.
* gfortran.dg/do_concurrent_6.f90: New test.

2018-04-12  Thomas Koenig  

PR fortran/83064
PR testsuite/85346
* testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
test from gfortran.dg to here.


Added:
trunk/gcc/testsuite/gfortran.dg/do_concurrent_6.f90
trunk/libgomp/testsuite/libgomp.fortran/do_concurrent_5.f90
Removed:
trunk/gcc/testsuite/gfortran.dg/do_concurrent_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog
trunk/libgomp/ChangeLog

[Bug fortran/83064] DO CONCURRENT and auto-parallelization

2018-04-12 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #28 from Christophe Lyon  ---
(In reply to Thomas Koenig from comment #27)

> 
> 2018-04-09  Thomas Koenig  
> 
>   PR fortran/83064
>   * gfortran.dg/do_concurrent_5.f90: New test.

Hi,
I think the testcase is probably missing a require-effective-target, because I
see it failing on aarch64/arm with this error message:
gfortran: error: libgomp.spec: No such file or directory

[Bug fortran/83064] DO CONCURRENT and auto-parallelization

2018-04-09 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83064

Thomas Koenig  changed:

   What|Removed |Added

   Keywords|wrong-code  |missed-optimization
   Target Milestone|8.0 |9.0
Summary|[8 Regression] DO   |DO CONCURRENT and
   |CONCURRENT inconsistent |auto-parallelization
   |results |

--- Comment #27 from Thomas Koenig  ---
I have committed the workaround. This is no longer a regression,
removing the regression marker.

If autopar is modified so that the parallel annotation works with
DO CONCURRENT, one needs to search for the string "PR 83064" for
the part that needs to be undone to remove the workaround.