1 2014-12-17 Thomas Schwinge <thomas@codesourcery.com>
3 * types.def: Remove BT_FN_VOID_INT_PTR_INT.
5 * openmp.c (gfc_match_omp_clauses): Use include/gomp-constants.h.
7 2014-11-20 Cesar Philippidis <cesar@codesourcery.com>
9 * openmp.c (resolve_oacc_cache): Mark the code parameter as
12 2014-11-13 Cesar Philippidis <cesar@codesourcery.com>
14 * match.c (match_exit_cycle): Restructure error strings.
15 * parse.c (is_oacc): Remove bogus break.
17 2014-11-13 Cesar Philippidis <cesar@codesourcery.com>
19 * f95-lang.c (DEF_GOACC_BUILTIN_COMPILER): Remove bogus TODO.
20 * gfortran.h (gfc_omp_clauses): Move loc out of the ext union and
22 * match.c (match_exit_cycle): Make the error message specific to
24 * openmp.c (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
25 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED
26 OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF,
27 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT,
28 OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED,
29 OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED,
30 OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR,
31 OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN,
32 OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM, OMP_CLAUSE_DEVICE,
33 OMP_CLAUSE_MAP, OMP_CLAUSE_TOOMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS,
34 OMP_CLAUSE_THREAD_LIMIT, OMP_CLAUSE_DIST_SCHEDULE, OMP_CLAUSE_ASYNC,
35 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH,
36 OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT, OMP_CLAUSE_CREATE,
37 OMP_CLAUSE_PRESENT, OMP_CLAUSE_PRESENT_OR_COPY,
38 OMP_CLAUSE_PRESENT_OR_COPYIN, OMP_CLAUSE_PRESENT_OR_COPYOUT,
39 OMP_CLAUSE_PRESENT_OR_CREATE, OMP_CLAUSE_DEVICEPTR,
40 OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
41 OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_USE_DEVICE,
42 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_HOST_SELF,
43 OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT, OMP_CLAUSE_DELETE,
44 OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): Use unit64_t for the bitmasks.
45 (gfc_match_omp_clauses): Use unit64_t for mask.
46 (gfc_match_oacc_declare): Update usage of omp_clause->loc.
47 (omp_code_to_statement): Fix whitespace.
48 (oacc_code_to_statement): Likewise.
49 (resolve_oacc_loop):Likewise.
50 (resolve_oacc_cache): Replace gfc_error with a sorry for this
51 unimplemented directive.
52 (gfc_resolve_oacc_declare): Update usage of omp_clause->loc. Remove
53 FIXME and TODO, see PR63869.
54 * parse.c (parse_critical_block): Make the error message specific to
56 (is_oacc): New function.
57 * parse.h (is_oacc): Declare.
58 * scanner.c (openmp_flag, openacc_flag): Move comment.
59 (gfc_next_char_literal): Merge nested if stmts.
60 * trans-openmp.c (gfc_trans_omp_clauses): Fix whitespace.
61 (gfc_trans_oacc_declare): Fix whitespace.
63 2014-11-11 Thomas Schwinge <thomas@codesourcery.com>
65 * gfortran.h (OMP_LIST_COPY, OMP_LIST_DATA_CLAUSE_FIRST)
66 (OMP_LIST_DATA_CLAUSE_LAST, OMP_LIST_LAST): Remove.
67 * dump-parse-tree.c (show_omp_clauses): Update.
68 * openmp.c (resolve_omp_clauses, gfc_resolve_oacc_declare):
70 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
71 (gfc_trans_omp_map_clause_list): Remove.
73 * gfortran.h (OMP_LIST_DEVICEPTR): Remove, and instead...
74 (enum gfc_omp_map_op): ... add OMP_MAP_FORCE_DEVICEPTR here.
75 * dump-parse-tree.c (show_omp_clauses): Update.
76 * openmp.c (gfc_match_omp_clauses, resolve_omp_clauses)
77 (gfc_resolve_oacc_declare): Likewise.
78 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
80 2014-11-05 Thomas Schwinge <thomas@codesourcery.com>
82 * openmp.c (OMP_CLAUSE_HOST, OMP_CLAUSE_SELF): Merge into the new
83 OMP_CLAUSE_HOST_SELF. Update all users.
85 * gfortran.texi: Update for OpenACC.
86 * intrinsic.texi: Likewise.
87 * invoke.texi: Likewise.
89 2014-11-04 Cesar Philippidis <cesar@codesourcery.com>
91 * gfortran.h (ST_OACC_ROUTINE): New statement enum.
92 * match.h (gfc_match_oacc_routine): New prototype.
93 * openmp.c (gfc_match_oacc_routine): New function.
94 * parse.c (decode_oacc_directive): Handle the routine directive.
95 (next_statement): Handle ST_OACC_ROUTINE.
96 (gfc_ascii_statement): Likewise.
98 2014-11-03 Cesar Philippidis <cesar@codesourcery.com>
100 * gfortran.h (enum OMP_LIST_HOST): Remove.
101 (enum OMP_LIST_DEVICE, OMP_LIST_DEVICE): Remove.
102 * dump-parse-tree.c (show_omp_clauses): Remove OMP_LIST_HOST and
103 OMP_LIST_DEVICE from here also.
104 * openmp.c (OMP_CLAUSE_SELF): New define.
105 (gfc_match_omp_clauses): Update handling of OMP_CLAUSE_HOST and
106 OMP_CLAUSE_DEVICE. Add support for OMP_CLAUSE_SELF.
107 * trans-openmp.c (gfc_trans_omp_clauses): Remove support for
108 OMP_LIST_HOST and OMP_LIST_DEVICE since they are treated as memory
110 (gfc_trans_oacc_executable_directive): Remove stale EXEC_OACC_WAIT.
112 2014-10-31 Cesar Philippidis <cesar@codesourcery.com>
114 * gfortran.h (struct gfc_omp_clauses): Remove non_clause_wait_expr.
115 * dump-parse-tree.c (show_omp_clauses): Likewise.
116 * openmp.c (gfc_free_omp_clauses): Likewise.
117 (gfc_match_omp_clauses): Update handling of async.
118 (OACC_WAIT_CLAUSE_MASK): New define.
119 (gfc_match_oacc_wait): Make the wait directive comply with OpenACC 2.0.
120 (resolve_omp_clauses): Use resolve_oacc_scalar_in_expr inspect
121 arguments to the wait clause.
122 (resolve_oacc_wait): Remove.
123 (gfc_resolve_oacc_directive): Handle EXEC_OACC_WAIT with
125 * trans-openmp.c (gfc_trans_omp_clauses): Update handling of OpenACC
127 (gfc_trans_oacc_executable_directive): Remove EXEC_OACC_WAIT.
128 (gfc_trans_oacc_wait_directive): New function.
129 (gfc_trans_oacc_directive): Use it.
131 2014-10-15 James Norris <jnorris@codesourcery.com>
133 * types.def (BT_FN_VOID_INT_PTR_INT): New type.
135 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
137 * f95-lang.c (DEF_GOACC_BUILTIN_COMPILER): New macro.
138 * types.def (BT_FN_INT_INT): New type.
140 2014-09-08 Cesar Philippidis <cesar@codesourcery.com>
142 * gfortran.h (enum OMP_LIST_FIRST, OMP_LIST_LAST): New
144 * openmp.c (oacc_compatible_clauses): New function.
145 (resolve_omp_clauses): Use it.
146 (struct omp_context): Add is_openmp member.
147 (gfc_resolve_omp_parallel_blocks): Set is_openmp true.
148 (gfc_resolve_do_iterator): Scan for compatible clauses.
149 (typedef oacc_context): Remove.
150 (oacc_current_ctx): Remove. Use omp_current_ctx for both
152 (resolve_oacc_directive_inside_omp_region): Replace
153 oacc_current_ctx with omp_current_ctx.
154 (resolve_omp_directive_inside_oacc_region): Likewise.
155 (resolve_oacc_nested_loops): Likewise.
156 (resolve_oacc_params_in_parallel): Likewise.
157 (resolve_oacc_loop_blocks): Likewise. Set is_openmp to false.
159 2014-07-28 Cesar Philippidis <cesar@codesourcery.com>
160 Thomas Schwinge <thomas@codesourcery.com>
161 Ilmir Usmanov <i.usmanov@samsung.com>
163 * gfortran.h (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC,
164 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
165 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT.
166 (enum) Remove OMP_LIST_OACC_COPYIN, OMP_LIST_COPYOUT,
167 OMP_LIST_CREATE, OMP_LIST_DELETE, OMP_LIST_PRESENT,
168 OMP_LIST_PRESENT_OR_COPY, OMP_LIST_PRESENT_OR_COPYIN,
169 OMP_LIST_PRESENT_OR_COPYOUT, OMP_LIST_PRESENT_OR_CREATE.
170 * dump-parse-tree.c (show_omp_clauses): Remove handling of
171 OMP_LIST_OACC_COPYIN, OMP_LIST_COPYOUT, OMP_LIST_CREATE,
172 OMP_LIST_DELETE, OMP_LIST_PRESENT, OMP_LIST_PRESENT_OR_COPY,
173 OMP_LIST_PRESENT_OR_COPYIN, OMP_LIST_PRESENT_OR_COPYOUT,
174 OMP_LIST_PRESENT_OR_CREATE.
175 * openmp.c (OMP_CLAUSE_OACC_COPYIN): Remove define.
176 (gfc_match_omp_map_clause): New function.
177 (gfc_match_omp_clauses): New openacc argument. Treat
178 OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT, OMP_CLAUSE_CREATE,
179 OMP_CLAUSE_DELETE, OMP_CLAUSE_PRESENT, OMP_CLAUSE_PRESENT_OR_COPY,
180 OMP_CLAUSE_PRESENT_OR_COPYIN, OMP_CLAUSE_PRESENT_OR_COPYOUT, and
181 OMP_CLAUSE_PRESENT_OR_CREATE as OpenMP memory maps. Also, remove
182 support for OMP_CLAUSE_OACC_COPYIN. Make OMP_CLAUSE_COPYIN
183 represent the COPYIN clause for both OpenACC and OpenMP.
184 (OACC_PARALLEL_CLAUSES): Replace OMP_CLAUSE_OACC_COPYIN with
186 (OACC_KERNEL_CLAUSES): Likewise.
187 (OACC_DATA_CLAUSES): Likewise.
188 (OACC_DECLARE_CLAUSES): Likewise.
189 (OACC_ENTER_DATA_CLAUSES): Likewise.
190 (gfc_match_oacc_parallel_loop): Call gfc_match_omp_clauses with
191 the openacc parameter as true.
192 (gfc_match_oacc_parallel): Likewise.
193 (gfc_match_oacc_kernels_loop): Likewise.
194 (gfc_match_oacc_kernels): Likewise.
195 (gfc_match_oacc_data): Likewise.
196 (gfc_match_oacc_host_data): Likewise.
197 (gfc_match_oacc_loop): Likewise.
198 (gfc_match_oacc_declare): Likewise.
199 (gfc_match_oacc_update): Likewise.
200 (gfc_match_oacc_enter_data): Likewise.
201 (gfc_match_oacc_exit_data): Likewise.
202 (resolve_omp_clauses): New openacc argument. Call
203 resolve_oacc_data_clauses to check additional errors.
204 (resolve_oacc_loop): Update call to resolve_omp_clauses.
205 (resolve_oacc_wait): Likewise.
206 (gfc_resolve_oacc_declare): Likewise.
207 (gfc_resolve_oacc_directive): Likewise.
208 * trans-openmp.c (gfc_trans_omp_clauses): Remove
209 OMP_LIST_OACC_COPYIN, OMP_LIST_COPYOUT, OMP_LIST_CREATE,
210 OMP_LIST_DELETE, OMP_LIST_PRESENT, OMP_LIST_PRESENT_OR_COPY,
211 OMP_LIST_PRESENT_OR_COPYIN, OMP_LIST_PRESENT_OR_COPYOUT,
212 OMP_LIST_PRESENT_OR_CREATE switch items. Handle
213 OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO,
214 OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT
215 clause memory mappings.
217 2014-07-08 Cesar Philippidis <cesar@codesourcery.com>
219 * gcc/fortran/scanner.c (gfc_next_char_literal): Fix the scan for
222 2014-07-03 Cesar Philippidis <cesar@codesourcery.com>
224 * scanner.c (skip_fixed_comments): Reset openacc_flag
225 if an openacc directive wasn't found.
227 2014-06-13 Ilmir Usmanov <i.usmanov@samsung.com>
228 Cesar Philippidis <cesar@codesourcery.com>
230 * trans-openmp.c (gfc_trans_oacc_combined_directive): Move under
232 (gfc_trans_omp_do, gfc_trans_oacc_directive): Handle EXEC_OACC_LOOP.
234 2014-04-05 Tobias Burnus <burnus@net-b.de>
237 * parse.c (decode_oacc_directive): Use gfc_unset_implicit_pure.
239 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
241 * f95-lang.c (DEF_FUNCTION_TYPE_10): Define.
243 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT): New type.
245 2014-03-13 Ilmir Usmanov <i.usmanov@samsung.com>
250 (show_omp_node): Dump also OpenACC executable statements.
251 (show_code_node): Call it.
252 (show_namespace): Dump !$ACC DECLARE directive.
254 (ST_OACC_PARALLEL_LOOP, ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL,
255 ST_OACC_END_PARALLEL, ST_OACC_KERNELS, ST_OACC_END_KERNELS,
256 ST_OACC_DATA, ST_OACC_END_DATA, ST_OACC_HOST_DATA,
257 ST_OACC_END_HOST_DATA, ST_OACC_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
258 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
259 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA,
260 ST_OACC_EXIT_DATA, ST_OACC_END_LOOP): New statements.
261 (gfc_expr_list): New structure to hold list of expressions.
262 (OMP_LIST_COPY, OMP_LIST_DATA_CLAUSE_FIRST,
263 OMP_LIST_OACC_COPYIN, OMP_LIST_COPYOUT, OMP_LIST_CREATE, OMP_LIST_DELETE,
264 OMP_LIST_PRESENT, OMP_LIST_PRESENT_OR_COPY,
265 OMP_LIST_PRESENT_OR_COPYIN, OMP_LIST_PRESENT_OR_COPYOUT,
266 OMP_LIST_PRESENT_OR_CREATE, OMP_LIST_DEVICEPTR,
267 OMP_LIST_DATA_CLAUSE_LAST, OMP_LIST_USE_DEVICE,
268 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_HOST, OMP_LIST_DEVICE,
269 OMP_LIST_CACHE): New types of list, allowed in clauses.
270 (gfc_omp_clauses): Add OpenACC clauses.
271 (gfc_namespace): Add OpenACC declare directive clauses.
272 (EXEC_OACC_KERNELS_LOOP, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
273 EXEC_OACC_KERNELS, EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
274 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
275 EXEC_OACC_EXIT_DATA): New executable statements.
276 (gfc_free_expr_list): New function declaration.
277 (gfc_resolve_oacc_directive): Likewise.
278 (gfc_resolve_oacc_parallel_loop_blocks): Likewise.
279 (gfc_resolve_oacc_blocks): Likewise.
280 * match.c (match_exit_cycle): Add support of OpenACC regions and loops.
281 * match.h (gfc_match_oacc_cache): New function declaration.
282 (gfc_match_oacc_wait, gfc_match_oacc_update): Likewise.
283 (gfc_match_oacc_declare, gfc_match_oacc_loop): Likewise.
284 (gfc_match_oacc_host_data, gfc_match_oacc_data): Likewise.
285 (gfc_match_oacc_kernels, gfc_match_oacc_kernels_loop): Likewise.
286 (gfc_match_oacc_parallel, gfc_match_oacc_parallel_loop): Likewise.
287 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data): Likewise.
288 * parse.c (decode_oacc_directive): New function.
289 (verify_token_free, verify_token_fixed): New helper functions.
290 (next_free, next_fixed): Decode !$ACC sentinel.
291 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT, ST_OACC_CACHE,
292 ST_OACC_ENTER_DATA and ST_OACC_EXIT_DATA directives.
293 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
294 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP and
295 ST_OACC_KERNELS_LOOP directives.
296 (push_state): Initialize OpenACC declare clauses.
297 (gfc_ascii_statement): Dump names of OpenACC directives.
298 (verify_st_order): Verify OpenACC declare directive as declarative.
299 (parse_spec): Push clauses to state stack when declare directive is
301 (parse_oacc_structured_block, parse_oacc_loop): New functions.
302 (parse_executable): Call them.
303 (parse_progunit): Move declare clauses from state stack to namespace.
304 * parse.h (gfc_state_data): Add declare directive's clauses.
305 * resolve.c (gfc_resolve_blocks): Resolve OpenACC directives.
306 (resolve_code): Likewise.
307 * scanner.c (openacc_flag, openacc_locus): New static variables.
308 (skip_oacc_attribute, skip_omp_attribute): New helper functions.
309 (skip_free_comments, skip_fixed_comments): Don't skip !$ACC sentinel.
310 (gfc_next_char_literal): Support OpenACC directives.
311 * st.c (gfc_free_statement): Free also OpenACC directives.
313 (gfc_free_omp_clauses): Remove also OpenACC clauses.
314 (gfc_free_expr_list): New function to clear expression list.
315 (match_oacc_expr_list): New function to match expression list.
316 (match_oacc_clause_gang): New function to match OpenACC 2.0 gang clauses.
317 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS,
318 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH,
319 OMP_CLAUSE_COPY, OMP_CLAUSE_OACC_COPYIN,
320 OMP_CLAUSE_COPYOUT, OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT,
321 OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN,
322 OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE,
323 OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
324 OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
325 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_HOST, OMP_CLAUSE_DEVICE_RESIDENT,
326 OMP_CLAUSE_DEVICE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_WAIT,
327 OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New clauses.
328 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
329 OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES,
330 OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
331 OACC_UPDATE_CLAUSES, OACC_ENTER_DATA_CLAUSES,
332 OACC_EXIT_DATA_CLAUSES): New defines.
333 (gfc_match_oacc_parallel_loop, gfc_match_oacc_parallel,
334 gfc_match_oacc_kernels_loop, gfc_match_oacc_kernels,
335 gfc_match_oacc_data, gfc_match_oacc_host_data, gfc_match_oacc_loop,
336 gfc_match_oacc_declare, gfc_match_oacc_update,
337 gfc_match_oacc_enter_data, gfc_match_oacc_exit_data,
338 gfc_match_oacc_wait, gfc_match_oacc_cache, oacc_is_loop,
339 check_symbol_not_pointer, resolve_oacc_scalar_int_expr,
340 resolve_oacc_positive_int_expr, check_array_not_assumed,
341 resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause,
342 oacc_is_parallel, oacc_is_kernels, omp_code_to_statement,
343 oacc_code_to_statement, resolve_oacc_directive_inside_omp_region,
344 resolve_omp_directive_inside_oacc_region, resolve_oacc_nested_loops,
345 resolve_oacc_params_in_parallel, resolve_oacc_loop_blocks,
346 gfc_resolve_oacc_blocks, resolve_oacc_loop, resolve_oacc_cache,
347 resolve_oacc_wait, gfc_resolve_oacc_declare,
348 gfc_resolve_oacc_directive): New functions.
349 (resolve_omp_clauses): Resolve also OpenACC clauses.
350 (gfc_resolve_omp_directive): Check for enclosing OpenACC region.
352 (gfc_generate_function_code): Insert OACC_DECLARE GENERIC node.
353 * trans-openmp.c (gfc_convert_expr_to_tree): New helper function.
354 (gfc_trans_omp_array_reduction): Support also OpenACC. Add parameter.
355 (gfc_trans_omp_reduction_list): Update.
356 (gfc_trans_oacc_construct): New transform function.
357 (gfc_trans_omp_map_clause_list): Likewise.
358 (gfc_trans_oacc_executable_directive): Likewise.
359 (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Likewise.
360 (gfc_trans_oacc_directive): Use them.
361 (gfc_trans_oacc_loop): Stub.
362 (gfc_trans_omp_clauses): Transform OpenACC clauses.
363 * trans-stmt.h (gfc_trans_oacc_directive): New function prototype.
364 (gfc_trans_oacc_declare): Likewise.
365 * trans.c (trans_code): Transform also OpenACC directives.
367 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
369 * f95-lang.c (DEF_GOACC_BUILTIN): New macro.
370 Include "../oacc-builtins.def".
372 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
374 * lang.opt (fopenacc): New option.
375 * invoke.texi (-fopenacc): Document it.
376 * gfortran.h (gfc_option_t): New member.
377 * options.c (gfc_init_options, gfc_handle_option): Handle it.
379 2013-09-26 Jakub Jelinek <jakub@redhat.com>
382 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
383 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
385 2013-09-19 Jakub Jelinek <jakub@redhat.com>
387 * types.def (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR): Remove.
388 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR): New.
390 2013-09-18 Jakub Jelinek <jakub@redhat.com>
392 * trans-openmp.c (gfc_omp_clause_default_ctor,
393 gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
395 2013-09-05 Jakub Jelinek <jakub@redhat.com>
397 * types.def (BT_FN_VOID_UINT_UINT, BT_FN_VOID_INT_SIZE_PTR_PTR_PTR,
398 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR): New.
400 2013-07-09 Jakub Jelinek <jakub@redhat.com>
402 * types.def (BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL): New.
404 2013-04-10 Jakub Jelinek <jakub@redhat.com>
406 * f95-lang.c (DEF_FUNCTION_TYPE_8): Define.
407 * types.def (DEF_FUNCTION_TYPE_8): Document.
408 (BT_FN_VOID_OMPFN_PTR_UINT, BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
409 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): Remove.
410 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
411 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
412 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT): New.
414 2013-03-27 Jakub Jelinek <jakub@redhat.com>
416 * f95-lang.c (ATTR_NULL): Define.
418 Copyright (C) 2013-2014 Free Software Foundation, Inc.
420 Copying and distribution of this file, with or without modification,
421 are permitted in any medium without royalty provided the copyright
422 notice and this notice are preserved.