Commit 2c52b288 by Tobias Burnus

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.
parent b82d4266
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> 2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
PR fortran/93714 PR fortran/93714
......
...@@ -6192,10 +6192,8 @@ resolve_oacc_loop_blocks (gfc_code *code) ...@@ -6192,10 +6192,8 @@ resolve_oacc_loop_blocks (gfc_code *code)
if (code->ext.omp_clauses->tile_list) if (code->ext.omp_clauses->tile_list)
{ {
gfc_expr_list *el; gfc_expr_list *el;
int num = 0;
for (el = code->ext.omp_clauses->tile_list; el; el = el->next) for (el = code->ext.omp_clauses->tile_list; el; el = el->next)
{ {
num++;
if (el->expr == NULL) if (el->expr == NULL)
{ {
/* NULL expressions are used to represent '*' arguments. /* NULL expressions are used to represent '*' arguments.
...@@ -6213,7 +6211,6 @@ resolve_oacc_loop_blocks (gfc_code *code) ...@@ -6213,7 +6211,6 @@ resolve_oacc_loop_blocks (gfc_code *code)
&code->loc); &code->loc);
} }
} }
resolve_oacc_nested_loops (code, code->block->next, num, "tiled");
} }
} }
...@@ -6266,6 +6263,18 @@ resolve_oacc_loop (gfc_code *code) ...@@ -6266,6 +6263,18 @@ resolve_oacc_loop (gfc_code *code)
do_code = code->block->next; do_code = code->block->next;
collapse = code->ext.omp_clauses->collapse; 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) if (collapse <= 0)
collapse = 1; collapse = 1;
resolve_oacc_nested_loops (code, do_code, collapse, "collapsed"); resolve_oacc_nested_loops (code, do_code, collapse, "collapsed");
......
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> 2020-02-19 Marek Polacek <polacek@redhat.com>
PR c++/93169 - wrong-code with a non-constexpr constructor. PR c++/93169 - wrong-code with a non-constexpr constructor.
......
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment