1. 14 Dec, 2018 9 commits
  2. 13 Dec, 2018 29 commits
    • re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have… · 0864675c
      re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:468; or ICE: tree check: expected ssa_name, have integer_cst in get_value_range, at vr-values.c:84)
      
      	PR tree-optimization/88444
      	* tree-inline.c (fold_marked_statements): Iterate up to
      	last_basic_block_for_fn rather than n_basic_blocks_for_fn.
      
      	* gcc.dg/tree-ssa/pr88444.c: New test.
      
      From-SVN: r267113
      Jakub Jelinek committed
    • re PR rtl-optimization/88470 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2354) · b532a785
      	PR rtl-optimization/88470
      	* cfgcleanup.c (outgoing_edges_match): If the function is
      	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
      	edge to EXIT, return false.
      
      	* gcc.target/i386/pr88470.c: New test.
      
      From-SVN: r267112
      Jakub Jelinek committed
    • extend.texi: Consistently use @code for const and volatile qualifiers... · 6bb42685
      gcc/ChangeLog:
      	* doc/extend.texi: Consistently use @code for const and volatile
      	qualifiers, the true and false constants, and asm statements.
      
      From-SVN: r267111
      Martin Sebor committed
    • re PR rtl-optimization/88414 (ICE in lra_assign, at lra-assigns.c:1624) · 11067dee
      2018-12-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/88414
      	* lra-int.h (lra_asm_error_p): New.
      	* lra-assigns.c (lra_assign): Check lra_asm_error_p for checking
      	call crossed pseudo assignment correctness.
      	(lra_split_hard_reg_for): Set up lra_asm_error_p.
      	* lra-constraints.c (curr_insn_transform): Ditto.
      	* lra.c (lra_asm_error_p): New.
      	(lra): Reset lra_asm_error_p.
      
      2018-12-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/88414
      	* gcc.target/i386/pr88414.c: New.
      
      From-SVN: r267109
      Vladimir Makarov committed
    • PR c++/88216 - ICE with class type in non-type template parameter. · b46e1a69
      	* mangle.c (write_expression): Handle TARGET_EXPR and
      	VIEW_CONVERT_EXPR.
      	* pt.c (convert_nontype_argument): Don't call
      	get_template_parm_object for value-dependent expressions.
      
      	* g++.dg/cpp2a/nontype-class9.C: New test.
      
      From-SVN: r267108
      Marek Polacek committed
    • Fix handling of POSIX paths containing a root-name · 2b462958
      Fix path appending and concatenating to work correctly for a leading
      root-name. Check a new macro, SLASHSLASH_IS_ROOT_NAME, instead of making
      the behaviour depend directly on __CYGWIN__.
      
      	* src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
      	control whether interpret paths with two slashes as a root-name.
      	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
      	root-directory when appending to a root-name.
      	(path::_M_append(basic_string_view<value_type>))
      	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::_M_concat(basic_string_view<value_type>))
      	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
      	of /= to add a root-directory to the result.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
      	expected result for Cygwin.
      
      From-SVN: r267107
      Jonathan Wakely committed
    • PR libstdc++/71044 optimize std::filesystem::path construction · 4f87bb8d
      This new implementation has a smaller footprint than the previous
      implementation, due to replacing std::vector<_Cmpt> with a custom pimpl
      type that only needs a single pointer. The _M_type enumeration is also
      combined with the pimpl type, by using a tagged pointer, reducing
      sizeof(path) further still.
      
      Construction and modification of paths is now done more efficiently, by
      splitting the input into a stack-based buffer of string_view objects
      instead of a dynamically-allocated vector containing strings. Once the
      final size is known only a single allocation is needed to reserve space
      for it.  The append and concat operations no longer require constructing
      temporary path objects, nor re-parsing the entire native pathname.
      
      This results in algorithmic improvements to path construction, and
      working with large paths is much faster.
      
      	PR libstdc++/71044
      	* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
      	appropriate. Move _M_cmpts instead of reparsing the native pathname.
      	(path::operator=(const path&)): Do not define as defaulted.
      	(path::operator/=, path::append): Call _M_append.
      	(path::concat): Call _M_concat.
      	(path::path(string_type, _Type): Change type of first parameter to
      	basic_string_view<value_type>.
      	(path::_M_append(basic_string_view<value_type>)): New member function.
      	(path::_M_concat(basic_string_view<value_type>)): New member function.
      	(_S_convert(value_type*, __null_terminated)): Return string view.
      	(_S_convert(const value_type*, __null_terminated)): Return string view.
      	(_S_convert(value_type*, value_type*))
      	(_S_convert(const value_type*, const value_type*)): Add overloads for
      	pairs of pointers.
      	(_S_convert(_InputIterator, __null_terminated)): Construct string_type
      	explicitly, for cases where _S_convert returns a string view.
      	(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
      	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
      	(path::_M_add_filename): Remove.
      	(path::_M_type()): New member function to replace _M_type data member.
      	(path::_List): Define new struct type instead of using std::vector.
      	(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
      	first parameter to basic_string_view<value_type>.
      	(path::operator+=(const path&)): Do not define inline.
      	(path::operator+=(const string_type&)): Call _M_concat.
      	(path::operator+=(const value_type*)): Likewise.
      	(path::operator+=(value_type)): Likewise.
      	(path::operator+=(basic_string_view<value_type>)): Likewise.
      	(path::operator/=(const path&)): Do not define inline.
      	(path::_M_append(path)): Remove.
      	* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
      	understands the new path::_List type.
      	* src/filesystem/std-path.cc (is_dir_sep): New function to replace
      	path::_S_is_dir_sep.
      	(path::_Parser): New helper class to parse strings as paths.
      	(path::_List::_Impl): Define container type for path components.
      	(path::_List): Define members.
      	(path::operator=(const path&)): Define explicitly, to provide the
      	strong exception safety guarantee.
      	(path::operator/=(const path&)): Implement manually by processing
      	each component of the argument, rather than using _M_split_cmpts
      	to parse the entire string again.
      	(path::_M_append(string_type)): Likewise.
      	(path::operator+=(const path&)): Likewise.
      	(path::_M_concat(string_type)): Likewise.
      	(path::remove_filename()): Perform trim directly instead of calling
      	_M_trim().
      	(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
      	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
      	(path::_M_add_filename): Remove.
      	* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
      	string view that aliases the path.
      	testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
      	a string view that aliases the path.
      
      From-SVN: r267106
      Jonathan Wakely committed
    • re PR rtl-optimization/88416 (ICE in in df_uses_record, at df-scan.c:3013) · 51beaeba
      	PR rtl-optimization/88416
      	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
      	even if !AUTO_INC_DEC.
      
      	* gcc.target/i386/pr88416.c: New test.
      
      From-SVN: r267105
      Jakub Jelinek committed
    • rs6000.c (rs6000_function_arg): Ensure type is non-NULL. · ab0cdfdd
      * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is non-NULL.
      (rs6000_arg_partial_bytes): Same.
      
      From-SVN: r267104
      David Edelsohn committed
    • target.h (htm_available): Add support for PPC_FEATURE2_HTM_NO_SUSPEND. · d1573fe0
      libitm/
      	* config/powerpc/target.h (htm_available):  Add support for
      	PPC_FEATURE2_HTM_NO_SUSPEND.  Use __builtin_cpu_supports if available.
      
      From-SVN: r267101
      Peter Bergner committed
    • [libgomp, nvptx] Fix libgomp.c/target-5.c compilation · fe0827ee
      Libgomp test-case libgomp.c/target-5.c is failing to compile when building for
      x86_64 with nvptx accelerator due to missing:
      - getpid
      - gethostname
      - isatty (pulled in by fwrite)
      in the nvptx newlib.
      
      This patch fixes the build failure by:
      - adding a function gomp_print_string which limits the use of fwrite to a single
        location (in affinity-fmt.c), and
      - creating an nvptx version of affinity-fmt.c, which:
        - overrides the configure test results HAVE_GETPID and HAVE_GETHOSTNAME, and
        - implements fwrite using write.
      
      Build and reg-tested on x86_64 with nvptx accelerator.
      
      2018-12-13  Tom de Vries  <tdevries@suse.de>
      
      	* affinity-fmt.c (gomp_print_string): New function, factored out of ...
      	(omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
      	* fortran.c (omp_display_affinity_): ... here.
      	* libgomp.h (gomp_print_string): Declare.
      	* config/nvptx/affinity-fmt.c: New file.  Include affinity-fmt.c,
      	undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
      	write.
      
      From-SVN: r267100
      Tom de Vries committed
    • gdbinit.in (pp): New macro. · b3147e59
      	* gdbinit.in (pp): New macro.
      
      	(pbb): Remove.
      
      From-SVN: r267098
      Jason Merrill committed
    • re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing… · 0e350f13
      re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store")
      
      	PR tree-optimization/88464
      	* tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE
      	masktype if mask is non-NULL.
      	(vectorizable_load): Don't reject masked gather loads if masktype
      	in the decl is INTEGER_TYPE.
      
      	* gcc.target/i386/avx512f-pr88462-1.c: New test.
      	* gcc.target/i386/avx512f-pr88462-2.c: New test.
      
      From-SVN: r267097
      Jakub Jelinek committed
    • [PR c++/87531] Fix second bug · 2139fd74
      https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00929.html
      
      	PR c++/87531
      	* class.c (finish_struct): Set DECL_CONTEXT of template assign op.
      	* name-lookup.c (get_class_binding_direct): Don't strip using-decl
      	of overload here.
      	* parser.c (cp_parser_postfix_expression): Cope with using decl in
      	overload set.
      	* semantics.c (finish_id_expr): Likewise.
      
      	* g++.dg/lookup/pr87531-2.C: New.
      
      From-SVN: r267096
      Nathan Sidwell committed
    • Include gdc.test prefix in test names (PR testsuite/88041) · f1d42e85
      	PR testsuite/88041
      	* lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix.
      	* gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link.
      	Include $subdir in filename.
      	Cleanup generated source.
      	* gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use
      	absolute path.
      	* gdc.test/compilable/depsOutput9948.d: Likewise.
      
      From-SVN: r267094
      Rainer Orth committed
    • re PR libgomp/88460 ([nvptx] FAIL: libgomp.c++/for-24.C (internal compiler error)) · a51f8c92
      	PR libgomp/88460
      	* testsuite/libgomp.c++/for-24.C (results): Include it in
      	omp declare target region.
      	(main): Use map (always, tofrom: results) instead of
      	map (tofrom: results).
      
      From-SVN: r267093
      Jakub Jelinek committed
    • re PR testsuite/88454 (test case gcc.dg/tree-ssa/split-path-5.c fails after r266971) · b9cbcd3e
      	PR testsuite/88454
      	* gcc.dg/tree-ssa/split-path-5.c (__ctype_ptr__): Change type from
      	const char * to const signed char *.
      	(bmhi_init): Change pattern parameter's type the same.  Use
      	__builtin_strlen instead of undeclared strlen.
      
      From-SVN: r267092
      Jakub Jelinek committed
    • Fix [fs.path.gen] tests to use backslashes for mingw · a7a6c14a
      The normalized paths contain backslashes so fix the expected values to
      use backslashes too.
      
      	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
      	preferred directory separators for normalized paths.
      	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
      
      From-SVN: r267090
      Jonathan Wakely committed
    • Fix test to work when path::native() returns wstring · ebfaf345
      	* testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for
      	mingw.
      
      From-SVN: r267089
      Jonathan Wakely committed
    • S/390: Fix zvector vec_double builtin · a00ccce8
      The (unsigned) long int to double vector conversion instructions
      expect 2 immediate parameters. One for the inexact suppression
      control and another one for the rounding mode.  However, the
      vec_double builtin has just the vector source operand.  The 2
      addtional operands need to be added with an intermediate expander.
      The expanders were already there but unfortunately not wired up
      correctly to the builtin.
      
      gcc/ChangeLog:
      
      2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
      	s390_vec_double_s64 instead of s390_vcdgb.
      	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
      	s390_vcdlgb.
      
      gcc/testsuite/ChangeLog:
      
      2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/zvector/vec-double-1.c: New test.
      	* gcc.target/s390/zvector/vec-double-2.c: New test.
      
      From-SVN: r267084
      Andreas Krebbel committed
    • S/390: Use VEC_INEXACT/VEC_NOINEXACT instead of magic numbers. · 99daf8e8
      2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
      	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
      	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
      
      From-SVN: r267083
      Andreas Krebbel committed
    • Disable new tests for configurations with no libstdc++fs.a · bc51a764
      	* testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if
      	the Filesystem TS support is not configured.
      	* testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
      
      From-SVN: r267082
      Jonathan Wakely committed
    • [AArch64][doc] Clarify -msve-vector-bits=128 behaviour · ee03c51c
      We've received reports about the -msve-vector-bits=128 bits being somewhat ambiguous.
      It isn't clear whether -msve-vector-bits=128 forces vector-length-agnostic code or whether
      -msve-vector-bits=scalable forces 128-bit vector-lengh-specific code.
      The latter is a, perhaps unintuitive, reading that we want to exclude.
      
      This patch makes it more explicit that -msve-vector-bits=128 is special and produces
      vector-length *agnostic* code. In the end, I've rewritten the whole option documentation.
      
      Checked make pdf that the output looks reasonable.
      
          * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
          behavior.
      
      From-SVN: r267081
      Kyrylo Tkachov committed
    • i386-common.c (processor_names): Add cascadelake. · 7cab07f0
      gcc/
            * common/config/i386/i386-common.c (processor_names): Add cascadelake.
            (processor_alias_table): Add cascadelake.
            * config.gcc: Add -march=cascadelake.
            * config/i386/i386-c.c (ix86_target_macros_internal): Handle cascadelake.
            * config/i386/i386.c (Add m_CASCADELAKE): New.
            (processor_cost_table): Add cascadelake.
            (get_builtin_code_for_version): Handle cascadelake.
            * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New.
            (PTA_CASCADELAKE): Ditto.
            * doc/invoke.texi: Add -march=cascadelake.
      
      gcc/testsuite/
            * gcc.target/i386/funcspec-56.inc: Handle new march.
      
      From-SVN: r267080
      Wei Xiao committed
    • Add note about abort and ZCX runtime. · 81f3e60f
      Part of RC12-001
      
      From-SVN: r267079
      Arnaud Charlet committed
    • re PR target/88465 (AVX512: optimize loading of constant values to kN registers) · 26b57b93
      	PR target/88465
      	* config/i386/i386.md (*movdi_internal, *movsi_internal,
      	*movhi_internal, *movqi_internal): Add alternative(s) to load
      	0 or -1 into k registers using kxor or kxnoq instructions.
      
      	* gcc.target/i386/avx512f-pr88465.c: New test.
      	* gcc.target/i386/avx512dq-pr88465.c: New test.
      
      From-SVN: r267078
      Jakub Jelinek committed
    • re PR target/88461 (AVX512: gcc should keep value in kN registers if possible) · e00199d7
      	PR target/88461
      	* config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New
      	mode iterators.
      	(<avx512>_testm<mode>3<mask_scalar_merge_name>,
      	<avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns
      	with VI12_AVX512VL and VI48_AVX512VL iterators into ones with
      	VI1248_AVX512VLBW iterator.
      	(*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
      	*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
      	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
      	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New
      	define_insns.
      
      	* gcc.target/i386/pr88461.c: New test.
      
      From-SVN: r267077
      Jakub Jelinek committed
    • re PR target/88461 (AVX512: gcc should keep value in kN registers if possible) · 87d570a0
      	PR target/88461
      	* config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2,
      	*zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives.
      
      From-SVN: r267076
      Jakub Jelinek committed
    • Daily bump. · 401069da
      From-SVN: r267074
      GCC Administrator committed
  3. 12 Dec, 2018 2 commits