1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
2013-04-24 Jakub Jelinek <jakub@redhat.com>
* parser.c (cp_parser_omp_clause_name): Add missing break after
case 'i'.
(cp_parser_omp_cancellation_point): Diagnose error if
#pragma omp cancellation isn't followed by point.
* semantics.c (finish_omp_clauses): Complain also about zero
in alignment of aligned directive or safelen/simdlen expressions.
(finish_omp_cancel): Fix up diagnostics wording.
2013-04-23 Jakub Jelinek <jakub@redhat.com>
* semantics.c (finish_omp_clauses): On OMP_CLAUSE_LINEAR clauses
verify OMP_CLAUSE_DECL has integral or pointer type, and handle
linear steps for pointer type decls. FIx up handling of
OMP_CLAUSE_UNIFORM.
2013-04-19 Jakub Jelinek <jakub@redhat.com>
* cp-tree.h (CP_OMP_CLAUSE_INFO): Also allow it on OMP_CLAUSE_LINEAR.
* parser.c (cp_parser_omp_var_list_no_open): If colon is non-NULL,
temporarily disable colon_corrects_to_scope_p during the parsing
of the variable list.
(cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen): New
functions.
(cp_parser_omp_all_clauses): Handle OMP_CLAUSE_SAFELEN and
OMP_CLAUSE_SIMDLEN.
* semantics.c (finish_omp_clauses): Allow NULL_TREE in
OMP_CLAUSE_ALIGNED_ALIGNMENT.
2013-04-10 Jakub Jelinek <jakub@redhat.com>
* cp-tree.h (finish_omp_taskgroup): New prototype.
* parser.c (cp_parser_omp_clause_proc_bind): Require ) instead of
colon at the end of the clause.
(cp_parser_omp_taskgroup): New function.
(cp_parser_omp_construct, cp_parser_pragma): Handle
PRAGMA_OMP_TASKGROUP.
* semantics.c (finish_omp_taskgroup): New function.
2013-04-05 Jakub Jelinek <jakub@redhat.com>
* semantics.c (finish_omp_for): Disallow class iterators for
OMP_SIMD and OMP_FOR_SIMD loops.
2013-03-27 Jakub Jelinek <jakub@redhat.com>
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK.
(finish_omp_for): Add enum tree_code second argument.
(finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
* cp-gimplify.c (cp_gimplify_expr, cp_genericize_r): Handle
OMP_SIMD, OMP_FOR_SIMD and OMP_DISTRIBUTE.
* semantics.c (finish_omp_clauses): Handle new OpenMP 4.0 clauses.
(finish_omp_for): Add code argument, pass it down to make_node
or c_finish_omp_for.
(finish_omp_cancel, finish_omp_cancellation_point): New functions.
* parser.c (cp_parser_omp_clause_name): Add parsing of new
OpenMP 4.0 clauses.
(cp_parser_omp_var_list_no_open): Add COLON argument, if non-NULL,
accept termination by colon instead of closing paren.
(cp_parser_omp_var_list, cp_parser_omp_clause_reduction): Adjust
callers.
(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
cp_parser_omp_clause_num_teams, cp_parser_omp_clause_aligned,
cp_parser_omp_clause_linear, cp_parser_omp_clause_depend,
cp_parser_omp_clause_map, cp_parser_omp_clause_device,
cp_parser_omp_clause_dist_schedule, cp_parser_omp_clause_proc_bind):
New functions.
(cp_parser_omp_all_clauses): Change mask argument's type to
omp_clause_mask from unsigned. Fix c_name for
PRAGMA_OMP_CLAUSE_UNTIED. Handle new OpenMP 4.0 clauses.
(cp_parser_omp_for_loop): Add code argument. Pass it down to
finish_omp_for.
(OMP_SIMD_CLAUSE_MASK): Define.
(cp_parser_omp_simd): New function.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(cp_parser_omp_for): Handle parsing of #pragma omp for simd.
(cp_parser_omp_parallel): Handle parsing of
#pragma omp parallel for simd. Use omp_clause_mask type
instead of unsigned for mask, use OMP_CLAUSE_MASK_1 instead
of 1 for masks.
(OMP_CANCEL_CLAUSE_MASK, OMP_CANCELLATION_POINT_CLAUSE_MASK): Define.
(cp_parser_omp_cancel, cp_parser_omp_cancellation_point): New
functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_SIMD, PRAGMA_OMP_CANCEL
and PRAGMA_OMP_CANCELLATION_POINT.
(cp_parser_pragma): Handle PRAGMA_OMP_SIMD.
* pt.c (tsubst_expr): Handle OMP_SIMD, OMP_FOR_SIMD and
OMP_DISTRIBUTE. Pass down TREE_CODE to finish_omp_for.
2013-03-20 Jakub Jelinek <jakub@redhat.com>
* parser.c (cp_parser_omp_atomic): Never restart unless
structured_block is true.
* parser.c (cp_parser_binary_expression): Handle no_toplevel_fold_p
even for binary operations other than comparison.
(cp_parser_omp_atomic): Handle parsing OpenMP 4.0 atomics.
* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle atomic exchange.
* semantics.c (finish_omp_atomic): Use cp_tree_equal to diagnose
expression mismatches and to find out if c_finish_omp_atomic
should be called with swapped set to true or false.
Copyright (C) 2013 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
|