OpenACC's tile clause fix for implicit typing (PR93825)
2020-02-20 Tobias Burnus <tobias@codesourcery.com> PR fortran/93825 * openmp.c (resolve_oacc_loop_blocks): Move call to resolve_oacc_nested_loops from here ... (resolve_oacc_loop): ... to here. PR fortran/93825 * gfortran.dg/goacc/tile-3.f90: New.
This commit is contained in:
parent
b82d426662
commit
2c52b2884b
4 changed files with 46 additions and 12 deletions
|
@ -1,3 +1,10 @@
|
|||
2020-02-20 Tobias Burnus <tobias@codesourcery.com>
|
||||
|
||||
PR fortran/93825
|
||||
* openmp.c (resolve_oacc_loop_blocks): Move call to
|
||||
resolve_oacc_nested_loops from here ...
|
||||
(resolve_oacc_loop): ... to here.
|
||||
|
||||
2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
|
||||
|
||||
PR fortran/93714
|
||||
|
@ -29,15 +36,15 @@
|
|||
|
||||
2020-02-10 Andrew Benson <abensonca@gmail.com>
|
||||
|
||||
PR fortran/83113
|
||||
* array.c: Do not attempt to set the array spec for a submodule
|
||||
function symbol (as it has already been set in the corresponding
|
||||
module procedure interface).
|
||||
* symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
|
||||
DIMENSION attributes in declarations of a submodule function.
|
||||
* gfortran.h: Add a macro that tests for a module procedure in a
|
||||
submodule.
|
||||
* gfortran.dg/pr83113.f90: New test.
|
||||
PR fortran/83113
|
||||
* array.c: Do not attempt to set the array spec for a submodule
|
||||
function symbol (as it has already been set in the corresponding
|
||||
module procedure interface).
|
||||
* symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
|
||||
DIMENSION attributes in declarations of a submodule function.
|
||||
* gfortran.h: Add a macro that tests for a module procedure in a
|
||||
submodule.
|
||||
* gfortran.dg/pr83113.f90: New test.
|
||||
|
||||
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||
Tobias Burnus <tobias@codesourcery.com>
|
||||
|
|
|
@ -6192,10 +6192,8 @@ resolve_oacc_loop_blocks (gfc_code *code)
|
|||
if (code->ext.omp_clauses->tile_list)
|
||||
{
|
||||
gfc_expr_list *el;
|
||||
int num = 0;
|
||||
for (el = code->ext.omp_clauses->tile_list; el; el = el->next)
|
||||
{
|
||||
num++;
|
||||
if (el->expr == NULL)
|
||||
{
|
||||
/* NULL expressions are used to represent '*' arguments.
|
||||
|
@ -6213,7 +6211,6 @@ resolve_oacc_loop_blocks (gfc_code *code)
|
|||
&code->loc);
|
||||
}
|
||||
}
|
||||
resolve_oacc_nested_loops (code, code->block->next, num, "tiled");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6266,6 +6263,18 @@ resolve_oacc_loop (gfc_code *code)
|
|||
do_code = code->block->next;
|
||||
collapse = code->ext.omp_clauses->collapse;
|
||||
|
||||
/* Both collapsed and tiled loops are lowered the same way, but are not
|
||||
compatible. In gfc_trans_omp_do, the tile is prioritized. */
|
||||
if (code->ext.omp_clauses->tile_list)
|
||||
{
|
||||
int num = 0;
|
||||
gfc_expr_list *el;
|
||||
for (el = code->ext.omp_clauses->tile_list; el; el = el->next)
|
||||
++num;
|
||||
resolve_oacc_nested_loops (code, code->block->next, num, "tiled");
|
||||
return;
|
||||
}
|
||||
|
||||
if (collapse <= 0)
|
||||
collapse = 1;
|
||||
resolve_oacc_nested_loops (code, do_code, collapse, "collapsed");
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2020-02-20 Tobias Burnus <tobias@codesourcery.com>
|
||||
|
||||
PR fortran/93825
|
||||
* gfortran.dg/goacc/tile-3.f90: New.
|
||||
|
||||
2020-02-19 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/93169 - wrong-code with a non-constexpr constructor.
|
||||
|
|
13
gcc/testsuite/gfortran.dg/goacc/tile-3.f90
Normal file
13
gcc/testsuite/gfortran.dg/goacc/tile-3.f90
Normal file
|
@ -0,0 +1,13 @@
|
|||
! { dg-do compile }
|
||||
!
|
||||
! PR fortran/93825
|
||||
!
|
||||
! Check that implicit typing works
|
||||
|
||||
program p
|
||||
!$acc parallel loop tile(2,2)
|
||||
do i = 1, 8
|
||||
do j = 1, 8
|
||||
end do
|
||||
end do
|
||||
end
|
Loading…
Add table
Reference in a new issue