| 2019-10-09 Tobias Burnus <tobias@codesourcery.com> |
| |
| * hooks.c (hook_tree_tree_null): New. |
| * hooks.h (hook_tree_tree_null): Declare. |
| * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. |
| * langhooks.h (lang_hooks_for_types): Add omp_array_data. |
| * omp-general.c (omp_is_optional_argument): Handle value+optional. |
| * omp-low.c (omp_context): Add array_data_map + present_map. |
| (install_var_field): Handle array descriptors. |
| (delete_omp_context): Free new maps. |
| (scan_sharing_clauses): Handle array descriptors. |
| (lower_omp_target): Ditto. Fix optional-arg present check. |
| |
| 2019-10-08 Tobias Burnus <tobias@codesourcery.com> |
| |
| Backported from mainline |
| 2019-10-08 Tobias Burnus <tobias@codesourcery.com> |
| |
| * parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD. |
| |
| 2019-10-08 Tobias Burnus <tobias@codesourcery.com> |
| |
| Backported from mainline |
| 2019-10-08 Tobias Burnus <tobias@codesourcery.com> |
| |
| * match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos. |
| * openmp.c (gfc_match_omp_eos): Make static. |
| (gfc_match_omp_eos_error): New. |
| * parse.c (matchs, matchdo, matchds): Do as done for 'matcho' - |
| if error occurred after OpenMP/OpenACC directive matched, do not |
| try other directives. |
| (decode_oacc_directive, decode_omp_directive): Call new function |
| instead. |
| |
| 2019-10-02 Tobias Burnus <tobias@codesourcery.com> |
| |
| Backported from mainline |
| 2019-10-02 Tobias Burnus <tobias@codesourcery.com> |
| |
| * openmp.c (gfc_match_omp_clauses): Show a clause-parsing |
| error if none was rised before. |
| * parse.c (matcha, matcho): If error occurred after |
| OpenMP/OpenACC directive matched, do not try other directives. |
| |
| 2019-09-20 Tobias Burnus <tobias@codesourcery.com> |
| |
| Backported from mainline |
| 2019-09-20 Tobias Burnus <tobias@codesourcery.com> |
| |
| * openmp.c (gfc_resolve_oacc_declare): Reject all |
| non variables but accept function result variables. |
| * trans-openmp.c (gfc_trans_omp_clauses): Handle |
| function-result variables for remaing cases. |
| |
| 2019-09-17 Tobias Burnus <tobias@codesourcery.com> |
| |
| * trans-expr.c (gfc_auto_dereference_var): Use passed loc argument. |
| |
| 2019-09-06 Andrew Stubbs <ams@codesourcery.com> |
| |
| Backport from mainline: |
| |
| 2019-07-05 Andrew Stubbs <ams@codesourcery.com> |
| |
| * openmp.c (resolve_omp_clauses): Add custom error messages for |
| parameters in map clauses. |
| |
| 2019-07-10 Julian Brown <julian@codesourcery.com> |
| |
| * trans-openmp.c (gfc_omp_finish_clause): Change clauses mapping |
| assumed-size arrays to use the GOMP_MAP_FORCE_PRESENT map type. |
| |
| 2019-07-10 Julian Brown <julian@codesourcery.com> |
| |
| * openmp.c (resolve_oacc_data_clauses): Allow polymorphic allocatable |
| variables. |
| * trans-expr.c (gfc_conv_component_ref, |
| conv_parent_component_reference): Make global. |
| (gfc_auto_dereference_var): New function, broken out of... |
| (gfc_conv_variable): ...here. Call outlined function instead. |
| * trans-openmp.c (gfc_trans_omp_array_section): New function, broken out |
| of... |
| (gfc_trans_omp_clauses): ...here. Separate out OpenACC derived |
| type/polymorphic class pointer handling. Call above outlined function. |
| * trans.h (gfc_conv_component_ref, conv_parent_component_references, |
| gfc_auto_dereference_var): Add prototypes. |
| |
| 2019-05-19 Julian Brown <julian@codesourcery.com> |
| |
| * trans-openmp.c (gfc_omp_finish_clause): Guard addition of clauses for |
| pointers with DECL_P. |
| |
| 2019-01-09 Julian Brown <julian@codesourcery.com> |
| |
| * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711. |
| * gfortran.texi: Update mentions of OpenACC version to 2.6. |
| * intrinsic.texi: Likewise. |
| |
| 2019-01-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * lang.opt (fopenacc-kernels): Default to "split". |
| |
| 2019-01-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * lang.opt (fopenacc-kernels): New flag. |
| |
| 2018-12-19 Julian Brown <julian@codesourcery.com> |
| Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC. |
| * openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE. |
| (gfc_match_omp_clauses): Support no_create. |
| (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES) |
| (OACC_SERIAL_CLAUSES, OACC_DATA_CLAUSES): Add |
| OMP_CLAUSE_NO_CREATE. |
| * trans-openmp.c (gfc_trans_omp_clauses_1): Support |
| OMP_MAP_NO_ALLOC. |
| |
| 2018-12-20 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP, |
| ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL |
| enumeration constants. |
| (gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL |
| enumeration constants. |
| * match.h (gfc_match_oacc_serial): New prototype. |
| (gfc_match_oacc_serial_loop): Likewise. |
| * dump-parse-tree.c (show_omp_node, show_code_node): Handle |
| EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. |
| * match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP. |
| * openmp.c (OACC_SERIAL_CLAUSES): New macro. |
| (OACC_SERIAL_CLAUSE_DEVICE_TYPE_MASK): Likewise. |
| (gfc_match_oacc_serial_loop): New function. |
| (gfc_match_oacc_serial): Likewise. |
| (oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP. |
| (resolve_omp_clauses): Handle EXEC_OACC_SERIAL. |
| (oacc_is_serial): New function. |
| (oacc_code_to_statement): Handle EXEC_OACC_SERIAL and |
| EXEC_OACC_SERIAL_LOOP. |
| (gfc_resolve_oacc_directive): Likewise. |
| * parse.c (decode_oacc_directive) <'s'>: Add case for "serial" |
| and "serial loop". |
| (next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL. |
| (gfc_ascii_statement): Likewise. Handle ST_OACC_END_SERIAL_LOOP |
| and ST_OACC_END_SERIAL. |
| (parse_oacc_structured_block): Handle ST_OACC_SERIAL. |
| (parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and |
| ST_OACC_END_SERIAL_LOOP. |
| (parse_executable): Handle ST_OACC_SERIAL_LOOP and |
| ST_OACC_SERIAL. |
| (is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL. |
| * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. |
| * st.c (gfc_free_statement): Likewise. |
| * trans-openmp.c (gfc_trans_oacc_construct): Handle |
| EXEC_OACC_SERIAL. |
| (gfc_trans_oacc_combined_directive): Handle |
| EXEC_OACC_SERIAL_LOOP. |
| (gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and |
| EXEC_OACC_SERIAL. |
| * trans.c (trans_code): Likewise. |
| |
| 2017-12-21 Cesar Philippidis <cesar@codesourcery.com> |
| |
| * types.def: (BF_FN_VOID_INT_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR): |
| Define. |
| |
| 2018-12-21 Gergรถ Barany <gergo@codesourcery.com> |
| |
| * openmp.c (OACC_HOST_DATA_CLAUSES): Add OMP_CLAUSE_IF and |
| OMP_CLAUSE_IF_PRESENT. |
| |
| 2019-01-30 Kwok Cheung Yeung <kcy@codesourcery.com> |
| |
| * trans-openmp.c (gfc_build_conditional_assign): New. |
| (gfc_build_conditional_assign_expr): New. |
| (gfc_omp_finish_clause): Add conditionals to set the clause |
| declaration to null and size to zero if the declaration is a |
| non-present optional argument. |
| (gfc_trans_omp_clauses_1): Likewise. |
| |
| 2018-10-04 Cesar Philippidis <cesar@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| |
| * gfortran.h (enum gfc_omp_map_op): Add OMP_MAP_DECLARE_ALLOCATE, |
| OMP_MAP_DECLARE_DEALLOCATE. |
| (gfc_omp_clauses): Add update_allocatable. |
| * trans-array.c (gfc_array_allocate): Call |
| gfc_trans_oacc_declare_allocate for decls that have oacc_declare_create |
| attribute set. |
| * trans-decl.c (add_attributes_to_decl): Enable lowering of OpenACC |
| declare create, declare copyin and declare deviceptr clauses. |
| (find_module_oacc_declare_clauses): Relax oacc_declare_create to |
| OMP_MAP_ALLOC, and oacc_declare_copyin to OMP_MAP_TO, in order to |
| match OpenACC 2.5 semantics. |
| (finish_oacc_declare): Reset module_oacc_clauses before scanning each |
| namespace. |
| * trans-openmp.c (gfc_trans_omp_clauses): Use GOMP_MAP_ALWAYS_POINTER |
| (for update directive) or GOMP_MAP_FIRSTPRIVATE_POINTER (otherwise) for |
| allocatable scalar decls. Handle OMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE} |
| clauses. |
| (gfc_trans_oacc_executable_directive): Use GOMP_MAP_ALWAYS_POINTER |
| for allocatable scalar data clauses inside acc update directives. |
| (gfc_trans_oacc_declare_allocate): New function. |
| * trans-stmt.c (gfc_trans_allocate): Call |
| gfc_trans_oacc_declare_allocate for decls with oacc_declare_create |
| attribute set. |
| (gfc_trans_deallocate): Likewise. |
| * trans.h (gfc_trans_oacc_declare_allocate): Declare. |
| |
| 2018-12-13 Cesar Philippidis <cesar@codesourcery.com> |
| Nathan Sidwell <nathan@acm.org> |
| Julian Brown <julian@codesourcery.com> |
| |
| * openmp.c (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC |
| gang reductions. |
| * trans-openmp.c (gfc_omp_clause_copy_ctor): Permit reductions. |
| |
| 2018-06-29 Cesar Philippidis <cesar@codesourcery.com> |
| James Norris <jnorris@codesourcery.com> |
| |
| * openmp.c (gfc_match_omp_map_clause): Re-write handling of the |
| deviceptr clause. Add new common_blocks argument. Propagate it to |
| gfc_match_omp_variable_list. |
| (gfc_match_omp_clauses): Update calls to gfc_match_omp_map_clauses. |
| (resolve_positive_int_expr): Promote the warning to an error. |
| (check_array_not_assumed): Remove pointer check. |
| (resolve_oacc_nested_loops): Error on do concurrent loops. |
| * trans-openmp.c (gfc_omp_finish_clause): Don't create pointer data |
| mappings for deviceptr clauses. |
| (gfc_trans_omp_clauses): Likewise. |
| |
| 2018-10-02 Thomas Schwinge <thomas@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * gfortran.h (gfc_omp_clauses): Add nohost members. |
| * openmp.c (omp_mask2): Add OMP_CLAUSE_NOHOST. |
| (gfc_match_omp_clauses): Handle OMP_CLAUSE_NOHOST. |
| (gfc_match_oacc_routine): Set oacc_function_nohost when appropriate. |
| * gfortran.h (symbol_attribute): Add oacc_function_nohost member. |
| * trans-openmp.c (gfc_add_omp_offload_attributes): Use it to decide |
| whether to generate an OMP_CLAUSE_NOHOST clause. |
| (gfc_trans_omp_clauses_1): Unreachable code to generate an |
| OMP_CLAUSE_NOHOST clause. |
| |
| 2018-12-14 Julian Brown <julian@codesourcery.com> |
| |
| * gfortran.h (gfc_omp_map_op): Add OMP_MAP_ATTACH, OMP_MAP_DETACH. |
| * openmp.c (gfc_match_omp_variable_list): Add allow_derived parameter. |
| Parse derived-type member accesses if true. |
| (omp_mask2): Add OMP_CLAUSE_ATTACH and OMP_CLAUSE_DETACH. |
| (gfc_match_omp_map_clause): Add allow_derived parameter. Pass to |
| gfc_match_omp_variable_list. |
| (gfc_match_omp_clauses): Support attach and detach. Support derived |
| types for appropriate OpenACC directives. |
| (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES) |
| (OACC_ENTER_DATA_CLAUSES): Add OMP_CLAUSE_ATTACH. |
| (OACC_EXIT_DATA_CLAUSES): Add OMP_CLAUSE_DETACH. |
| (check_symbol_not_pointer): Don't disallow pointer objects of derived |
| type. |
| (resolve_oacc_data_clauses): Don't disallow allocatable derived types. |
| (resolve_omp_clauses): Perform duplicate checking only for non-derived |
| type component accesses (plain variables and arrays or array sections). |
| Support component refs. |
| * trans-openmp.c (gfc_omp_privatize_by_reference): Support component |
| refs. |
| (gfc_trans_omp_clauses): Support component refs, attach and detach |
| clauses. |
| |
| 2015-08-20 Joseph Myers <joseph@codesourcery.com> |
| |
| PR libgomp/81886 |
| * gfortranspec.c (lang_specific_pre_link): Update call to do_spec. |
| |