[patch, Fortran] Fix PR 50690
Tobias Burnus
burnus@net-b.de
Mon Oct 31 05:03:00 GMT 2011
Mikael Morin wrote:
> Let's keep Jakub CC-ed for mixes of OpenMP and frontend optimizations. ;-)
>
> There are two commented lines in the testcase. Is it expected?
> Otherwise doesn't look too bad...
I had also a glance at the patch - and it looks reasonable; in
particular, I failed to generate a failing test case.
Besides the
!$omp parallel
!$omp workshare
one should also add a test for - it can also be in the same file -:
!$omp parallel workshare
Regarding the test case: You cannot place a "dg-do run" OpenMP test case
into gcc/testsuite/gfortran.dg/gomp/workshare2.f90; you have to use
libgomp/testsuite/libgomp.fortran. The former directory only allows
"dg-do compile" test cases. (By the way, running "make check" for
libgomp does never harm.)
Jakub, what do you think?
Tobias
>>> Jakub Jelinek wrote:
>>>> Though, what could be done is just special case OpenMP workshare
>>>> regions, insert everything into BLOCK local vars unless in OpenMP
>>>> workshare, in that
>>>> case put the BLOCK with the temporary around the workshare rather than
>>>> inside of it. In the case of omp parallel workshare it would need
>>>> to go in between omp parallel and omp workshare.
>>> Well, here's a patch which implements this concept. I chose to insert
>>> the BLOCK in a separate pass because it was the cleanest way to avoid
>>> infinite recursion when inserting a block.
>>>
>>> Regression-tested. OK for trunk?
>>>
>>> Thomas
>>>
>>> 2011-10-21 Thomas Koenig<tkoenig@gcc.gnu.org>
>>>
>>> PR fortran/50690
>>> * frontend-passes.c (workshare_level): New variable.
>>> (create_var): Put the newly created variable into the block
>>> around the WORKSHARE.
>>> (enclose_workshare): New callback function to enclose
>>> WORKSHAREs in blocks.
>>> (optimize_namespace): Use it.
>>> (gfc_code_walker): Save/restore current namespace when
>>> following a BLOCK. Keep track of workshare level.
>>>
>>> 2011-10-21 Thomas Koenig<tkoenig@gcc.gnu.org>
>>>
>>> PR fortran/50690
>>> * gfortran.dg/gomp/workshare2.f90: New test.
More information about the Gcc-patches
mailing list