diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2018-04-09 21:52:05 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2018-04-09 21:52:05 +0000 |
commit | f0caea4872076e02cad511db85a2437317c035c1 (patch) | |
tree | 6b5aacad5c68d4c082ccd01d1ba3b77e76061b9b /gcc/fortran | |
parent | 06756ed901c35e2430f924eb6a3998d872eb1040 (diff) | |
download | gcc-f0caea4872076e02cad511db85a2437317c035c1.tar.gz |
re PR fortran/83064 (DO CONCURRENT and auto-parallelization)
2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83064
* trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
parallell processing of DO CONCURRENT -ftree-parallelize-loops
is set.
2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83064
* gfortran.dg/do_concurrent_5.f90: New test.
* gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus
message.
From-SVN: r259258
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 324fbf3f0bb..53792eb25d8 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,12 @@ 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/83064 + * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for + parallell processing of DO CONCURRENT -ftree-parallelize-loops + is set. + +2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/51260 * resolve.c (resolve_variable): Simplify cases where access to a parameter array results in a single constant. diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 25d5d3cc8cb..c44450e6aa5 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -3642,7 +3642,10 @@ gfc_trans_forall_loop (forall_info *forall_tmp, tree body, /* The exit condition. */ cond = fold_build2_loc (input_location, LE_EXPR, logical_type_node, count, build_int_cst (TREE_TYPE (count), 0)); - if (forall_tmp->do_concurrent) + + /* PR 83064 means that we cannot use the annotation if the + autoparallelizer is active. */ + if (forall_tmp->do_concurrent && ! flag_tree_parallelize_loops) cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond, build_int_cst (integer_type_node, annot_expr_parallel_kind), |