[Bug fortran/83064] DO CONCURRENT and auto-parallelization
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
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
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
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
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.