1. 20 Dec, 2019 31 commits
    • re PR c++/92992 (Side-effects dropped when decltype(nullptr) typed expression is… · 6c7b8430
      re PR c++/92992 (Side-effects dropped when decltype(nullptr) typed expression is passed to ellipsis)
      
      	PR c++/92992
      	* call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments
      	that have side-effects use cp_build_compound_expr.
      
      	* g++.dg/cpp0x/nullptr45.C: New test.
      
      From-SVN: r279680
      Jakub Jelinek committed
    • Rename signed integer 16/34-bit macros. · 03e487e5
      2019-12-20   Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/predicates.md (cint34_operand): Use
      	SIGNED_INTEGER_34BIT_P macro.
      	* config/rs6000/rs6000.c (num_insns_constant_gpr): Use the
      	SIGNED_INTEGER_16BIT_P and SIGNED_INTEGER_34BIT_P macros.
      	(address_to_insn_form): Use the SIGNED_INTEGER_16BIT_P and
      	SIGNED_INTEGER_34BIT_P macros.
      	* config/rs6000/rs6000.h (SIGNED_INTEGER_NBIT_P): New macro.
      	(SIGNED_INTEGER_16BIT_P): Rename SIGNED_16BIT_OFFSET_P to be
      	SIGNED_INTEGER_34BIT_P.
      	(SIGNED_INTEGER_34BIT_P): Rename SIGNED_34BIT_OFFSET_P to be
      	SIGNED_INTEGER_34BIT_P.
      
      From-SVN: r279677
      Michael Meissner committed
    • c-ada-spec.h (decl_sloc): Delete. · 39292e25
      c-family/
      	* c-ada-spec.h (decl_sloc): Delete.
      	* c-ada-spec.c (decl_sloc): Make static.
      c/
      	* c-decl.c (collect_source_ref_cb): Delete.
      	(for_each_global_decl): Rename into...
      	(collect_source_refs): ...this.  Call collect_source_ref directly.
      	(c_parse_final_cleanups): Always call collect_source_ref on the main
      	input filename.
      cp/
      	* decl2.c (c_parse_final_cleanups): Always call collect_source_ref on
      	the main input filename.
      
      From-SVN: r279670
      Eric Botcazou committed
    • fortran: Fix PR number in comment of testcase for PR 69497 · 02e85427
      The testcase was originally committed with an incorrect changelog and PR
      number. The changelog was fixed later, but not the comment in the test.
      
      	PR fortran/69497
      	* gfortran.dg/pr69497.f90: Fix PR number in comment.
      
      From-SVN: r279657
      Jonathan Wakely committed
    • libstdc++: Add inline to maybe-constexpr functions (PR 92927) · 7770bd7e
      Originally these functions were always inline. I changed them in r277342
      to be always constexpr, then in r277588 changed them to be constexpr for
      C++14, but I didn't restore the 'inline' for C++11. That leads to linker
      errors when libstdc++.so is built unoptimized, because those functions
      don't get instantiated in src/c++11/string-inst.o
      
      	PR libstdc++/92927
      	* include/bits/alloc_traits.h (__alloc_on_copy, __alloc_on_move)
      	(__alloc_on_swap): Add inline specifier.
      
      From-SVN: r279656
      Jonathan Wakely committed
    • gcc/testsuite/ChangeLog: · 9260fb06
      2019-12-20  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* lib/target-supports.exp 
      	(check_effective_target_arm_v8_2a_i8mm_ok_nocache): New.
      	(check_effective_target_arm_v8_2a_i8mm_ok): New.
      	(add_options_for_arm_v8_2a_i8mm): New.
      	(check_effective_target_arm_v8_2a_bf16_neon_ok_nocache): New.
      	(check_effective_target_arm_v8_2a_bf16_neon_ok): New.
      	(add_options_for_arm_v8_2a_bf16_neon): New.
      
      gcc/Changelog:
      
      2019-12-20  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* doc/sourcebuild.texi
      	(arm_v8_2a_bf16_neon_ok): Document new target supports option.
      	(arm_v8_2a_i8mm_ok): Likewise.
      
      From-SVN: r279648
      Stam Markianos-Wright committed
    • Rename tests to reference the correct PR · 0f6a7c12
      2019-12-20  Roman Zhuykov  <zhroma@ispras.ru>
      
      	* gcc.dg/pr92951-1.c: Rename to ...
      	* gcc.dg/pr92591-1.c: ... this.
      	* gcc.dg/pr92951-2.c: Rename to ...
      	* gcc.dg/pr92591-2.c: ... this.
      
      From-SVN: r279645
      Roman Zhuykov committed
    • libstdc++: Test setrlimit with c++ in configure · 84de780d
      	* acinclude.m4 (GLIBCXX_CHECK_SETRLIMIT): Test with AC_LANG_CPLUSPLUS.
      	* configure: Regenerate.
      
      From-SVN: r279644
      Jerome Lambourg committed
    • libstdc++: Fix versioned namespace tests · 33bd8e5e
      	* testsuite/23_containers/map/48101_neg.cc: Add versioned namespace
      	pattern to tested error message.
      	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
      	* testsuite/30_threads/headers/stop_token/synopsis.cc: Add
      	dg-require-normal-namepace.
      
      From-SVN: r279641
      François Dumont committed
    • libstdc++: Fix pretty printers script and tests · e278e62f
      	* python/libstdcxx/v6/printers.py (lookup_node_type): Remove redundant
      	call to lookup_node_type.
      	* testsuite/libstdc++-prettyprinters/80276.cc: Define
      	_GLIBCXX_USE_CXX11_ABI to 0.
      	* testsuite/libstdc++-prettyprinters/91997.cc: Use regexp-test to check
      	'a' content.
      
      From-SVN: r279640
      François Dumont committed
    • Introduce -finline-arg-packing. · 95d27703
      2019-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR middle-end/91512
          PR fortran/92738
          * invoke.texi: Document -finline-arg-packing.
          * lang.opt: Add -finline-arg-packing.
          * options.c (gfc_post_options): Handle -finline-arg-packing.
          * trans-array.c (gfc_conv_array_parameter): Use
          flag_inline_arg_packing instead of checking for optimize and
          optimize_size.
      
      2019-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR middle-end/91512
          PR fortran/92738
          * gfortran.dg/inline_pack_25.f90: New test.
      
      From-SVN: r279639
      Thomas Koenig committed
    • Fortran] PR 92996 – fix rank resolution EXPR_ARRAY · de89b574
              PR fortran/92996
              gcc/fortran/
              * expr.c (simplify_parameter_variable): Call gfc_resolve_ref and
              gfc_expression_rank; fix location info.
              * gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare.
              * match.c (gfc_match_stopcode): Remove redundant setting of
              gfc_init_expr_flag; early return if gfc_simplify_expr has an error.
              * resolve.c (gfc_expression_rank): Renamed from expression_rank;
              minor cleanup.
              (gfc_resolve_ref): Removed static and renamed from resolve_ref.
              (resolve_variable, resolve_typebound_function,
              resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc,
              gfc_resolve_expr, resolve_procedure): Update calls.
      
              PR fortran/92996
              gcc/testsuite/
              * gfortran.dg/array_simplify_4.f90: New.
              * gfortran.dg/pr91565.f90: Update dg-error.
              * gfortran.dg/pr91801.f90: Likewise.
      
      From-SVN: r279638
      Tobias Burnus committed
    • Improve is-coindexed check for OpenACC/OpenMP · e565e49f
              gcc/fortran/
              * openmp.c (resolve_omp_clauses): Move is-coindexed check from here ...
              (gfc_match_omp_variable_list): ... to here.
      
              gcc/testsuite/
              * gfortran.dg/goacc/coindexed-1.f90: New.
      
      From-SVN: r279637
      Tobias Burnus committed
    • Add myself to MAINTAINERS · 74a7b87a
      From-SVN: r279636
      Jerome Lambourg committed
    • libstdc++: Strengthen the check for availability of pthread_rwlock_t · 7607ff49
              * acinclude.m4 (_GLIBCXX_USE_PTHREAD_RWLOCK_T): Checks that
              _PTHREADS is defined after including gthr.h.
              * configure: Regenerate.
      
      From-SVN: r279635
      Jerome Lambourg committed
    • Fix testsuite-fallout of OpenACC deep-copy patch · 211c667f
              gcc/testsuite/
              * gfortran.dg/goacc/data-clauses.f95: Remove now
              obsolete dg-error.
      
      From-SVN: r279634
      Tobias Burnus committed
    • re PR target/92841 (Optimize -fstack-protector-strong code generation a bit) · 3439487f
      	PR target/92841
      	* config/i386/i386.md (*stack_protect_set_3): For pic_32bit_operand
      	always use lea{q}, no matter what value which_alternative has.
      
      	* gcc.target/i386/pr92841-2.c: New test.
      
      From-SVN: r279633
      Jakub Jelinek committed
    • re PR target/93002 (while(i--) optimization) · 99675d5c
      	PR target/93002
      	* config/i386/i386.md (dec reg; cmp $-1, reg; jne lab): New
      	define_peephole2.
      
      	* gcc.target/i386/pr93002.c: New test.
      
      From-SVN: r279632
      Jakub Jelinek committed
    • Fortran polymorphic class-type support for OpenACC · 9be3ac5d
      	gcc/fortran/
      	* openmp.c (resolve_oacc_data_clauses): Don't disallow allocatable
      	polymorphic types for OpenACC.
      	* trans-openmp.c (gfc_trans_omp_clauses): Support polymorphic class
      	types.
      
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/class-ptr-param.f95: New test.
      	* testsuite/libgomp.oacc-fortran/classtypes-1.f95: New test.
      	* testsuite/libgomp.oacc-fortran/classtypes-2.f95: New test.
      
      From-SVN: r279631
      Julian Brown committed
    • OpenACC 2.6 deep copy: Fortran execution tests · 02817027
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/deep-copy-1.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-2.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-3.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-4.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-5.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-6.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-7.f90: New test.
      	* testsuite/libgomp.oacc-fortran/deep-copy-8.f90: New test.
      	* testsuite/libgomp.oacc-fortran/derived-type-1.f90: New test.
      	* testsuite/libgomp.oacc-fortran/derivedtype-1.f95: New test.
      	* testsuite/libgomp.oacc-fortran/derivedtype-2.f95: New test.
      	* testsuite/libgomp.oacc-fortran/multidim-slice.f95: New test.
      	* testsuite/libgomp.oacc-fortran/update-2.f90: New test.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      
      From-SVN: r279630
      Julian Brown committed
    • OpenACC 2.6 deep copy: C and C++ execution tests · c2eb021f
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-2.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-10.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-11.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-14.c: New test.
      	* testsuite/libgomp.oacc-c++/deep-copy-12.C: New test.
      	* testsuite/libgomp.oacc-c++/deep-copy-13.C: New test.
      
      From-SVN: r279629
      Julian Brown committed
    • OpenACC 2.6 deep copy: Fortran front-end parts · 549188ea
              gcc/fortran/
              * 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_SERIAL_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-expr.c (gfc_conv_component_ref,
              conv_parent_component_references): Make global.
              (gfc_maybe_dereference_var): New function, broken out of...
              (gfc_conv_variable): ...here.  Call above function.
              * trans-openmp.c (gfc_omp_privatize_by_reference): Support component
              refs.
              (gfc_trans_omp_array_section): New function, broken out of...
              (gfc_trans_omp_clauses): ...here.  Support component refs/derived
              types, attach and detach clauses.
              * trans.h (gfc_conv_component_ref, conv_parent_component_references,
              gfc_maybe_dereference_var): Add prototypes.
      
              gcc/testsuite/
              * gfortran.dg/goacc/derived-types.f90: New test.
              * gfortran.dg/goacc/derived-types-2.f90: New test.
              * gfortran.dg/goacc/derived-types-3.f90: New test.
              * gfortran.dg/goacc/data-clauses.f95: Adjust for expected errors.
              * gfortran.dg/goacc/enter-exit-data.f95: Likewise.
      
      From-SVN: r279628
      Julian Brown committed
    • OpenACC 2.6 deep copy: C and C++ front-end parts · 519d7496
      	gcc/c-family/
      	* c-common.h (c_omp_map_clause_name): Add prototype.
      	* c-omp.c (c_omp_map_clause_name): New function.
      	* c-pragma.h (pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ATTACH and
      	PRAGMA_OACC_CLAUSE_DETACH.
      
      	gcc/c/
      	* c-parser.c (c_parser_omp_clause_name): Add parsing of attach and
      	detach clauses.
      	(c_parser_omp_variable_list): Add ALLOW_DEREF optional parameter.
      	Allow deref (->) in variable lists if true.
      	(c_parser_omp_var_list_parens): Add ALLOW_DEREF optional parameter.
      	Pass to c_parser_omp_variable_list.
      	(c_parser_oacc_data_clause): Support attach and detach clauses.  Update
      	call to c_parser_omp_variable_list.
      	(c_parser_oacc_all_clauses): Support attach and detach clauses.
      	(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK,
      	OACC_KERNELS_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
      	OACC_SERIAL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_ATTACH.
      	(OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DETACH.
      	* c-typeck.c (handle_omp_array_sections_1): Reject subarrays for attach
      	and detach.  Support deref.
      	(handle_omp_array_sections): Use GOMP_MAP_ATTACH_DETACH instead of
      	GOMP_MAP_ALWAYS_POINTER for OpenACC.
      	(c_oacc_check_attachments): New function.
      	(c_finish_omp_clauses): Check attach/detach arguments for being
      	pointers using above.  Support deref.
      
      	gcc/cp/
      	* parser.c (cp_parser_omp_clause_name): Support attach and detach
      	clauses.
      	(cp_parser_omp_var_list_no_open): Add ALLOW_DEREF optional parameter.
      	Parse deref if true.
      	(cp_parser_omp_var_list): Add ALLOW_DEREF optional parameter.  Pass to
      	cp_parser_omp_var_list_no_open.
      	(cp_parser_oacc_data_clause): Support attach and detach clauses.
      	Update call to cp_parser_omp_var_list_no_open.
      	(cp_parser_oacc_all_clauses): Support attach and detach.
      	(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK,
      	OACC_KERNELS_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK,
      	OACC_SERIAL_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_ATTACH.
      	(OACC_EXIT_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_DETACH.
      	* semantics.c (handle_omp_array_sections_1): Reject subarrays for
      	attach and detach.
      	(handle_omp_array_sections): Use GOMP_MAP_ATTACH_DETACH instead of
      	GOMP_MAP_ALWAYS_POINTER for OpenACC.
      	(cp_oacc_check_attachments): New function.
      	(finish_omp_clauses): Use above function.  Allow structure fields and
      	class members to appear in OpenACC data clauses.  Support
      	GOMP_MAP_ATTACH_DETACH.  Support deref.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/deep-copy-arrayofstruct.c: New test.
      	* c-c++-common/goacc/mdc-1.c: New test.
      	* c-c++-common/goacc/mdc-2.c: New test.
      	* gcc.dg/goacc/mdc.C: New test.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      
      From-SVN: r279627
      Julian Brown committed
    • OpenACC 2.6 deep copy: middle-end parts · 4fd872bc
      	gcc/
      	* gimplify.c (gimplify_omp_var_data): Add GOVD_MAP_HAS_ATTACHMENTS.
      	(insert_struct_comp_map): Support derived-type member mappings
      	for arrays with descriptors which use GOMP_MAP_TO_PSET.  Support
      	GOMP_MAP_ATTACH_DETACH.
      	(gimplify_scan_omp_clauses): Tidy up OACC_ENTER_DATA/OACC_EXIT_DATA
      	mappings.  Handle attach/detach clauses and component references.
      	(gimplify_adjust_omp_clauses_1): Skip adjustments for explicit
      	attach/detach clauses.
      	(gimplify_omp_target_update): Handle struct mappings and finalize for
      	detach operations.
      	* omp-low.c (lower_omp_target): Support GOMP_MAP_ATTACH,
      	GOMP_MAP_DETACH, GOMP_MAP_FORCE_DETACH.
      	* tree-pretty-print.c (dump_omp_clause): Likewise, plus
      	GOMP_MAP_ATTACH_DETACH.
      
      	include/
      	* gomp-constants.h (gomp_map_kind): Add GOMP_MAP_ATTACH_DETACH.
      
      From-SVN: r279626
      Julian Brown committed
    • OpenACC 2.6 deep copy: libgomp parts · 8e7e71ff
      	include/
      	* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_4, GOMP_MAP_DEEP_COPY):
      	Define.
      	(gomp_map_kind): Add GOMP_MAP_ATTACH, GOMP_MAP_DETACH,
      	GOMP_MAP_FORCE_DETACH.
      
      	libgomp/
      	* libgomp.h (struct target_var_desc): Add do_detach flag.
      	* oacc-init.c (acc_shutdown_1): Free aux block if present.
      	* oacc-mem.c (find_group_last): Add SIZES parameter. Support
      	struct components.  Tidy up and add some new checks.
      	(goacc_enter_data_internal): Update call to find_group_last.
      	(goacc_exit_data_internal): Support detach operations and
      	GOMP_MAP_STRUCT.
      	(GOACC_enter_exit_data): Handle initial GOMP_MAP_STRUCT or
      	GOMP_MAP_FORCE_PRESENT in finalization detection code.  Handle
      	attach/detach in enter/exit data detection code.
      	* target.c (gomp_map_vars_existing): Initialise do_detach field of
      	tgt_var_desc.
      	(gomp_map_vars_internal): Support attach.
      	(gomp_unmap_vars_internal): Support detach.
      
      From-SVN: r279625
      Julian Brown committed
    • OpenACC 2.6 deep copy: attach/detach API routines · 5d5be7bf
      	libgomp/
      	* libgomp.h (struct splay_tree_aux): Add attach_count field.
      	(gomp_attach_pointer, gomp_detach_pointer): Add prototypes.
      	* libgomp.map (OACC_2.6): New section. Add acc_attach,
      	acc_attach_async, acc_detach, acc_detach_async, acc_detach_finalize,
      	acc_detach_finalize_async.
      	* oacc-mem.c (acc_attach_async, acc_attach, goacc_detach_internal,
      	acc_detach, acc_detach_async, acc_detach_finalize,
      	acc_detach_finalize_async): New functions.
      	* openacc.h (acc_attach, acc_attach_async, acc_detach,
      	(acc_detach_async, acc_detach_finalize, acc_detach_finalize_async): Add
      	prototypes.
      	* target.c (gomp_attach_pointer, gomp_detach_pointer): New functions.
      	(gomp_remove_var_internal): Free attachment counts if present.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c: New test.
      
      Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r279624
      Julian Brown committed
    • Factor out duplicate code in gimplify_scan_omp_clauses · 4d83edf7
      	gcc/
      	* gimplify.c (insert_struct_comp_map, extract_base_bit_offset): New.
      	(gimplify_scan_omp_clauses): Outline duplicated code into calls to
      	above two functions.
      
      From-SVN: r279623
      Julian Brown committed
    • Use gomp_map_val for OpenACC host-to-device address translation · 5bcd470b
      	libgomp/
      	* libgomp.h (gomp_map_val): Add prototype.
      	* oacc-parallel.c (GOACC_parallel_keyed): Use gomp_map_val instead of
      	open-coding device-address calculation.
      	* target.c (gomp_map_val): Make global. Use OFFSET_POINTER in
      	non-present case.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      
      From-SVN: r279622
      Julian Brown committed
    • OpenACC reference count overhaul · 378da98f
      	libgomp/
      	* libgomp.h (struct splay_tree_key_s): Substitute dynamic_refcount
      	field for virtual_refcount.
      	(enum gomp_map_vars_kind): Add GOMP_MAP_VARS_OPENACC_ENTER_DATA.
      	(gomp_free_memmap): Remove prototype.
      	* oacc-init.c (acc_shutdown_1): Iteratively call gomp_remove_var
      	instead of calling gomp_free_memmap.
      	* oacc-mem.c (acc_map_data): Use virtual_refcount instead of
      	dynamic_refcount.
      	(acc_unmap_data): Open code instead of forcing target_mem_desc's
      	to_free field to NULL then calling gomp_unmap_vars.  Handle
      	REFCOUNT_INFINITY on target blocks.
      	(goacc_enter_data): Rename to...
      	(goacc_enter_datum): ...this.  Remove MAPNUM parameter and special
      	handling for mapping groups.  Use virtual_refcount instead of
      	dynamic_refcount.  Use GOMP_MAP_VARS_OPENACC_ENTER_DATA for
      	map_map_vars_async call.  Re-do lookup for target pointer return value.
      	(acc_create, acc_create_async, acc_copyin, acc_copyin_async): Call
      	renamed goacc_enter_datum function.
      	(goacc_exit_data): Rename to...
      	(goacc_exit_datum): ...this.  Update for virtual_refcount semantics.
      	(acc_delete, acc_delete_async, acc_delete_finalize,
      	acc_delete_finalize_async, acc_copyout, acc_copyout_async,
      	acc_copyout_finalize, acc_copyout_finalize_async): Call renamed
      	goacc_exit_datum function.
      	(gomp_acc_remove_pointer, find_pointer): Remove functions.
      	(find_group_last, goacc_enter_data_internal, goacc_exit_data_internal):
      	New functions.
      	(GOACC_enter_exit_data): Use goacc_enter_data_internal and
      	goacc_exit_data_internal helper functions.
      	* target.c (gomp_map_vars_internal): Handle
      	GOMP_MAP_VARS_OPENACC_ENTER_DATA.  Update for virtual_refcount
      	semantics.
      	(gomp_unmap_vars_internal): Update for virtual_refcount semantics.
      	(gomp_load_image_to_device, omp_target_associate_ptr): Zero-initialise
      	virtual_refcount field instead of dynamic_refcount.
      	(gomp_free_memmap): Remove function.
      	* testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c: New test.
      	* testsuite/libgomp.c-c++-common/unmap-infinity-2.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: Add XFAIL.
      
      From-SVN: r279621
      Julian Brown committed
    • Use aux struct in libgomp for infrequently-used/API-specific data · 2a656a93
      	libgomp/
      	* libgomp.h (struct splay_tree_aux): New.
      	(struct splay_tree_key_s): Replace link_key field with aux pointer.
      	* target.c (gomp_map_vars_internal): Adjust for link_key being moved
      	to aux struct.
      	(gomp_remove_var_internal): Free aux block if present.
      	(gomp_load_image_to_device): Zero-initialise aux field instead of
      	link_key field.
      	(omp_target_associate_pointer): Zero-initialise aux field.
      
      Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r279620
      Julian Brown committed
    • Daily bump. · 8cce8b85
      From-SVN: r279619
      GCC Administrator committed
  2. 19 Dec, 2019 9 commits
    • re PR target/92905 (Spills float-int union to memory) · a8a728aa
      2019-12-19  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/92905
      	* lra-constraints.c (process_alt_operands): Check offmemok when
      	processing preferred_reload_class.
      
      2019-12-19  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/92905
      	* gcc.target/i386/pr92905.c: New test.
      
      From-SVN: r279596
      Vladimir Makarov committed
    • Update g++.dg/ext/sve-sizeless-2.C after r279471 · 38830e50
      2019-12-19  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* g++.dg/ext/sve-sizeless-2.C: Don't expect an error for
      	alias templates.
      
      From-SVN: r279588
      Richard Sandiford committed
    • Allow constants in amdgcn extends and truncates · 82975c74
      2019-12-19  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md
      	(<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>):
      	Change input predcate to gcn_alu_operand.
      	(extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>):
      	Likewise.
      	(truncv64di<mode>2): Likewise.
      	(truncv64di<mode>2_exec): Likewise.
      	(<convop><mode>v64di2): Likewise.
      	(<convop><mode>v64di2_exec): Likewise.
      
      From-SVN: r279587
      Andrew Stubbs committed
    • Use V64SI for all amdgcn add-with-carry insns · 3a4d2bbc
      2019-12-19  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (*plus_carry_dpp_shr_<mode>): Rename to ...
      	(*plus_carry_dpp_shr_v64si): ... this, and replace all
      	VEC_1REG_INT_MODE with V64SI.
      
      From-SVN: r279584
      Andrew Stubbs committed
    • Prevent conversion of character data in array constructors. · 8405874a
         
      Fix for PR fortran/92896 [10 Regression] [DEC] ICE in reduce_unary, at
      fortran/arith.c:1283.
          
      This was caused by an unintended side affect of "Allow CHARACTER literals
      in assignments and data statements" (revision 277975). If the conversion
      occurs in a array constructor it is rejected.
      
      From-SVN: r279583
      Mark Eggleston committed
    • hash-map-tests.c: add a selftest involving int_hash · aa0e90e7
      gcc/ChangeLog:
      	* hash-map-tests.c (selftest::test_map_of_int_to_strings): New
      	selftest.
      	(selftest::hash_map_tests_c_tests): Call it.
      
      From-SVN: r279582
      David Malcolm committed
    • gimple const-correctness fixes · 0e7b6a51
      This patch converts various "gimple *" to "const gimple *" and similar
      fixes for gimple subclasses, adding is_a_helper for gimple subclasses
      to support the const form of as_a, and adding a few "const" overloads
      of accessors.
      
      This is enough to make pp_gimple_stmt_1's stmt const.
      
      gcc/ChangeLog:
      	* gimple-predict.h (gimple_predict_predictor): Make "gs" param
      	const.
      	(gimple_predict_outcome): Likewise.
      	* gimple-pretty-print.c (do_niy): Likewise.
      	(dump_unary_rhs): Likewise.
      	(dump_binary_rhs): Likewise.
      	(dump_ternary_rhs): Likewise.
      	(dump_gimple_assign): Likewise.
      	(dump_gimple_return): Likewise.
      	(dump_gimple_call_args): Likewise.
      	(pp_points_to_solution): Make "pt" param const.
      	(dump_gimple_call): Make "gs" param const.
      	(dump_gimple_switch): Likewise.
      	(dump_gimple_cond): Likewise.
      	(dump_gimple_label): Likewise.
      	(dump_gimple_goto): Likewise.
      	(dump_gimple_bind): Likewise.
      	(dump_gimple_try): Likewise.
      	(dump_gimple_catch): Likewise.
      	(dump_gimple_eh_filter): Likewise.
      	(dump_gimple_eh_must_not_throw): Likewise.
      	(dump_gimple_eh_else): Likewise.
      	(dump_gimple_resx): Likewise.
      	(dump_gimple_eh_dispatch): Likewise.
      	(dump_gimple_debug): Likewise.
      	(dump_gimple_omp_for): Likewise.
      	(dump_gimple_omp_continue): Likewise.
      	(dump_gimple_omp_single): Likewise.
      	(dump_gimple_omp_taskgroup): Likewise.
      	(dump_gimple_omp_target): Likewise.
      	(dump_gimple_omp_teams): Likewise.
      	(dump_gimple_omp_sections): Likewise.
      	(dump_gimple_omp_block): Likewise.
      	(dump_gimple_omp_critical): Likewise.
      	(dump_gimple_omp_ordered): Likewise.
      	(dump_gimple_omp_scan): Likewise.
      	(dump_gimple_omp_return): Likewise.
      	(dump_gimple_transaction): Likewise.
      	(dump_gimple_asm): Likewise.
      	(dump_gimple_phi): Make "phi" param const.
      	(dump_gimple_omp_parallel): Make "gs" param const.
      	(dump_gimple_omp_task): Likewise.
      	(dump_gimple_omp_atomic_load): Likewise.
      	(dump_gimple_omp_atomic_store): Likewise.
      	(dump_gimple_mem_ops): Likewise.
      	(pp_gimple_stmt_1): Likewise.  Add "const" to the various as_a <>
      	casts throughout.
      	* gimple-pretty-print.h (gimple_stmt_1): Make gimple * param const.
      	* gimple.h (is_a_helper <const gdebug *>::test): New.
      	(is_a_helper <const ggoto *>::test): New.
      	(is_a_helper <const glabel *>::test): New.
      	(is_a_helper <const geh_else *>::test): New.
      	(is_a_helper <const geh_mnt *>::test): New.
      	(is_a_helper <const gswitch *>::test): New.
      	(is_a_helper <const gtry *>::test): New.
      	(is_a_helper <const greturn *>::test): New.
      	(gimple_call_tail_p): Make param const.
      	(gimple_call_return_slot_opt_p): Likewise.
      	(gimple_call_va_arg_pack_p): Likewise.
      	(gimple_call_use_set): Add const overload.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_has_lhs): Make param const.
      	(gimple_bind_body): Likewise.
      	(gimple_catch_handler): Likewise.
      	(gimple_eh_filter_failure): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Likewise.
      	(gimple_eh_else_n_body): Likewise.
      	(gimple_eh_else_e_body): Likewise.
      	(gimple_try_eval): Likewise.
      	(gimple_try_cleanup): Likewise.
      	(gimple_phi_arg): Add const overload.
      	(gimple_phi_arg_def): Make param const.
      	(gimple_phi_arg_edge): Likewise.
      	(gimple_phi_arg_location): Likewise.
      	(gimple_phi_arg_has_location): Likewise.
      	(gimple_debug_bind_get_var): Likewise.
      	(gimple_debug_bind_get_value): Likewise.
      	(gimple_debug_source_bind_get_var): Likewise.
      	(gimple_debug_source_bind_get_value): Likewise.
      	(gimple_omp_body): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_pre_body): Likewise.
      	(gimple_transaction_body): Likewise.
      	* tree-eh.c (lookup_stmt_eh_lp_fn): Make param "t" const.
      	(lookup_stmt_eh_lp): Likewise.
      	* tree-eh.h (lookup_stmt_eh_lp_fn): Make param const.
      	(lookup_stmt_eh_lp): Likewise.
      	* tree-ssa-alias.h (pt_solution_empty_p): Make param const.
      	* tree-ssa-structalias.c (pt_solution_empty_p): Likewise.
      
      From-SVN: r279581
      David Malcolm committed
    • [AArch64] Fix handling of npatterns>1 constants for partial SVE modes · b23c6a2c
      For partial SVE vectors of element X, we want to treat duplicates
      of single X elements in the same way as for full vectors of X.
      But if a constant instead contains a repeating pattern of X elements,
      the transition from one value to the next must happen at container
      boundaries rather than element boundaries.  E.g. a VNx4HI should
      in that case contain the same number of constants as a VNx4SI.
      
      Fixing this means that we need a reinterpret from the container-based
      mode to the partial mode; e.g. in the above example we need a
      reinterpret from VNx4SI to VNx4HI.  We can't use subregs for that
      because they're forbidden by aarch64_can_change_class_mode; we should
      handle them in the same way as for big-endian instead.
      
      2019-12-19  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): When
      	handling partial SVE vectors, use the container mode rather than
      	the element mode if the constant isn't a single-element duplicate.
      	* config/aarch64/aarch64-sve.md (@aarch64_sve_reinterpret<mode>):
      	Check targetm.can_change_mode_class instead of BYTES_BIG_ENDIAN.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mixed_size_9.c: New test.
      
      From-SVN: r279580
      Richard Sandiford committed
    • comment tweak · 3561caa2
      From-SVN: r279579
      Jason Merrill committed