1. 07 Jan, 2019 18 commits
    • [nvptx] Force vl32 if calling vector-partitionable routines · 6e723923
      With PTX_MAX_VECTOR_LENGTH set to larger than PTX_WARP_SIZE, routines can be
      called from offloading regions with vector-size set to larger than warp size.
      OTOH, vector-partitionable routines assume warp-sized vector length.
      
      Detect if we're calling a vector-partitionable routine from an offloading
      region, and if so, fall back to warp-sized vector length in that region.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	PR target/85486
      	* config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
      	function.
      	(nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
      	routines.
      
      From-SVN: r267640
      Tom de Vries committed
    • sse.md (vec_extract<mode><ssehalfvecmodelower>): Use V_256_512 iterator instead… · d471bdec
      sse.md (vec_extract<mode><ssehalfvecmodelower>): Use V_256_512 iterator instead of V_512 and TARGET_AVX instead of...
      
      	* config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
      	V_256_512 iterator instead of V_512 and TARGET_AVX instead of
      	TARGET_AVX512F as condition.
      
      From-SVN: r267639
      Jakub Jelinek committed
    • re PR debug/88723 (PR debug/88635 patch breaks testsuite_shared.cc compilation) · 1e92df7e
      	PR debug/88723
      	* dwarf2out.c (const_ok_for_output_1): Remove redundant call to
      	const_not_ok_for_debug_p target hook.
      	(mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
      	on UNSPEC and subexpressions thereof if all subexpressions of the
      	UNSPEC are CONSTANT_P.
      
      From-SVN: r267638
      Jakub Jelinek committed
    • re PR tree-optimization/88676 (missed opportunity in integer conditional) · 0119d5a2
      	PR tree-optimization/88676
      	* tree-ssa-phiopt.c (two_value_replacement): New function.
      	(tree_ssa_phiopt_worker): Call it.
      
      	* gcc.dg/tree-ssa/pr88676.c: New test.
      	* gcc.dg/pr88676.c: New test.
      	* gcc.dg/tree-ssa/pr15826.c: Just verify there is no goto,
      	allow &.
      
      From-SVN: r267634
      Jakub Jelinek committed
    • re PR sanitizer/88619 (ICE in asan_emit_stack_protection, at asan.c:1574 since r266664) · 76192f93
      	PR sanitizer/88619
      	* cfgexpand.c (expand_stack_vars): Only align prev_offset to
      	ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
      
      	* c-c++-common/asan/pr88619.c: New test.
      
      From-SVN: r267633
      Jakub Jelinek committed
    • re PR c++/85052 (Implement support for clang's __builtin_convertvector) · d8fcab68
      	PR c++/85052
      	* tree-vect-generic.c: Include insn-config.h and recog.h.
      	(expand_vector_piecewise): Add defaulted ret_type argument,
      	if non-NULL, use that in preference to type for the result type.
      	(expand_vector_parallel): Formatting fix.
      	(do_vec_conversion, do_vec_narrowing_conversion,
      	expand_vector_conversion): New functions.
      	(expand_vector_operations_1): Call expand_vector_conversion
      	for VEC_CONVERT ifn calls.
      	* internal-fn.def (VEC_CONVERT): New internal function.
      	* internal-fn.c (expand_VEC_CONVERT): New function.
      	* fold-const-call.c (fold_const_vec_convert): New function.
      	(fold_const_call): Use it for CFN_VEC_CONVERT.
      	* doc/extend.texi (__builtin_convertvector): Document.
      c-family/
      	* c-common.h (enum rid): Add RID_BUILTIN_CONVERTVECTOR.
      	(c_build_vec_convert): Declare.
      	* c-common.c (c_build_vec_convert): New function.
      c/
      	* c-parser.c (c_parser_postfix_expression): Parse
      	__builtin_convertvector.
      cp/
      	* cp-tree.h (cp_build_vec_convert): Declare.
      	* parser.c (cp_parser_postfix_expression): Parse
      	__builtin_convertvector.
      	* constexpr.c: Include fold-const-call.h.
      	(cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
      	(potential_constant_expression_1): Likewise.
      	* semantics.c (cp_build_vec_convert): New function.
      	* pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
      	IFN_VEC_CONVERT.
      testsuite/
      	* c-c++-common/builtin-convertvector-1.c: New test.
      	* c-c++-common/torture/builtin-convertvector-1.c: New test.
      	* g++.dg/ext/builtin-convertvector-1.C: New test.
      	* g++.dg/cpp0x/constexpr-builtin4.C: New test.
      
      From-SVN: r267632
      Jakub Jelinek committed
    • [nvptx] Handle large vector reductions · f881693c
      Add support for vector reductions with openacc vector_length larger than
      warp-size.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
      	* config/nvptx/nvptx.c (vector_red_size, vector_red_align,
      	vector_red_partition, vector_red_sym): New global variables.
      	(nvptx_option_override): Initialize vector_red_sym.
      	(nvptx_declare_function_name): Restore red_partition register.
      	(nvptx_file_end): Emit code to declare the vector reduction variables.
      	(nvptx_output_red_partition): New function.
      	(nvptx_expand_shared_addr): Add vector argument. Use it to handle
      	large vector reductions.
      	(enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
      	(nvptx_init_builtins): Add VECTOR_ADDR.
      	(nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
      	Handle nvptx_expand_shared_addr.
      	(nvptx_get_shared_red_addr): Add vector argument and handle large
      	vectors.
      	(nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
      	large vectors.
      	(nvptx_goacc_reduction_init): Likewise.
      	(nvptx_goacc_reduction_fini): Likewise.
      	(nvptx_goacc_reduction_teardown): Likewise.
      	(nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
      	init,fini,teardown}.
      	(nvptx_init_axis_predicate): Initialize vector_red_partition.
      	(nvptx_set_current_function): Init vector_red_partition.
      	* config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
      	(nvptx_red_partition): New insn.
      	* config/nvptx/nvptx.h (struct machine_function): Add red_partition.
      
      From-SVN: r267631
      Tom de Vries committed
    • [nvptx] Don't emit barriers for empty loops -- fix · d495b5cc
      When compiling an empty loop:
      ...
        long long v1;
        #pragma acc parallel num_gangs (640) num_workers(1) vector_length (128)
        #pragma acc loop
          for (v1 = 0; v1 < 20; v1 += 2)
              ;
      ...
      the compiler emits two subsequent bar.syncs.  This triggers some bug on my
      quadro m1200 (I'm assuming in the ptxas/JIT compiler) that hangs the testcase.
      
      This patch works around the bug by doing an optimization: we detect that this is
      an empty loop (a forked immediately followed by a joining), and don't emit the
      barriers.
      
      The patch does not include the test-case yet, since vector_length (128) is not
      yet supported at this point.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	PR target/85381
      	* config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
      	empty loops.
      
      From-SVN: r267630
      Tom de Vries committed
    • [nvptx] Add support for a per-worker broadcast buffer and barrier · 0024c320
      Add support for a per-worker broadcast buffer and barrier, to be used for
      openacc vector_length larger than warp-size.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
      	(nvptx_option_override): Init oacc_bcast_partition.
      	(nvptx_init_oacc_workers): New function.
      	(nvptx_declare_function_name): Call nvptx_init_oacc_workers.
      	(nvptx_needs_shared_bcast): New function.
      	(nvptx_find_par): Generalize to enable vectors to use shared-memory
      	to propagate state.
      	(nvptx_shared_propagate): Initialize vector bcast partition and
      	synchronization state.
      	(nvptx_single):  Generalize to enable vectors to use shared-memory
      	to propagate state.
      	(nvptx_process_pars): Likewise.
      	(nvptx_set_current_function): Initialize oacc_broadcast_partition.
      	* config/nvptx/nvptx.h (struct machine_function): Add
      	bcast_partition and sync_bar members.
      
      From-SVN: r267629
      Tom de Vries committed
    • [nvptx] Allow larger PTX_MAX_VECTOR_LENGTH in nvptx_goacc_validate_dims_1 · ccc0d492
      Allow PTX_MAX_VECTOR_LENGTH to be define as larger than PTX_WARP_SIZE in
      nvptx_goacc_validate_dims_1.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
      	(nvptx_apply_dim_limits): New function.
      	(nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
      	PTX_WARP_SIZE.
      
      From-SVN: r267628
      Tom de Vries committed
    • [nvptx] Postpone warnings in nvptx_goacc_validate_dims_1 · d8ab4e54
      Move warnings in nvptx_goacc_validate_dims_1 to as late as possible.  This
      allows us more flexibility in setting the dimensions.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
      	as late as possible.
      
      From-SVN: r267627
      Tom de Vries committed
    • [nvptx] Eliminate PTX_VECTOR_LENGTH · 764ecad4
      Remove PTX_VECTOR_LENGTH and replace uses of it with PTX_DEFAULT_VECTOR_LENGTH,
      PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
      	(PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
      	(nvptx_goacc_validate_dims_1, nvptx_dim_limit)
      	(nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
      	PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
      
      From-SVN: r267626
      Tom de Vries committed
    • [nvptx] Add asserts in nvptx_goacc_validate_dims · 21fbea5c
      Add a few asserts to nvptx_goacc_validate_dims.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
      
      From-SVN: r267625
      Tom de Vries committed
    • [nvptx] Fix libgomp.oacc-c-c++-common/vector-length-128-3.c · 43493c97
      The vector-length-128-3.c test-case uses GOMP_OPENACC_DIM=-:-:128, but '-' is
      not yet supported on trunk.  Use GOMP_OPENACC_DIM=::128 instead.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Fix
      	GOMP_OPENACC_DIM argument.
      
      From-SVN: r267624
      Tom de Vries committed
    • [openacc] Add oacc_get_min_dim · 6e373d13
      Expose oacc_min_dims to backends.
      
      2019-01-07  Tom de Vries  <tdevries@suse.de>
      
      	* omp-offload.c (oacc_get_min_dim): New function.
      	* omp-offload.h (oacc_get_min_dim): Declare.
      
      From-SVN: r267623
      Tom de Vries committed
    • re PR target/88521 (GCC from r266355 miscompiles x265 for mingw-w64 target) · 4075fc70
      PR target/88521
      	* config/i386/i386.c (function_value_ms_64): Return small sturct in
      	AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
      
      From-SVN: r267622
      Mateusz B committed
    • Make GFORTRAN_9 symbol node depend on GFORTRAN_8. · 0aa6ee36
      At some point when the GFORTRAN_9 node was added it was forgotten to
      make it depend on GFORTRAN_8. This patch fixes this.
      
      Committed as obvious.
      
      2019-01-07  Janne Blomqvist  <jb@gcc.gnu.org>
      
             * gfortran.map (GFORTRAN_9): Make GFORTRAN_9 node depend on
             GFORTRAN_8.
      
      From-SVN: r267621
      Janne Blomqvist committed
    • Daily bump. · 4017eef0
      From-SVN: r267619
      GCC Administrator committed
  2. 06 Jan, 2019 9 commits
    • PR libstdc++/86756 Move rest of std::filesystem to libstdc++.so · de4db54f
      Move std::filesystem directory iterators and operations from
      libstdc++fs.a to main libstdc++ library. These components have many
      dependencies on OS support, which is not available on all targets. Some
      additional autoconf checks and conditional compilation is needed to
      ensure the files will build for all targets. Previously this code was
      not compiled without --enable-libstdcxx-filesystem-ts but the C++17
      components should be available for all hosted builds.
      
      The tests for these components no longer need to link to libstdc++fs.a,
      but are not expected to pass on all targets. To avoid numerous failures
      on targets which are not expected to pass the tests (due to missing OS
      functionality) leave the dg-require-filesystem-ts directives in place
      for now. This will ensure the tests only run for builds where the
      filesystem-ts library is built, which presumably means some level of OS
      support is present.
      
      	PR libstdc++/86756
      	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for utime and
      	lstat and define _GLIBCXX_USE_UTIME and _GLIBCXX_USE_LSTAT.
      	* config.h.in: Regenerate.
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export symbols for
      	remaining std::filesystem types and functions.
      	* configure: Regenerate.
      	* src/c++17/Makefile.am: Add C++17 filesystem sources.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++17/cow-fs_dir.cc: Move src/filesystem/cow-std-dir.cc to
      	here, and change name of included file.
      	* src/c++17/cow-fs_ops.cc: Move src/filesystem/cow-std-ops.cc to
      	here, and change name of included file.
      	* src/c++17/fs_dir.cc: Move src/filesystem/std-dir.cc to here. Change
      	path to dir-common.h.
      	* src/c++17/fs_ops.cc: Move src/filesystem/std-ops.cc to here. Change
      	path to ops-common.h. Disable -Wunused-parameter warnings.
      	(internal_file_clock): Define unconditionally.
      	[!_GLIBCXX_HAVE_SYS_STAT_H] (internal_file_clock::from_stat): Do not
      	define.
      	(do_copy_file, do_space): Move definitions to ops.common.h.
      	(copy, file_size, hard_link_count, last_write_time, space): Only
      	perform operation when _GLIBCXX_HAVE_SYS_STAT_H is defined, otherwise
      	report an error.
      	(last_write_time, read_symlink): Remove unused attributes from
      	parameters.
      	* src/filesystem/Makefile.am: Remove C++17 filesystem sources.
      	* src/filesystem/Makefile.in: Regenerate.
      	* src/filesystem/cow-std-dir.cc: Move to src/c++17/cow-fs_dir.cc.
      	* src/filesystem/cow-std-ops.cc: Move to src/c++17/cow-fs_ops.cc.
      	* src/filesystem/std-dir.cc: Move to src/c++17/fs_dir.cc.
      	* src/filesystem/std-ops.cc: Move to src/c++17/fs_ops.cc.
      	* src/filesystem/dir-common.h [!_GLIBCXX_HAVE_DIRENT_H]: Define
      	dummy types and functions instead of using #error.
      	* src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H]: Use #error.
      	* src/filesystem/ops-common.h [!_GLIBCXX_USE_LSTAT] (lstat): Define
      	in terms of stat.
      	[!_GLIBCXX_HAVE_UNISTD_H]: Define dummy types and functions.
      	(do_copy_file, do_space): Move definitions here from std-ops.cc.
      	* src/filesystem/ops.cc: Adjust calls to do_copy_file and do_space
      	to account for new namespace.
      	* testsuite/27_io/filesystem/directory_entry/86597.cc: Remove
      	-lstdc++fs from dg-options.
      	* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: Likewise.
      	* testsuite/27_io/filesystem/file_status/1.cc: Likewise.
      	* testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
      	* testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/iterators/directory_iterator.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
      	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/create_directories.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/create_directory.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/create_symlink.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/current_path.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/last_write_time.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/permissions.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/relative.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/remove.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/space.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/weakly_canonical.cc: Likewise.
      
      From-SVN: r267616
      Jonathan Wakely committed
    • PR libstdc++/86756 add std::filesystem::path to libstdc++.so · 2b522535
      Move the C++17 std::filesystem::path definitions from the libstdc++fs.a
      archive to the main libstdc++ library. The path classes do not depend on
      any OS functions, so can be defined unconditionally on all targets
      (rather than depending on --enable-libstdcxx-filesystem-ts). The tests
      should pass on all targets too.
      
      	PR libstdc++/86756
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
      	typeinfo and vtables less greedy.
      	(GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
      	* src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
      	here, and change name of included file.
      	* src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
      	* src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
      	from sources.
      	* src/filesystem/Makefile.in: Regenerate.
      	* src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
      	* src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
      	* testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
      	from dg-options and remove dg-require-filesystem-ts.
      	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
      	* testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
      	* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
      	* testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
      	* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
      	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
      	* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
      	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
      
      From-SVN: r267615
      Jonathan Wakely committed
    • PR libstdc++/87431 fix regression introduced by r264574 · caf80d87
      The previous patch for PR 87431 assumed that initialing a scalar type
      could not throw, but it can obtain its value via a conversion operator,
      which could throw. This meant the variant could get into a valueless
      state, but the valueless_by_exception() member function would always
      return false.
      
      This patch fixes it by changing the emplace members to have strong
      exception safety when initializing a contained value of trivially
      copyable type. The _M_valid() member gets a corresponding change to
      always return true for trivially copyable types, not just scalar types.
      
      Strong exception safety (i.e. never becoming valueless) is achieved by
      only replacing the current contained value once any potentially throwing
      operations have completed. If constructing the new contained value can
      throw then a new std::variant object is constructed to hold it, and then
      move-assigned to *this (which won't throw).
      
      	PR libstdc++/87431
      	* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
      	Check is_trivially_copyable instead of is_scalar.
      	(variant::emplace<N, Args>(Args&&...)): If construction of the new
      	contained value can throw and its type is trivially copyable then
      	construct into a temporary variant and move from it, to provide the
      	strong exception safety guarantee.
      	(variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
      	Likewise.
      	* testsuite/20_util/variant/87431.cc: New test.
      	* testsuite/20_util/variant/run.cc: Adjust test so that throwing
      	conversion causes valueless state.
      
      From-SVN: r267614
      Jonathan Wakely committed
    • re PR tree-optimization/86020 (Performance regression in Eigen geometry.cpp test… · be917808
      re PR tree-optimization/86020 (Performance regression in Eigen geometry.cpp test starting with r248334)
      
      
      	PR tree-opt/86020
      	Revert:
      	2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
      	
              * ipa-inline.c (edge_badness): Use inlined_time instead of
              inline_summaries->get.
      
      From-SVN: r267612
      Jan Hubicka committed
    • opts.c (enable_fdo_optimizations): Enable version-loops-for-strides... · a9a32e56
      
      	* opts.c (enable_fdo_optimizations): Enable
      	version-loops-for-strides, loop-interchange, unrol-and-jam
      	and tree-loop-distribution.
      	* invoke.texi: Document newly enabled options.
      
      From-SVN: r267611
      Jan Hubicka committed
    • re PR fortran/88658 (Intrinsic MAX1 returns a REAL result, should be INTEGER.) · 13b1afe4
      2019-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88658
      	* gfortran.h: Add macro gfc_real_4_kind
      	* simplify.c (simplify_min_max): Special case for the types of
      	AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of
      	their arguments.
      
      2019-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88658
      	* gfortran.dg/min_max_type_2.f90: New test.
      
      From-SVN: r267609
      Thomas Koenig committed
    • re PR c/88363 (alloc_align attribute doesn't accept enumerated arguments) · 8f4813c1
      	PR c/88363
      	* c-c++-common/attributes-4.c (falloc_align_int128,
      	falloc_size_int128): Guard with #ifdef __SIZEOF_INT128__.
      
      From-SVN: r267608
      Jakub Jelinek committed
    • PR libstdc++/88607 add tests using -finput-charset=ascii · ecaad8d5
      This verifies that the <bits/extc++.h> header can be compiled with ASCII
      as the input character set.
      
      	PR libstdc++/88607
      	* testsuite/17_intro/headers/c++1998/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2011/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2014/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2017/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2020/charset.cc: New test.
      
      From-SVN: r267607
      Jonathan Wakely committed
    • Daily bump. · 881b8ffe
      From-SVN: r267606
      GCC Administrator committed
  3. 05 Jan, 2019 13 commits
    • invoke.texi (max-inline-insns-small): New parameters. · f256c274
      
      	* doc/invoke.texi (max-inline-insns-small): New parameters.
      	* ipa-inline.c (want_early_inline_function_p): simplify.
      	(want_inline_small_function_p): Fix pasto from previous patch;
      	use max-inline-insns-small bound.
      	* params.def (max-inline-insns-small): New param.
      	* ipa-fnsummary.c (analyze_function_body): Initialize time/size
      	variables correctly.
      
      From-SVN: r267603
      Jan Hubicka committed
    • Define new filesystem::__file_clock type · beb04ce9
      In C++17 the clock used for filesystem::file_time_type is unspecified,
      allowing it to be chrono::system_clock. The C++2a draft requires it to
      be a distinct type, with additional member functions to convert to/from
      other clocks (either the system clock or UTC). In order to avoid an ABI
      change later, this patch defines a new distinct type now, which will be
      used for std::chrono::file_clock later.
      
      	* include/bits/fs_fwd.h (__file_clock): Define new clock.
      	(file_time_type): Redefine in terms of __file_clock.
      	* src/filesystem/ops-common.h (file_time): Add FIXME comment about
      	overflow.
      	* src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
      	internal linkage.
      	(internal_file_lock): New helper type for accessing __file_clock.
      	(do_copy_file): Use internal_file_lock to convert system time to
      	file_time_type.
      	(last_write_time(const path&, error_code&)): Likewise.
      	(last_write_time(const path&, file_time_type, error_code&)): Likewise.
      
      From-SVN: r267602
      Jonathan Wakely committed
    • invoke.texi: Document max-inline-insns-size... · d06f73a3
      
      	* doc/invoke.texi: Document max-inline-insns-size,
      	uninlined-function-insns, uninlined-function-time,
      	uninlined-thunk-insns and uninlined-thunk-time.
      	* params.def: Add max-inline-insns-size,
      	uninlined-function-insns, uninlined-function-time,
      	uninlined-thunk-insns and uninlined-thunk-time.
      	* ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
      	new parameters.
      	* ipa-inline.c (can_inline_edge_by_limits_p,
      	want_inline_small_function_p): Use new parameters.
      
      From-SVN: r267601
      Jan Hubicka committed
    • plugindir1.c: Adjust dg-prune-output for Darwin. · 2a95da04
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	* gcc.dg/plugin/plugindir1.c: Adjust dg-prune-output for Darwin.
      	* gcc.dg/plugin/plugindir2.c: Likewise.
      	* gcc.dg/plugin/plugindir3.c: Likewise.
      	* gcc.dg/plugin/plugindir4.c: Likewise.
      
      From-SVN: r267599
      Dominique d'Humieres committed
    • re PR fortran/88009 (ICE in find_intrinsic_vtab, at fortran/class.c:2761) · f8add009
      2019-01-05  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/88009
      	* class.c (gfc_find_derived_vtab): Mark the _final component as
      	artificial.
      	(find_intrinsic_vtab): Ditto. Also add an extra check to avoid
      	dereferencing a null pointer and adjust indentation.
      	* resolve.c (resolve_fl_variable): Add extra check to avoid
      	dereferencing a null pointer. Move variable declarations to local scope.
      	(resolve_fl_procedure): Add extra check to avoid dereferencing a null
      	pointer.
      	* symbol.c (check_conflict): Suppress errors for artificial symbols.
      
      2019-01-05  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/88009
      	* gfortran.dg/blockdata_10.f90: New test case.
      
      From-SVN: r267598
      Janus Weil committed
    • re PR middle-end/82564 (ICE at -O1 and above: in assign_stack_temp_for_type, at function.c:783) · 23141e52
      	PR middle-end/82564
      	PR target/88620
      	* expr.c (expand_assignment): For calls returning VLA structures
      	if to_rtx is not a MEM, force it into a stack temporary.
      
      	* gcc.dg/nested-func-12.c: New test.
      	* gcc.c-torture/compile/pr82564.c: New test.
      
      From-SVN: r267595
      Jakub Jelinek committed
    • re PR debug/88635 (Assembler error when building with "-g -O2 -m32") · 4a3e7df8
      	PR debug/88635
      	* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
      	SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
      	Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
      	subexpressions of both operands.
      	(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
      	subrtxes are CONSTANT_P.
      	* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
      	2018-11-09 changes.
      
      	* gcc.dg/debug/dwarf2/pr88635.c: New test.
      
      From-SVN: r267594
      Jakub Jelinek committed
    • re PR target/60563 (FAIL: g++.dg/ext/sync-4.C on *-apple-darwin*) · 46ca1b43
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR target/60563
      	Missing PR entry in the previous commit.
      
      From-SVN: r267593
      Dominique d'Humieres committed
    • sync-4.C: Add dg-xfail-run-if for darwin. · ab18132e
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	* g++.dg/ext/sync-4.C: Add dg-xfail-run-if for darwin.
      
      From-SVN: r267592
      Dominique d'Humieres committed
    • PR c/88546 - Copy attribute unusable for weakrefs · 29d24852
      gcc/c-family/ChangeLog:
      
      	PR c/88546
      	* c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
      	Handle C++ empty throw specification and C11 _Noreturn.
      	(has_attribute): Also handle C11 _Noreturn.
      
      gcc/ChangeLog:
      
      	PR c/88546
      	* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
      	leaf.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/88546
      	* g++.dg/ext/attr-copy.C: New test.
      	* gcc.dg/attr-copy-4.c: Disable macro expansion tracking.
      	* gcc.dg/attr-copy-6.c: New test.
      	* gcc.dg/attr-copy-7.c: New test.
      
      From-SVN: r267591
      Martin Sebor committed
    • runtime: prevent deadlock when profiling signal arrives during traceback · f6be1179
          
          Traceback routines, e.g. callers and funcentry, may call
          __go_get_backtrace_state. If a profiling signal arrives while we
          are in the critical section of __go_get_backtrace_state, it tries
          to do a traceback, which also calls __go_get_backtrace_state,
          which tries to enter the same critical section and will deadlock.
          Prevent this deadlock by setting up runtime_in_callers before
          calling __go_get_backtrace_state.
          
          Found while investigating golang/go#29448. Will add a test in the
          next CL.
          
          Updates golang/go#29448.
          
          Reviewed-on: https://go-review.googlesource.com/c/156037
      
      From-SVN: r267590
      Ian Lance Taylor committed
    • * params.def (hot-bb-count-ws-permille): Set to 990. · 869fbd35
      From-SVN: r267589
      Jan Hubicka committed