]>
Commit | Line | Data |
---|---|---|
55a18d47 TB |
1 | 2023-02-22 Tobias Burnus <tobias@codesourcery.com> |
2 | ||
3 | * trans-decl.cc (gfc_get_symbol_decl): Add attributes | |
4 | such as 'declare target' also to hidden artificial | |
5 | variable for deferred-length character variables. | |
6 | * trans-openmp.cc (gfc_trans_omp_array_section, | |
7 | gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data): | |
8 | Improve mapping of array descriptors and deferred-length | |
9 | string variables. | |
10 | ||
cbd92239 TB |
11 | 2023-02-22 Tobias Burnus <tobias@codesourcery.com> |
12 | ||
13 | * trans-openmp.cc (gfc_trans_omp_clauses): Move align modifier | |
14 | handling from OMP_LIST_ALLOCATOR to OMP_LIST_ALLOCATE. | |
15 | ||
174c1677 TB |
16 | 2023-02-15 Tobias Burnus <tobias@codesourcery.com> |
17 | ||
18 | Backported from master: | |
19 | 2023-02-15 Tobias Burnus <tobias@codesourcery.com> | |
20 | ||
21 | PR fortran/108512 | |
22 | * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop' | |
23 | directives. | |
24 | (gfc_resolve_do_iterator): Set a source location for added | |
25 | 'private'-clause arguments. | |
26 | * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks | |
27 | also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for | |
28 | combined directives with loop + '{masked,master} taskloop (simd)'. | |
29 | ||
e7279cc2 KCY |
30 | 2023-02-14 Kwok Cheung Yeung <kcy@codesourcery.com> |
31 | ||
32 | * dump-parse-tree.cc (show_omp_namelist): Display 'present' map | |
33 | modifier. | |
34 | (show_omp_clauses): Display 'present' motion modifier for 'to' | |
35 | and 'from' clauses. | |
36 | ||
229b7058 KCY |
37 | 2023-02-09 Kwok Cheung Yeung <kcy@codesourcery.com> |
38 | ||
39 | * gfortran.h (enum gfc_omp_map_op): Add entries with 'present' | |
40 | modifiers. | |
41 | (enum gfc_omp_motion_modifier): New. | |
42 | (struct gfc_omp_namelist): Add motion_modifier field. | |
43 | * openmp.cc (gfc_match_omp_variable_list): Add new parameter with | |
44 | default. Parse 'present' motion modifier and apply. | |
45 | (gfc_match_omp_clauses): Parse 'present' in defaultmap, 'from' | |
46 | clauses, 'map' clauses and 'to' clauses. | |
47 | (resolve_omp_clauses): Allow 'present' modifiers on 'target', | |
48 | 'target data', 'target enter' and 'target exit' directives. | |
49 | * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers | |
50 | to tree node for 'map', 'to' and 'from' clauses. Apply 'present' for | |
51 | defaultmap. | |
52 | ||
f735f59a TB |
53 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> |
54 | ||
55 | Backported from master: | |
56 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> | |
57 | ||
58 | PR fortran/107424 | |
59 | * trans-openmp.cc (struct dovar_init_d): Add 'sym' and | |
60 | 'non_unit_incr' members. | |
61 | (gfc_nonrect_loop_expr): New. | |
62 | (gfc_trans_omp_do): Call it; use normal loop bounds | |
63 | for unit stride - and only create local loop var. | |
64 | ||
12102532 TB |
65 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> |
66 | ||
67 | Backported from master: | |
68 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> | |
69 | ||
70 | * parse.cc (decode_omp_directive): Really ignore 'assumes' with | |
71 | -fopenmp-simd. | |
72 | ||
23f2f065 TB |
73 | 2023-02-01 Tobias Burnus <tobias@codesourcery.com> |
74 | ||
75 | Backported from master: | |
76 | 2023-01-23 Tobias Burnus <tobias@codesourcery.com> | |
77 | ||
78 | * openmp.cc (resolve_omp_clauses): Check also for | |
79 | power of two. | |
80 | ||
01a12b3d TB |
81 | 2023-01-16 Tobias Burnus <tobias@codesourcery.com> |
82 | ||
83 | Backported from master: | |
84 | 2023-01-12 Tobias Burnus <tobias@codesourcery.com> | |
85 | ||
86 | PR fortran/107706 | |
87 | * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars. | |
88 | ||
83f24e7f JB |
89 | 2022-12-21 Tobias Burnus <tobias@codesourcery.com> |
90 | ||
91 | Backported from master: | |
92 | 2022-12-14 Julian Brown <julian@codesourcery.com> | |
93 | ||
94 | PR fortran/107214 | |
95 | * gfortran.h (gfc_symbol): Add data_mark, dev_mark, gen_mark and | |
96 | reduc_mark bitfields. | |
97 | * openmp.cc (resolve_omp_clauses): Use above bitfields to improve | |
98 | duplicate clause detection. | |
99 | ||
c4d7c7ee JB |
100 | 2022-12-21 Tobias Burnus <tobias@codesourcery.com> |
101 | ||
102 | Backported from master: | |
103 | 2022-12-14 Julian Brown <julian@codesourcery.com> | |
104 | ||
105 | * trans-openmp.cc (gfc_add_firstprivate_if_unmapped): New function. | |
106 | (gfc_split_omp_clauses): Call above. | |
107 | ||
58e0579e TB |
108 | 2022-12-12 Tobias Burnus <tobias@codesourcery.com> |
109 | ||
110 | Backported from master: | |
111 | 2022-12-09 Tobias Burnus <tobias@codesourcery.com> | |
112 | ||
113 | * dump-parse-tree.cc (show_omp_namelist): Improve OMP_LIST_ALLOCATE | |
114 | output. | |
115 | * gfortran.h (struct gfc_omp_namelist): Add 'align' to 'u'. | |
116 | (gfc_free_omp_namelist): Add bool arg. | |
117 | * match.cc (gfc_free_omp_namelist): Likewise; free 'u.align'. | |
118 | * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_clause_reduction, | |
119 | gfc_match_omp_flush): Update call. | |
120 | (gfc_match_omp_clauses): Match 'align/allocate modifers in | |
121 | 'allocate' clause. | |
122 | (resolve_omp_clauses): Resolve align. | |
123 | * st.cc (gfc_free_statement): Update call | |
124 | * trans-openmp.cc (gfc_trans_omp_clauses): Handle 'align'. | |
125 | ||
519f647c TB |
126 | 2022-11-28 Tobias Burnus <tobias@codesourcery.com> |
127 | ||
128 | Backported from master: | |
129 | 2022-11-28 Tobias Burnus <tobias@codesourcery.com> | |
130 | ||
131 | * openmp.cc (OMP_DO_CLAUSES, OMP_SCOPE_CLAUSES, | |
132 | OMP_SECTIONS_CLAUSES): Add 'nowait'. | |
133 | (OMP_SINGLE_CLAUSES): Add 'nowait' and 'copyprivate'. | |
134 | (gfc_match_omp_distribute_parallel_do, | |
135 | gfc_match_omp_distribute_parallel_do_simd, | |
136 | gfc_match_omp_parallel_do, | |
137 | gfc_match_omp_parallel_do_simd, | |
138 | gfc_match_omp_parallel_sections, | |
139 | gfc_match_omp_teams_distribute_parallel_do, | |
140 | gfc_match_omp_teams_distribute_parallel_do_simd): Disallow 'nowait'. | |
141 | (gfc_match_omp_workshare): Match 'nowait' clause. | |
142 | (gfc_match_omp_end_single): Use clause matcher for 'nowait'. | |
143 | (resolve_omp_clauses): Reject 'nowait' + 'copyprivate'. | |
144 | * parse.cc (decode_omp_directive): Break too long line. | |
145 | (parse_omp_do, parse_omp_structured_block): Diagnose duplicated | |
146 | 'nowait' clause. | |
147 | ||
f9d53629 TB |
148 | 2022-11-04 Tobias Burnus <tobias@codesourcery.com> |
149 | ||
150 | Partial Revert: | |
151 | 2022-11-02 Tobias Burnus <tobias@codesourcery.com> | |
152 | ||
153 | * openmp.cc (resolve_omp_clauses):Accept noncontiguous arrays. | |
154 | ||
9cb4ef1e TB |
155 | 2022-11-02 Tobias Burnus <tobias@codesourcery.com> |
156 | ||
157 | * trans-openmp.cc (gfc_trans_omp_clauses): Ensure DT struct-comp with | |
158 | array descriptor and 'alloc:' have the descriptor mapped with 'to:'. | |
159 | ||
cb934e37 TB |
160 | 2022-11-02 Tobias Burnus <tobias@codesourcery.com> |
161 | ||
162 | * openmp.cc (gfc_match_omp_clauses): Permit derived types. | |
163 | (resolve_omp_clauses):Accept noncontiguous | |
164 | arrays. | |
165 | * trans-openmp.cc (gfc_trans_omp_clauses): Fixes for | |
166 | derived-type changes; fix size for scalars. | |
167 | ||
5eb6cbcf MV |
168 | 2022-10-27 Marcel Vollweiler <marcel@codesourcery.com> |
169 | ||
170 | * openmp.cc (oacc_is_parallel): Remove. | |
171 | (resolve_oacc_loop_blocks): Remove "gang reduction on an orphan loop" | |
172 | checking. | |
173 | ||
92b14810 TB |
174 | 2022-10-19 Tobias Burnus <tobias@codesourcery.com> |
175 | ||
176 | * trans-array.cc (non_negative_strides_array_p): Fix handling | |
177 | of GFC_DECL_SAVED_DESCRIPTOR. | |
178 | (gfc_conv_array_ref): Use ARRAY_REF again when possible. | |
179 | ||
cc4b1e41 TB |
180 | 2022-10-17 Tobias Burnus <tobias@codesourcery.com> |
181 | ||
182 | Backport from mainline: | |
183 | 2022-10-17 Tobias Burnus <tobias@codesourcery.com> | |
184 | ||
185 | PR fortran/107266 | |
186 | * trans-expr.cc (gfc_conv_string_parameter): Use passed | |
187 | type to honor character kind. | |
188 | * trans-types.cc (gfc_sym_type): Honor character kind. | |
189 | * trans-decl.cc (gfc_conv_cfi_to_gfc): Fix handling kind=4 | |
190 | character strings. | |
191 | ||
249a6ce0 TB |
192 | 2022-10-05 Tobias Burnus <tobias@codesourcery.com> |
193 | ||
194 | Backport from mainline: | |
195 | 2022-10-05 Tobias Burnus <tobias@codesourcery.com> | |
196 | ||
197 | * dump-parse-tree.cc (show_omp_assumes): New. | |
198 | (show_omp_clauses, show_namespace): Call it. | |
199 | (show_omp_node, show_code_node): Handle OpenMP ASSUME. | |
200 | * gfortran.h (enum gfc_statement): Add ST_OMP_ASSUME, | |
201 | ST_OMP_END_ASSUME, ST_OMP_ASSUMES and ST_NOTHING. | |
202 | (gfc_exec_op): Add EXEC_OMP_ASSUME. | |
203 | (gfc_omp_assumptions): New struct. | |
204 | (gfc_get_omp_assumptions): New XCNEW #define. | |
205 | (gfc_omp_clauses, gfc_namespace): Add assume member. | |
206 | (gfc_resolve_omp_assumptions): New prototype. | |
207 | * match.h (gfc_match_omp_assume, gfc_match_omp_assumes): New. | |
208 | * openmp.cc (omp_code_to_statement): Forward declare. | |
209 | (enum gfc_omp_directive_kind, struct gfc_omp_directive): New. | |
210 | (gfc_free_omp_clauses): Free assume member and its struct data. | |
211 | (enum omp_mask2): Add OMP_CLAUSE_ASSUMPTIONS. | |
212 | (gfc_omp_absent_contains_clause): New. | |
213 | (gfc_match_omp_clauses): Call it; optionally use passed | |
214 | omp_clauses argument. | |
215 | (omp_verify_merge_absent_contains, gfc_match_omp_assume, | |
216 | gfc_match_omp_assumes, gfc_resolve_omp_assumptions): New. | |
217 | (resolve_omp_clauses): Call the latter. | |
218 | (gfc_resolve_omp_directive, omp_code_to_statement): Handle | |
219 | EXEC_OMP_ASSUME. | |
220 | * parse.cc (decode_omp_directive): Parse OpenMP ASSUME(S). | |
221 | (next_statement, parse_executable, parse_omp_structured_block): | |
222 | Handle ST_OMP_ASSUME. | |
223 | (case_omp_decl): Add ST_OMP_ASSUMES. | |
224 | (gfc_ascii_statement): Handle Assumes, optional return | |
225 | string without '!$OMP '/'!$ACC ' prefix. | |
226 | * parse.h (gfc_ascii_statement): Add optional bool arg to prototype. | |
227 | * resolve.cc (gfc_resolve_blocks, gfc_resolve_code): Add | |
228 | EXEC_OMP_ASSUME. | |
229 | (gfc_resolve): Resolve ASSUMES directive. | |
230 | * symbol.cc (gfc_free_namespace): Free omp_assumes member. | |
231 | * st.cc (gfc_free_statement): Handle EXEC_OMP_ASSUME. | |
232 | * trans-openmp.cc (gfc_trans_omp_directive): Likewise. | |
233 | * trans.cc (trans_code): Likewise. | |
234 | ||
5c341c05 TB |
235 | 2022-10-05 Tobias Burnus <tobias@codesourcery.com> |
236 | ||
237 | Backport from mainline: | |
238 | 2022-10-04 Tobias Burnus <tobias@codesourcery.com> | |
239 | ||
240 | * parse.cc (decode_omp_directive): Handle '(end) loop' and 'scan' | |
241 | also with -fopenmp-simd. | |
242 | ||
5ee8de35 TB |
243 | 2022-09-30 Tobias Burnus <tobias@codesourcery.com> |
244 | ||
245 | Backport from mainline: | |
246 | 2022-09-30 Tobias Burnus <tobias@codesourcery.com> | |
247 | ||
248 | PR fortran/105318 | |
249 | * openmp.cc (resolve_omp_clauses): Update is_device_ptr restrictions | |
250 | for OpenMP 5.1 and map to has_device_addr where applicable; map | |
251 | use_device_ptr to use_device_addr where applicable. | |
252 | Silence integer-range warning for device(omp_{initial,invalid}_device). | |
d21bfef9 PAA |
253 | |
254 | 2022-09-28 Paul-Antoine Arras <pa@codesourcery.com> | |
255 | ||
256 | * parse.cc (gfc_ascii_statement): Missing $ in !$OMP END METADIRECTIVE. | |
257 | (parse_omp_structured_block): Fix handling of OMP end metadirective. | |
258 | (parse_omp_metadirective_body): Reject OMP end statements | |
259 | at the end of an OMP metadirective. | |
260 | ||
ff46d9d6 TB |
261 | 2022-09-23 Tobias Burnus <tobias@codesourcery.com> |
262 | ||
263 | Backport from mainline: | |
264 | 2022-09-20 Tobias Burnus <tobias@codesourcery.com> | |
265 | ||
266 | PR fortran/104143 | |
267 | * interface.cc (compare_parameter): Permit scalar args to | |
268 | 'type(*), dimension(*)'. | |
269 | ||
fa7e7381 TB |
270 | 2022-09-09 Tobias Burnus <tobias@codesourcery.com> |
271 | ||
272 | Backport from mainline: | |
273 | 2022-09-08 Tobias Burnus <tobias@codesourcery.com> | |
274 | ||
275 | PR fortran/106670 | |
276 | * scanner.cc (skip_fixed_omp_sentinel): Add -Wsurprising warning | |
277 | for 'omx' sentinels with -fopenmp. | |
278 | * invoke.texi (-Wsurprising): Document additional warning case. | |
279 | ||
e0859448 TB |
280 | 2022-09-06 Tobias Burnus <tobias@codesourcery.com> |
281 | ||
282 | Backport from mainline: | |
283 | 2022-09-06 Tobias Burnus <tobias@codesourcery.com> | |
284 | ||
285 | * openmp.cc (resolve_omp_clauses): Remove ordered/linear | |
286 | check as it is handled now in the middle end. | |
287 | ||
bc81271a TB |
288 | 2022-09-05 Tobias Burnus <tobias@codesourcery.com> |
289 | ||
290 | Backport from mainline: | |
291 | 2022-09-05 Tobias Burnus <tobias@codesourcery.com> | |
292 | ||
293 | * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Handle | |
294 | omp_cur_iteration and distinguish doacross/depend. | |
295 | * gfortran.h (enum gfc_omp_depend_doacross_op): Renamed from | |
296 | gfc_omp_depend_op. | |
297 | (enum gfc_omp_depend_doacross_op): Add OMP_DOACROSS_SINK_FIRST, | |
298 | Rename OMP_DEPEND_SINK to OMP_DOACROSS_SINK. | |
299 | (gfc_omp_namelist) Handle renaming, rename depend_op to | |
300 | depend_doacross_op. | |
301 | (struct gfc_omp_clauses): Add doacross_source. | |
302 | * openmp.cc (gfc_match_omp_depend_sink): Renamed to ... | |
303 | (gfc_match_omp_doacross_sink): ... this; handle omp_all_memory. | |
304 | (enum omp_mask2): Add OMP_CLAUSE_DOACROSS. | |
305 | (gfc_match_omp_clauses): Handle 'doacross' and syntax changes to | |
306 | depend. | |
307 | (gfc_match_omp_depobj): Simplify as sink/source are now impossible. | |
308 | (gfc_match_omp_ordered_depend): Request OMP_CLAUSE_DOACROSS. | |
309 | (resolve_omp_clauses): Update sink/source checks. | |
310 | (gfc_resolve_omp_directive): Resolve EXEC_OMP_ORDERED clauses. | |
311 | * parse.cc (decode_omp_directive): Handle 'ordered doacross'. | |
312 | * trans-openmp.cc (gfc_trans_omp_clauses): Handle doacross. | |
313 | (gfc_trans_omp_do): Fix OMP_FOR_ORIG_DECLS handling if 'ordered' | |
314 | clause is present. | |
315 | (gfc_trans_omp_depobj): Update for member name change. | |
316 | ||
92e848d3 JJ |
317 | 2022-09-05 Tobias Burnus <tobias@codesourcery.com> |
318 | ||
319 | Backport from mainline: | |
320 | 2022-09-03 Jakub Jelinek <jakub@redhat.com> | |
321 | ||
322 | * trans-openmp.cc (gfc_trans_omp_clauses): Use | |
323 | OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of | |
324 | OMP_CLAUSE_DEPEND_SINK_NEGATIVE, build OMP_CLAUSE_DOACROSS | |
325 | clause instead of OMP_CLAUSE_DEPEND and set OMP_CLAUSE_DOACROSS_DEPEND | |
326 | on it. | |
327 | ||
44d5246b TB |
328 | 2022-08-30 Tobias Burnus <tobias@codesourcery.com> |
329 | ||
330 | Backport from mainline: | |
331 | 2022-05-27 Tobias Burnus <tobias@codesourcery.com> | |
332 | Chung-Lin Tang <cltang@codesourcery.com> | |
333 | ||
334 | * openmp.cc (gfc_check_omp_requires): Fix clause name in error. | |
335 | ||
9b937ac0 TB |
336 | 2022-08-23 Tobias Burnus <tobias@codesourcery.com> |
337 | ||
338 | Backport from mainline: | |
339 | 2022-08-17 Tobias Burnus <tobias@codesourcery.com> | |
340 | ||
341 | PR fortran/106566 | |
342 | * openmp.cc (gfc_match_omp_clauses): Fix setting linear-step value | |
343 | to 1 when not specified. | |
344 | (gfc_match_omp_declare_simd): Accept module procedures. | |
345 | ||
547a6252 TB |
346 | 2022-07-29 Tobias Burnus <tobias@codesourcery.com> |
347 | ||
348 | Backport from mainline: | |
349 | 2022-07-29 Tobias Burnus <tobias@codesourcery.com> | |
350 | ||
351 | * openmp.cc (resolve_omp_clauses): Permit assumed-size arrays | |
352 | in uniform clause. | |
353 | ||
5e7baa3c TB |
354 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
355 | ||
356 | Backport from mainline: | |
357 | 2022-07-04 Tobias Burnus <tobias@codesourcery.com> | |
358 | Chung-Lin Tang <cltang@codesourcery.com> | |
359 | Thomas Schwinge <thomas@codesourcery.com> | |
360 | ||
361 | * openmp.cc (gfc_match_omp_requires): Remove sorry. | |
362 | * parse.cc (decode_omp_directive): Don't regard 'declare target' | |
363 | as target usage for 'omp requires'; add more flags to | |
364 | omp_requires_mask. | |
365 | ||
9492ed22 TB |
366 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
367 | ||
368 | Backport from mainline: | |
369 | 2022-07-04 Tobias Burnus <tobias@codesourcery.com> | |
370 | Jakub Jelinek <jakub@redhat.com> | |
371 | ||
372 | * gfortran.h (gfc_omp_namelist): Update by creating 'linear' struct, | |
373 | move 'linear_op' as 'op' to id and add 'old_modifier' to it. | |
374 | * dump-parse-tree.cc (show_omp_namelist): Update accordingly. | |
375 | * module.cc (mio_omp_declare_simd): Likewise. | |
376 | * trans-openmp.cc (gfc_trans_omp_clauses): Likewise. | |
377 | * openmp.cc (resolve_omp_clauses): Likewise; accept new-style | |
378 | 'val' modifier with do/simd. | |
379 | (gfc_match_omp_clauses): Handle OpenMP 5.2 linear clause syntax. | |
380 | ||
f9c809f0 TB |
381 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
382 | ||
383 | Backport from mainline: | |
384 | 2022-07-01 Tobias Burnus <tobias@codesourcery.com> | |
385 | ||
386 | * dump-parse-tree.cc (show_omp_namelist): For the map-type, | |
387 | also handle the always modifer and release/delete. | |
388 | * openmp.cc (resolve_omp_clauses): Accept tofrom | |
389 | map-type modifier for target enter/exit data, | |
390 | but use 'to' / 'from' internally. | |
391 | ||
0bded9db TB |
392 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
393 | ||
394 | Backport from mainline: | |
395 | 2022-06-08 Tobias Burnus <tobias@codesourcery.com> | |
396 | ||
397 | * openmp.cc (gfc_match_omp_clauses): Check also parent namespace | |
398 | for 'requires reverse_offload'. | |
399 | ||
b017548f JJ |
400 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
401 | ||
402 | Backport from mainline: | |
403 | 2022-06-07 Jakub Jelinek <jakub@redhat.com> | |
404 | ||
405 | * trans-openmp.cc (gfc_trans_omp_clauses): Set | |
406 | OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER on OMP_CLAUSE_LINEAR | |
407 | clauses unconditionally for now. | |
408 | ||
fc8e0d12 TB |
409 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
410 | ||
411 | Backport from mainline: | |
412 | 2022-06-03 Tobias Burnus <tobias@codesourcery.com> | |
413 | ||
414 | * openmp.cc (OMP_SCOPE_CLAUSES): Add firstprivate and allocate. | |
415 | ||
5d894208 TB |
416 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
417 | ||
418 | Backport from mainline: | |
419 | 2022-05-28 Tobias Burnus <tobias@codesourcery.com> | |
420 | ||
421 | * dump-parse-tree.cc (show_omp_clauses): Handle OMP_LIST_ENTER. | |
422 | * gfortran.h: Add OMP_LIST_ENTER. | |
423 | * openmp.cc (enum omp_mask2, OMP_DECLARE_TARGET_CLAUSES): Add | |
424 | OMP_CLAUSE_ENTER. | |
425 | (gfc_match_omp_clauses, gfc_match_omp_declare_target, | |
426 | resolve_omp_clauses): Handle 'enter' clause. | |
427 | ||
47b01438 TB |
428 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
429 | ||
430 | Backport from mainline: | |
431 | 2022-05-24 Tobias Burnus <tobias@codesourcery.com> | |
432 | ||
433 | PR c/105378 | |
434 | * openmp.cc (gfc_match_omp_taskwait): Accept nowait. | |
435 | ||
2dda9403 TB |
436 | 2022-07-05 Tobias Burnus <tobias@codesourcery.com> |
437 | ||
438 | Backport from mainline: | |
439 | 2022-05-18 Tobias Burnus <tobias@codesourcery.com> | |
440 | ||
441 | * gfortran.h (enum gfc_omp_depend_op): Add OMP_DEPEND_INOUTSET. | |
442 | (gfc_omp_clauses): Enlarge ENUM_BITFIELD. | |
443 | * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Handle | |
444 | 'inoutset' depend modifier. | |
445 | * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_depobj): Likewise. | |
446 | * trans-openmp.cc (gfc_trans_omp_clauses, gfc_trans_omp_depobj): | |
447 | Likewise. | |
448 | ||
c4157723 TB |
449 | 2022-07-04 Tobias Burnus <tobias@codesourcery.com> |
450 | ||
451 | Backport from mainline: | |
452 | 2022-05-17 Tobias Burnus <tobias@codesourcery.com> | |
453 | ||
454 | * trans-openmp.cc (gfc_trans_omp_clauses): When mapping nondescriptor | |
455 | array sections, use GOMP_MAP_FIRSTPRIVATE_POINTER instead of | |
456 | GOMP_MAP_POINTER for the pointer attachment. | |
457 | ||
458 | * dump-parse-tree.cc (show_omp_namelist): Handle omp_all_memory. | |
459 | * openmp.cc (gfc_match_omp_variable_list, gfc_match_omp_depend_sink, | |
460 | gfc_match_omp_clauses, resolve_omp_clauses): Likewise. | |
461 | * trans-openmp.cc (gfc_trans_omp_clauses, gfc_trans_omp_depobj): | |
462 | Likewise. | |
463 | * resolve.cc (resolve_symbol): Reject it as symbol. | |
464 | ||
438b4cec TB |
465 | 2022-07-04 Tobias Burnus <tobias@codesourcery.com> |
466 | ||
467 | Backport from mainline: | |
468 | 2022-05-13 Tobias Burnus <tobias@codesourcery.com> | |
469 | ||
470 | * trans-openmp.cc (gfc_trans_omp_clauses): When mapping nondescriptor | |
471 | array sections, use GOMP_MAP_FIRSTPRIVATE_POINTER instead of | |
472 | GOMP_MAP_POINTER for the pointer attachment. | |
473 | ||
82a3f9f2 KCY |
474 | 2022-06-30 Kwok Cheung Yeung <kcy@codesourcery.com> |
475 | ||
476 | * openmp.cc (gfc_resolve_omp_allocate): Initialize tail to NULL. | |
477 | ||
9fb0076b KCY |
478 | 2022-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> |
479 | ||
480 | * trans-array.cc (gfc_conv_array_ref): Update arguments to | |
481 | gfc_build_array_ref. | |
482 | ||
aec89cc4 SL |
483 | 2022-05-05 Sandra Loosemore <sandra@codesourcery.com> |
484 | ||
485 | Backport from mainline: | |
486 | 2022-05-05 Sandra Loosemore <sandra@codesourcery.com> | |
487 | ||
488 | * gfortran.h (struct gfc_omp_clauses): Add non_rectangular bit. | |
489 | * openmp.cc (is_outer_iteration_variable): New function. | |
490 | (expr_is_invariant): New function. | |
491 | (bound_expr_is_canonical): New function. | |
492 | (resolve_omp_do): Replace existing non-rectangularity error with | |
493 | check for canonical form and setting non_rectangular bit. | |
494 | * trans-openmp.cc (gfc_trans_omp_do): Transfer non_rectangular | |
495 | flag to generated tree structure. | |
496 | ||
28d79c96 SL |
497 | 2022-03-24 Sandra Loosemore <sandra@codesourcery.com> |
498 | ||
499 | Backport from mainline: | |
500 | ||
501 | 2022-03-24 Sandra Loosemore <sandra@codesourcery.com> | |
502 | ||
503 | * trans-openmp.cc (gfc_trans_omp_critical): Set location on OMP | |
504 | tree node. | |
505 | (gfc_trans_omp_do): Likewise. | |
506 | (gfc_trans_omp_masked): Likewise. | |
507 | (gfc_trans_omp_do_simd): Likewise. | |
508 | (gfc_trans_omp_scope): Likewise. | |
509 | (gfc_trans_omp_taskgroup): Likewise. | |
510 | (gfc_trans_omp_taskwait): Likewise. | |
511 | (gfc_trans_omp_distribute): Likewise. | |
512 | (gfc_trans_omp_taskloop): Likewise. | |
513 | (gfc_trans_omp_master_masked_taskloop): Likewise. | |
514 | ||
dbc770c4 CLT |
515 | 2022-06-17 Chung-Lin Tang <cltang@codesourcery.com> |
516 | ||
517 | Backport from mainline: | |
518 | 2022-06-17 Chung-Lin Tang <cltang@codesourcery.com> | |
519 | ||
520 | * gfortran.h (struct gfc_omp_namelist): Add memspace_sym, traits_sym | |
521 | fields. | |
522 | (OMP_LIST_USES_ALLOCATORS): New list enum. | |
523 | * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_USES_ALLOCATORS. | |
524 | (gfc_match_omp_clause_uses_allocators): New function. | |
525 | (gfc_match_omp_clauses): Add case to handle OMP_CLAUSE_USES_ALLOCATORS. | |
526 | (OMP_TARGET_CLAUSES): Add OMP_CLAUSE_USES_ALLOCATORS. | |
527 | (resolve_omp_clauses): Add "USES_ALLOCATORS" to clause_names[]. | |
528 | * dump-parse-tree.cc (show_omp_namelist): Handle OMP_LIST_USES_ALLOCATORS. | |
529 | (show_omp_clauses): Likewise. | |
530 | * trans-array.cc (gfc_conv_array_initializer): Adjust array index | |
531 | to always be a created tree expression instead of NULL_TREE when zero. | |
532 | * trans-openmp.cc (gfc_trans_omp_clauses): For ALLOCATE clause, handle | |
533 | using gfc_trans_omp_variable for EXPR_VARIABLE exprs. | |
534 | Add handling of OMP_LIST_USES_ALLOCATORS case. | |
535 | * types.def (BT_FN_VOID_PTRMODE): Define. | |
536 | (BT_FN_PTRMODE_PTRMODE_INT_PTR): Define. | |
537 | ||
2bdbbdb6 TB |
538 | 2022-05-23 Tobias Burnus <tobias@codesourcery.com> |
539 | ||
540 | Backport from mainline: | |
541 | 2022-05-23 Tobias Burnus <tobias@codesourcery.com> | |
542 | ||
543 | PR fortran/104949 | |
544 | * f95-lang.cc (LANG_HOOKS_OMP_ARRAY_SIZE): Redefine. | |
545 | * trans-openmp.cc (gfc_omp_array_size): New. | |
546 | (gfc_trans_omp_variable_list): Never turn has_device_addr | |
547 | to firstprivate. | |
548 | * trans.h (gfc_omp_array_size): New. | |
549 | ||
21357770 TB |
550 | 2022-05-12 Tobias Burnus <tobias@codesourcery.com> |
551 | ||
552 | * trans-array.cc (gfc_scalar_elemental_arg_saved_as_reference): | |
553 | Return true for attr.proc_pointer expressions. | |
554 | ||
319298fb TB |
555 | 2022-04-27 Tobias Burnus <tobias@codesourcery.com> |
556 | ||
557 | * resolve.cc (gfc_resolve_finalizers): Remove | |
558 | gfc_resolve_finalizers calls, use gfc_is_finalizable. | |
559 | (resolve_fl_derived): Resolve derived-type components | |
560 | first. | |
561 | ||
6d3366dd TB |
562 | 2022-04-25 Tobias Burnus <tobias@codesourcery.com> |
563 | ||
564 | * resolve.cc (gfc_resolve_finalizers): Also resolve allocatable comps. | |
565 | ||
7e14e1a8 AS |
566 | 2022-04-20 Andrew Stubbs <ams@codesourcery.com> |
567 | ||
568 | * openmp.cc (gfc_match_omp_requires): Check requires unified_address | |
569 | for conflict with -foffload-memory=shared. | |
570 | ||
fa65fc45 AS |
571 | 2022-03-10 Andrew Stubbs <ams@codesourcery.com> |
572 | ||
573 | Backport of the patch posted at | |
574 | https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591351.html | |
575 | ||
576 | * openmp.cc (gfc_match_omp_requires): Check compatibility of | |
577 | -foffload-memory option with requires directive. | |
578 | ||
d38d8653 HAQ |
579 | 2022-03-09 Abid Qadeer <abidh@codesourcery.com> |
580 | ||
581 | Backport of a patch posted at | |
582 | https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588370.html | |
583 | ||
584 | * gfortran.h (struct access_ref): Declare new members | |
585 | omp_allocated and omp_allocated_end. | |
586 | * openmp.cc (gfc_match_omp_allocate): Set new_st.resolved_sym to | |
587 | NULL. | |
588 | (prepare_omp_allocated_var_list_for_cleanup): New function. | |
589 | (gfc_resolve_omp_allocate): Call it. | |
590 | * trans-decl.cc (gfc_trans_deferred_vars): Process omp_allocated. | |
591 | * trans-openmp.ccc (gfc_trans_omp_allocate): Set kind for the stmt | |
592 | generated for allocate directive. | |
593 | ||
f59df0cd HAQ |
594 | 2022-03-09 Abid Qadeer <abidh@codesourcery.com> |
595 | ||
596 | Backport of a patch posted at | |
597 | https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588369.html | |
598 | ||
599 | * trans-openmp.cc (gfc_trans_omp_clauses): Handle OMP_LIST_ALLOCATOR. | |
600 | (gfc_trans_omp_allocate): New function. | |
601 | (gfc_trans_omp_directive): Handle EXEC_OMP_ALLOCATE. | |
602 | ||
491478d1 HAQ |
603 | 2022-03-09 Abid Qadeer <abidh@codesourcery.com> |
604 | ||
605 | Backport of a patch posted at | |
606 | https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588368.html | |
607 | ||
608 | * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_ALLOCATE. | |
609 | (show_code_node): Likewise. | |
610 | * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE. | |
611 | (OMP_LIST_ALLOCATOR): New enum value. | |
612 | (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE. | |
613 | * match.h (gfc_match_omp_allocate): New function. | |
614 | * openmp.cc (enum omp_mask1): Add OMP_CLAUSE_ALLOCATOR. | |
615 | (OMP_ALLOCATE_CLAUSES): New define. | |
616 | (gfc_match_omp_allocate): New function. | |
617 | (resolve_omp_clauses): Add ALLOCATOR in clause_names. | |
618 | (omp_code_to_statement): Handle EXEC_OMP_ALLOCATE. | |
619 | (EMPTY_VAR_LIST): New define. | |
620 | (check_allocate_directive_restrictions): New function. | |
621 | (gfc_resolve_omp_allocate): Likewise. | |
622 | (gfc_resolve_omp_directive): Handle EXEC_OMP_ALLOCATE. | |
623 | * parse.cc (decode_omp_directive): Handle ST_OMP_ALLOCATE. | |
624 | (next_statement): Likewise. | |
625 | (gfc_ascii_statement): Likewise. | |
626 | * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_ALLOCATE. | |
627 | * st.cc (gfc_free_statement): Likewise. | |
628 | * trans.cc (trans_code): Likewise | |
629 | ||
7eda84c4 HAQ |
630 | 2022-03-08 Abid Qadeer <abidh@codesourcery.com> |
631 | ||
632 | * parse.cc (gfc_parse_file): Set OMP_REQUIRES_DYNAMIC_ALLOCATORS | |
633 | bit in omp_requires_mask. | |
634 | ||
a6c1eccf TB |
635 | 2022-03-01 Tobias Burnus <tobias@codesourcery.com> |
636 | ||
637 | * class.cc (finalization_scalarizer): Mark syms as artificial. | |
638 | (generate_callback_wrapper): New. | |
639 | (gfc_find_derived_vtab): Call it, add _callback comp. | |
640 | * f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING, | |
641 | LANG_HOOKS_OMP_DEEP_MAPPING_P, | |
642 | LANG_HOOKS_OMP_DEEP_MAPPING_CNT): Redeinfe | |
643 | * gfortran.h (gfc_import_iso_c_binding_module, | |
644 | GFC_CLASS_CALLBACK_DEFAULT_FLAG, GFC_CLASS_CALLBACK_VTABLE_FLAG, | |
645 | GFC_CLASS_CB_ALLOCATABLE, GFC_CLASS_CB_POINTER, | |
646 | GFC_CLASS_CB_PROC_POINTER, GFC_CLASS_CB_VTABLE, | |
647 | GFC_CLASS_CB_VPTR): New. | |
648 | * match.cc (select_type_set_tmp): Propagate allocatable property. | |
649 | * module.cc (MOD_VERSION): Bump due to vtab change. | |
650 | (import_iso_c_binding_module): New import_all arg. | |
651 | (gfc_import_iso_c_binding_module): New. | |
652 | (gfc_use_module): Update call. | |
653 | * openmp.cc (resolve_omp_clauses): Accept DT with alloc comps. | |
654 | * resolve.cc (gfc_resolve_formal_arglist, gfc_resolve_intrinsic, | |
655 | resolve_fl_procedure, resolve_types): Permit some violations | |
656 | for internal code. | |
657 | * trans-array.cc (gfc_conv_descriptor_stride_get, | |
658 | gfc_tree_array_size, gfc_full_array_size): Update | |
659 | for GFC_TYPE_ARRAY_AKIND change. | |
660 | (gfc_conv_expr_descriptor): Likewise; permit calling with tree code. | |
661 | * trans-expr.cc (VTABLE_CALLBACK_FIELD): Add. | |
662 | (VTAB_GET_FIELD_GEN): Use it. | |
663 | (VTABLE_DEALLOCATE_FIELD): Undef at the end. | |
664 | (gfc_conv_expr_reference): Fixes; avoid unneccessary temp var. | |
665 | * trans-intrinsic.cc (gfc_conv_intrinsic_sizeof, | |
666 | gfc_conv_associated): Fix class and comp-ref handling. | |
667 | (conv_isocbinding_function): Remove buggy code. | |
668 | * trans-openmp.ccc (gfc_has_alloc_comps): Add ptr_ok arg. | |
669 | (gfc_omp_private_outer_ref, gfc_walk_alloc_comps, | |
670 | gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor, | |
671 | gfc_omp_clause_assign_op, gfc_omp_clause_dtor, | |
672 | (gfc_omp_finish_clause): Update call. | |
673 | (GFC_MAP_TOKEN_DATA, GFC_MAP_TOKEN_SIZES, GFC_MAP_TOKEN_KINDS, | |
674 | GFC_MAP_TOKEN_DATA_OFFSET, GFC_MAP_TOKEN_OFFSET, | |
675 | GFC_MAP_TOKEN_FLAGS, GFC_MAP_TOKEN_DETACH): Define. | |
676 | (gfc_omp_get_token_data, gfc_omp_get_token_sizes, | |
677 | gfc_omp_get_token_kinds, gfc_omp_get_token_offset_data, | |
678 | gfc_omp_get_token_offset, gfc_omp_get_token_flags, | |
679 | gfc_omp_get_token_detach, gfc_omp_get_map_token_type, | |
680 | gfc_omp_get_cb_type, gfc_omp_gen_deep_map_fn, | |
681 | gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item, | |
682 | gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop, | |
683 | gfc_omp_get_array_size, gfc_omp_elmental_loop, | |
684 | gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p, | |
685 | gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do), | |
686 | gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New. | |
687 | (gfc_trans_omp_array_section): Save clause decl to survive gimplifying. | |
688 | (gfc_trans_omp_clauses): Likewise; fixes. | |
689 | * trans-types.cc (gfc_build_array_type, gfc_get_derived_type, | |
690 | gfc_get_array_descr_info): Update array kind to distinguish | |
691 | different assumed-rank arrays. | |
692 | * trans.h (gfc_class_vtab_callback_get, gfc_omp_deep_mapping_p, | |
693 | gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New prototypes. | |
694 | (enum gfc_array_kind): Additional GFC_ARRAY_ASSUMED_RANK_* entries. | |
695 | ||
484384f0 KCY |
696 | 2022-02-11 Kwok Cheung Yeung <kcy@codesourcery.com> |
697 | ||
698 | * gfortran.h (is_omp_declarative_stmt): New. | |
699 | * openmp.cc (match_omp_metadirective): Reject declarative OpenMP | |
700 | directives with 'sorry'. | |
701 | * parse.cc (parse_omp_metadirective_body): Check that state stack head | |
702 | is non-null before dereferencing. | |
703 | (is_omp_declarative_stmt): New. | |
704 | ||
e0d1e494 KCY |
705 | 2022-02-11 Kwok Cheung Yeung <kcy@codesourcery.com> |
706 | ||
707 | * decl.cc (gfc_match_end): Search for first previous state that is not | |
708 | COMP_OMP_METADIRECTIVE. | |
709 | * gfortran.h (gfc_skip_omp_metadirective_clause): Add prototype. | |
710 | * openmp.cc (match_omp_metadirective): Skip clause if | |
711 | result of gfc_skip_omp_metadirective_clause is true. | |
712 | * trans-openmp.ccc (gfc_trans_omp_set_selector): Add argument and | |
713 | disable expression conversion if false. | |
714 | (gfc_skip_omp_metadirective_clause): New. | |
715 | ||
da1da230 KCY |
716 | 2022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com> |
717 | ||
718 | * openmp.cc (omp_target_device_selectors): New. | |
719 | (gfc_match_omp_context_selector): Accept 'target_device' selector set. | |
720 | Treat 'device_num' selector as expression. | |
721 | (gfc_match_omp_context_selector_specification): Handle 'target_device' | |
722 | selector set. | |
723 | * types.def (BT_FN_BOOL_INT_CONST_PTR_CONST_PTR_CONST_PTR): New type. | |
724 | ||
631148e2 KCY |
725 | 2022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com> |
726 | ||
727 | * decl.cc (gfc_match_end): Handle COMP_OMP_METADIRECTIVE and | |
728 | COMP_OMP_BEGIN_METADIRECTIVE. | |
729 | * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE. | |
730 | (show_code_node): Handle EXEC_OMP_METADIRECTIVE. | |
731 | * gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE, | |
732 | ST_OMP_BEGIN_METADIRECTIVE and ST_OMP_END_METADIRECTIVE. | |
733 | (struct gfc_omp_metadirective_clause): New structure. | |
734 | (gfc_get_omp_metadirective_clause): New macro. | |
735 | (struct gfc_st_label): Add omp_region field. | |
736 | (enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE. | |
737 | (struct gfc_code): Add omp_metadirective_clauses field. | |
738 | (gfc_free_omp_metadirective_clauses): New prototype. | |
739 | (match_omp_directive): New prototype. | |
740 | * io.cc (format_asterisk): Initialize omp_region field. | |
741 | * match.h (gfc_match_omp_begin_metadirective): New prototype. | |
742 | (gfc_match_omp_metadirective): New prototype. | |
743 | * openmp.cc (gfc_match_omp_eos): Match ')' in context selectors. | |
744 | (gfc_free_omp_metadirective_clauses): New. | |
745 | (gfc_match_omp_clauses): Remove context_selector argument. Rely on | |
746 | gfc_match_omp_eos to match end of clauses. | |
747 | (match_omp): Remove extra argument to gfc_match_omp_clauses. | |
748 | (gfc_match_omp_context_selector): Remove extra argument to | |
749 | gfc_match_omp_clauses. Set gfc_matching_omp_context_selector | |
750 | before call to gfc_match_omp_clauses and reset after. | |
751 | (gfc_match_omp_context_selector_specification): Modify to take a | |
752 | gfc_omp_set_selector** argument. | |
753 | (gfc_match_omp_declare_variant): Pass set_selectors to | |
754 | gfc_match_omp_context_selector_specification. | |
755 | (match_omp_metadirective): New. | |
756 | (gfc_match_omp_begin_metadirective): New. | |
757 | (gfc_match_omp_metadirective): New. | |
758 | (resolve_omp_metadirective): New. | |
759 | (gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE. | |
760 | * parse.cc (gfc_matching_omp_context_selector): New variable. | |
761 | (gfc_in_metadirective_body): New variable. | |
762 | (gfc_omp_region_count): New variable. | |
763 | (decode_omp_directive): Match 'begin metadirective', | |
764 | 'end metadirective' and 'metadirective'. | |
765 | (match_omp_directive): New. | |
766 | (case_omp_structured_block): New. | |
767 | (case_omp_do): New. | |
768 | (gfc_ascii_statement): Handle metadirective statements. | |
769 | (gfc_omp_end_stmt): New. | |
770 | (parse_omp_do): Delegate to gfc_omp_end_stmt. | |
771 | (parse_omp_structured_block): Delegate to gfc_omp_end_stmt. Handle | |
772 | ST_OMP_END_METADIRECTIVE. | |
773 | (parse_omp_metadirective_body): New. | |
774 | (parse_executable): Delegate to case_omp_structured_block and | |
775 | case_omp_do. Return after one statement if compiling regular | |
776 | metadirective. Handle metadirective statements. | |
777 | (gfc_parse_file): Reset gfc_omp_region_count, | |
778 | gfc_in_metadirective_body and gfc_matching_omp_context_selector. | |
779 | * parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE and | |
780 | COMP_OMP_BEGIN_METADIRECTIVE. | |
781 | (gfc_omp_end_stmt): New prototype. | |
782 | (gfc_matching_omp_context_selector): New declaration. | |
783 | (gfc_in_metadirective_body): New declaration. | |
784 | (gfc_omp_region_count): New declaration. | |
785 | * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE. | |
786 | * st.cc (gfc_free_statement): Handle EXEC_OMP_METADIRECTIVE. | |
787 | * symbol.cc (compare_st_labels): Take omp_region into account. | |
788 | (gfc_get_st_labels): Incorporate omp_region into label. | |
789 | * trans-decl.ccc (gfc_get_label_decl): Add omp_region into translated | |
790 | label name. | |
791 | * trans-openmp.ccc (gfc_trans_omp_directive): Handle | |
792 | EXEC_OMP_METADIRECTIVE. | |
793 | (gfc_trans_omp_set_selector): Hoist code from... | |
794 | (gfc_trans_omp_declare_variant): ...here. | |
795 | (gfc_trans_omp_metadirective): New. | |
796 | * trans-stmt.h (gfc_trans_omp_metadirective): New prototype. | |
797 | * trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE. | |
798 | ||
39a8c371 SL |
799 | 2021-11-16 Sandra Loosemore <sandra@codesourcery.com> |
800 | Tobias Burnus <tobias@codesourcery.com> | |
801 | ||
802 | * lang.opt (-param=delinearize=): New. | |
803 | * trans-array.cc (get_class_array_vptr): New, split from... | |
804 | (build_array_ref): ...here. | |
805 | (get_array_lbound, get_array_ubound): New, split from... | |
806 | (gfc_conv_array_ref): ...here. Additional code refactoring | |
807 | plus support for delinearization of the array access. | |
808 | ||
404817a4 JB |
809 | 2021-06-02 Julian Brown <julian@codesourcery.com> |
810 | ||
811 | * trans-openmp.cc (gfc_trans_omp_clauses): Don't create GOMP_MAP_TO_PSET | |
812 | mappings for class metadata, nor GOMP_MAP_POINTER mappings for | |
813 | POINTER_TYPE_P decls. | |
814 | ||
6ab6303f CLT |
815 | 2021-02-02 Chung-Lin Tang <cltang@codesourcery.com> |
816 | ||
817 | * openmp.cc (gfc_check_omp_requires): Fix REVERSE_OFFLOAD typo. | |
818 | (gfc_match_omp_requires): Adjust to only mention "not implemented yet" | |
819 | for OMP_REQUIRES_DYNAMIC_ALLOCATORS. | |
820 | * parse.cc ("tree.h"): Add include. | |
821 | ("omp-general.h"): Likewise. | |
822 | (gfc_parse_file): Add code to merge omp_requires to omp_requires_mask. | |
823 | ||
b813e919 SL |
824 | 2020-08-22 Sandra Loosemore <sandra@codesourcery.com> |
825 | ||
826 | Permit calls to Fortran intrinsics when annotating loops in | |
827 | kernels regions. | |
828 | ||
829 | * openmp.cc (check_expr_for_invalid_calls): Check for intrinsic | |
830 | functions. | |
831 | ||
8fa50b8d SL |
832 | 2020-08-19 Sandra Loosemore <sandra@codesourcery.com> |
833 | ||
834 | Annotate inner loops in "acc kernels loop" directives (Fortran). | |
835 | ||
836 | * openmp.cc (annotate_do_loops_in_kernels): Handle | |
837 | EXEC_OACC_KERNELS_LOOP separately to permit annotation of inner | |
838 | loops in a combined "acc kernels loop" directive. | |
839 | ||
652fff3f SL |
840 | 2020-08-19 Sandra Loosemore <sandra@codesourcery.com> |
841 | ||
842 | Add a "combined" flag for "acc kernels loop" etc directives. | |
843 | ||
844 | * trans-openmp.cc (gfc_trans_omp_do): Add combined parameter, | |
845 | use it to set OACC_LOOP_COMBINED. Update all call sites. | |
846 | ||
29fd0337 SL |
847 | 2020-03-27 Sandra Loosemore <sandra@codesourcery.com> |
848 | Gergö Barany <gergo@codesourcery.com> | |
849 | ||
850 | * gfortran.h (gfc_oacc_annotate_loops_in_kernels_regions): Declare. | |
851 | * lang.opt (Wopenacc-kernels-annotate-loops): New. | |
852 | (fopenacc-kernels-annotate-loops): New. | |
853 | * openmp.cc: Include options.h. | |
854 | (enum annotation_state, enum annotation_result): New. | |
855 | (check_code_for_invalid_calls): New. | |
856 | (check_expr_for_invalid_calls): New. | |
857 | (check_for_invalid_calls): New. | |
858 | (annotate_do_loop): New. | |
859 | (annotate_do_loops_in_kernels): New. | |
860 | (compute_goto_targets): New. | |
861 | (gfc_oacc_annotate_loops_in_kernels_regions): New. | |
862 | * parse.cc (gfc_parse_file): Handle -fopenacc-kernels-annotate-loops. | |
863 | ||
924b6fcc JB |
864 | 2020-02-19 Julian Brown <julian@codesourcery.com> |
865 | ||
866 | * trans-openmp.ccc (gfc_omp_check_optional_argument): Handle non-decl | |
867 | case. | |
868 | ||
869 | 2018-10-04 Cesar Philippidis <cesar@codesourcery.com> | |
870 | Julian Brown <julian@codesourcery.com> | |
871 | ||
872 | * gfortran.h (enum gfc_omp_map_op): Add OMP_MAP_DECLARE_ALLOCATE, | |
873 | OMP_MAP_DECLARE_DEALLOCATE. | |
874 | (gfc_omp_clauses): Add update_allocatable. | |
875 | * trans-array.c (gfc_array_allocate): Call | |
876 | gfc_trans_oacc_declare_allocate for decls that have oacc_declare_create | |
877 | attribute set. | |
878 | * trans-decl.c (find_module_oacc_declare_clauses): Relax oacc_declare_create to | |
879 | OMP_MAP_ALLOC, and oacc_declare_copyin to OMP_MAP_TO, in order to | |
880 | match OpenACC 2.5 semantics. | |
881 | * trans-openmp.c (gfc_trans_omp_clauses): Use GOMP_MAP_ALWAYS_POINTER | |
882 | (for update directive) or GOMP_MAP_FIRSTPRIVATE_POINTER (otherwise) for | |
883 | allocatable scalar decls. Handle OMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE} | |
884 | clauses. | |
885 | (gfc_trans_oacc_executable_directive): Use GOMP_MAP_ALWAYS_POINTER | |
886 | for allocatable scalar data clauses inside acc update directives. | |
887 | (gfc_trans_oacc_declare_allocate): New function. | |
888 | * trans-stmt.c (gfc_trans_allocate): Call | |
889 | gfc_trans_oacc_declare_allocate for decls with oacc_declare_create | |
890 | attribute set. | |
891 | (gfc_trans_deallocate): Likewise. | |
892 | * trans.h (gfc_trans_oacc_declare_allocate): Declare. | |
893 | ||
9f711701 JB |
894 | 2019-07-10 Julian Brown <julian@codesourcery.com> |
895 | ||
896 | * trans-openmp.cc (gfc_omp_finish_clause): Change clauses mapping | |
897 | assumed-size arrays to use the GOMP_MAP_FORCE_PRESENT map type. | |
898 | ||
1665877a JB |
899 | 2019-05-19 Julian Brown <julian@codesourcery.com> |
900 | ||
901 | * trans-openmp.cc (gfc_omp_finish_clause): Guard addition of clauses for | |
902 | pointers with DECL_P. | |
903 | ||
3a5e5254 JB |
904 | 2018-12-13 Cesar Philippidis <cesar@codesourcery.com> |
905 | Nathan Sidwell <nathan@acm.org> | |
906 | Julian Brown <julian@codesourcery.com> | |
907 | ||
908 | * openmp.cc (oacc_is_parallel): New. | |
909 | (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC | |
910 | gang reductions. | |
911 | * trans-openmp.ccc (gfc_omp_clause_copy_ctor): Permit reductions. | |
912 | ||
4c708e05 JB |
913 | 2018-06-29 Cesar Philippidis <cesar@codesourcery.com> |
914 | James Norris <jnorris@codesourcery.com> | |
915 | ||
916 | * openmp.cc (resolve_positive_int_expr): Promote the warning to an | |
917 | error. | |
918 | ||
15d0f61a CLT |
919 | 2020-04-19 Chung-Lin Tang <cltang@codesourcery.com> |
920 | ||
921 | PR other/76739 | |
922 | ||
923 | * f95-lang.cc (DEF_FUNCTION_TYPE_VAR_5): New symbol. | |
924 | * types.def (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_VAR): New type. |