summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2018-04-09 21:52:05 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2018-04-09 21:52:05 +0000
commitf0caea4872076e02cad511db85a2437317c035c1 (patch)
tree6b5aacad5c68d4c082ccd01d1ba3b77e76061b9b /gcc/fortran
parent06756ed901c35e2430f924eb6a3998d872eb1040 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/fortran/trans-stmt.c5
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),