Commit 34705fdc by Richard Biener Committed by Richard Biener

re PR fortran/83017 (DO CONCURRENT not parallelizing)

2017-11-17  Richard Biener  <rguenther@suse.de>

	PR fortran/83017
	* tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
	* tree-pretty-print.c (dump_generic_node): Handle
	annot_expr_parallel_kind.
	* tree-cfg.c (replace_loop_annotate_in_block): Likewise.
	* gimplify.c (gimple_boolify): Likewise.

	fortran/
	* trans-stmt.c (gfc_trans_forall_loop): Annotate DO CONCURRENT
	loops with annot_expr_parallel_kind instead of just
	annot_expr_ivdep_kind.

From-SVN: r254869
parent 1ecae1fc
2017-11-17 Richard Biener <rguenther@suse.de>
PR fortran/83017
* tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
* tree-pretty-print.c (dump_generic_node): Handle
annot_expr_parallel_kind.
* tree-cfg.c (replace_loop_annotate_in_block): Likewise.
* gimplify.c (gimple_boolify): Likewise.
2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
* config.gcc (extra_headers): Add cet.h for x86 targets.
2017-11-17 Richard Biener <rguenther@suse.de>
PR fortran/83017
* trans-stmt.c (gfc_trans_forall_loop): Annotate DO CONCURRENT
loops with annot_expr_parallel_kind instead of just
annot_expr_ivdep_kind.
2017-11-15 Martin Liska <mliska@suse.cz>
* options.c (gfc_post_options):
......
......@@ -3455,7 +3455,7 @@ gfc_trans_forall_loop (forall_info *forall_tmp, tree body,
if (forall_tmp->do_concurrent)
cond = build2 (ANNOTATE_EXPR, TREE_TYPE (cond), cond,
build_int_cst (integer_type_node,
annot_expr_ivdep_kind));
annot_expr_parallel_kind));
tmp = build1_v (GOTO_EXPR, exit_label);
tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node,
......
......@@ -3749,6 +3749,7 @@ gimple_boolify (tree expr)
case annot_expr_ivdep_kind:
case annot_expr_no_vector_kind:
case annot_expr_vector_kind:
case annot_expr_parallel_kind:
TREE_OPERAND (expr, 0) = gimple_boolify (TREE_OPERAND (expr, 0));
if (TREE_CODE (type) != BOOLEAN_TYPE)
TREE_TYPE (expr) = boolean_type_node;
......
......@@ -287,6 +287,10 @@ replace_loop_annotate_in_block (basic_block bb, struct loop *loop)
loop->force_vectorize = true;
cfun->has_force_vectorize_loops = true;
break;
case annot_expr_parallel_kind:
loop->can_be_parallel = true;
loop->safelen = INT_MAX;
break;
default:
gcc_unreachable ();
}
......
......@@ -853,6 +853,7 @@ enum annot_expr_kind {
annot_expr_ivdep_kind,
annot_expr_no_vector_kind,
annot_expr_vector_kind,
annot_expr_parallel_kind,
annot_expr_kind_last
};
......
......@@ -2638,6 +2638,9 @@ dump_generic_node (pretty_printer *pp, tree node, int spc, dump_flags_t flags,
case annot_expr_vector_kind:
pp_string (pp, ", vector");
break;
case annot_expr_parallel_kind:
pp_string (pp, ", parallel");
break;
default:
gcc_unreachable ();
}
......
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