1. 15 Feb, 2019 18 commits
  2. 14 Feb, 2019 22 commits
    • i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): Enable MMX, SSE and SSE2 by default. · 8b131a8a
      	* config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
      	Enable MMX, SSE and SSE2 by default.
      	* config/i386/i386.c (ix86_option_override_internal): Do not
      	explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
      
      From-SVN: r268917
      Uros Bizjak committed
    • re PR rtl-optimization/89354 (Combine pass yields wrong code with -O2 and -msse2 for 32bit target) · dddd0c7a
      	PR rtl-optimization/89354
      	* combine.c (make_extraction): Punt if extraction_mode is narrower
      	than len bits.
      
      	* gcc.dg/pr89354.c: New test.
      
      From-SVN: r268913
      Jakub Jelinek committed
    • ssse3-pabsb.c: Re-enable 64-bit form on AVX targets. · bf36afbc
      	* gcc.target/i386/ssse3-pabsb.c: Re-enable 64-bit form on AVX targets.
      	* gcc.target/i386/ssse3-pabsd.c: Ditto.
      	* gcc.target/i386/ssse3-pabsw.c: Ditto.
      	* gcc.target/i386/ssse3-palignr.c: Ditto.
      	* gcc.target/i386/ssse3-phaddd.c: Ditto.
      	* gcc.target/i386/ssse3-phaddsw.c: Ditto.
      	* gcc.target/i386/ssse3-phaddw.c: Ditto.
      	* gcc.target/i386/ssse3-phsubd.c: Ditto.
      	* gcc.target/i386/ssse3-phsubsw.c: Ditto.
      	* gcc.target/i386/ssse3-phsubw.c: Ditto.
      	* gcc.target/i386/ssse3-pmaddubsw.c: Ditto.
      	* gcc.target/i386/ssse3-pmulhrsw.c: Ditto.
      	* gcc.target/i386/ssse3-pshufb.c: Ditto.
      	* gcc.target/i386/ssse3-psignb.c: Ditto.
      	* gcc.target/i386/ssse3-psignd.c: Ditto.
      	* gcc.target/i386/ssse3-psignw.c: Ditto.
      
      From-SVN: r268907
      Uros Bizjak committed
    • PR 81552 Improve and document -flag-init-integer · 66086032
      Make the option handling code parse the -flag-init-integer value as a
      C long type, allowing a larger range on systems where long is a larger
      type than int.  Document the behavior.
      
      Regtested on x86_64-pc-linux-gnu, committed as obvious.
      
      2019-02-14  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR fortran/81552
              * gfortran.h (gfc_option_t): Make flag_init_integer_value a long.
              * options.c (gfc_handle_option): Use strtol instead of atoi.
              * invoke.texi: Document -finit-integer behavior in more detail
      
      From-SVN: r268906
      Janne Blomqvist committed
    • Add netbsd support for D compiler and runtime · 2f2b8e40
      Merges upstream druntime fb4bda91.
      
      2019-02-14  Maya Rashish  <coypu@sdf.org>
      
      gcc/ChangeLog:
      
      	* config.gcc (*-*-netbsd*): Add netbsd-d.o
      	* config/netbsd-d.c: New file.
      	* config/t-netbsd: Add netbsd-d.o
      
      gcc/d/ChangeLog:
      
      	* d-system.h: NetBSD is POSIX.
      
      libphobos/ChangeLog:
      
      	* configure.tgt: Add netbsd/x86 as supported target.
      
      From-SVN: r268905
      Maya Rashish committed
    • re PR go/89321 (cross build with riscv64 gccgo compilation failed due to assert… · a6c723e2
      re PR go/89321 (cross build with riscv64 gccgo compilation failed due to assert in constructor_expression)
      
      	PR go/89321
          compiler: copy has_padding field from converted struct
          
          Test case is https://golang.org/cl/162617.
          
          Fixes https://gcc.gnu.org/PR89321
          
          Reviewed-on: https://go-review.googlesource.com/c/162618
      
      From-SVN: r268904
      Ian Lance Taylor committed
    • pcs_attribute.c: New test. · cc259397
      2018-02-14  Steve Ellcey  <sellcey@marvell.com>
      
      	* gcc.target/aarch64/pcs_attribute.c: New test.
      
      From-SVN: r268903
      Steve Ellcey committed
    • aarch64.c (aarch64_attribute_table): Change affects_type_identity to true for aarch64_vector_pcs. · 497f281c
      2018-02-14  Steve Ellcey  <sellcey@marvell.com>
      
      	* config/aarch64/aarch64.c (aarch64_attribute_table): Change
      	affects_type_identity to true for aarch64_vector_pcs.
      	(aarch64_comp_type_attributes): New function.
      	(TARGET_COMP_TYPE_ATTRIBUTES): New macro.
      
      From-SVN: r268902
      Steve Ellcey committed
    • * da.po: Update. · 86b69c6b
      From-SVN: r268901
      Joseph Myers committed
    • * da.po: Update. · 7b7a4f89
      From-SVN: r268900
      Joseph Myers committed
    • re PR fortran/88248 ([F18] Bogus warning about obsolescent feature: Labeled DO statement) · 14b693ba
      2019-02-14  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/88248
      	* symbol.c: Move check for labeled DO statement from
      	gfc_define_st_label to gfc_reference_st_label.
      
      	PR fortran/88248
      	* gfortran.dg/pr88248.f90: New test.
      	* gfortran.dg/f2018_obs.f90: Updated test.
      
      From-SVN: r268895
      Harald Anlauf committed
    • compiler: check duplicate string keys in map composite literals · 26a8c34e
          
          Updates golang/go#28104
          
          Reviewed-on: https://go-review.googlesource.com/c/161357
      
      From-SVN: r268891
      Ian Lance Taylor committed
    • Arm: Fix testism in pr88850 testcase. · a930500f
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/arm/pr88850.c: change options to additional option.
      
      From-SVN: r268887
      Tamar Christina committed
    • Provide __start_minfo/__stop_minfo for linkers that don't (PR d/87864) · 0b6e3127
      	libphobos:
      	PR d/87864
      	* configure.ac (DRTSTUFF_SPEC): New variable.
      	Substitute it.
      	* libdruntime/m4/druntime/os.m4 (DRUNTIME_OS_MINFO_BRACKETING):
      	New automake conditional.
      	* configure: Regenerate.
      	* libdruntime/gcc/drtstuff.c: New file.
      	* libdruntime/Makefile.am [!DRUNTIME_OS_MINFO_BRACKETING]
      	(DRTSTUFF, toolexeclib_DATA): New variables.
      	(gcc/drtbegin.lo, gcc/drtend.lo): New rules.
      	(libgdruntime_la_LDFLAGS): Use -Wc instead of -Xcompiler.
      	Add -dstartfiles -B../src -Bgcc.
      	(libgdruntime_la_DEPENDENCIES): New variable.
      	(unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler.
      	(libgdruntime_t_la_LDFLAGS): Likewise.
      	(unittest_LDFLAGS): Likewise.
      	* src/Makefile.am (libgphobos_la_LDFLAGS): Use -Wc instead of
      	-Xcompiler.
      	Add -dstartfiles -B../libdruntime/gcc.
      	(unittest_static_LDFLAGS): Use -Wc instead of -Xcompiler.
      	(libgphobos_t_la_LDFLAGS): Likewise.
      	(unittest_LDFLAGS): Likewise.
      	* libdruntime/Makefile.in, src/Makefile.in: Regenerate.
      	* Makefile.in, testsuite/Makefile.in: Regenerate.
      	* libdruntime/rt/sections_elf_shared.d (Minfo_Bracketing): Don't
      	assert.
      	* libdruntime/gcc/config.d.in (Minfo_Bracketing): Remove.
      	* src/drtstuff.spec: New file.
      	* src/libgphobos.spec.in (DRTSTUFF_SPEC): Substitute.
      	(*lib): Only pass SPEC_PHOBOS_DEPS without -debuglib, -defaultlib,
      	-nophoboslib.
      	* testsuite/testsuite_flags.in <--gdcldflags> (GDCLDFLAGS): Add
      	-B${BUILD_DIR}/libdruntime/gcc.
      
      	gcc/d:
      	PR d/87864
      	* lang.opt (dstartfiles): New option.
      	* d-spec.cc (need_spec): New variable.
      	(lang_specific_driver) <OPT_dstartfiles>: Enable need_spec.
      	(lang_specific_pre_link): Also load libgphobos.spec if need_spec.
      
      	gcc/testsuite:
      	PR d/87864
      	* lib/gdc.exp (gdc_link_flags): Add path to drtbegin.o/drtend.o if
      	present.
      
      From-SVN: r268886
      Rainer Orth committed
    • Update libstdc++ documentation for C++2a implementation status · 323694e9
      	* doc/xml/manual/status_cxx2020.xml: Update P0887R1 status.
      	* doc/html/*: Regenerate.
      
      From-SVN: r268885
      Jonathan Wakely committed
    • Arm: Add HF modes to ANY iterators · 2a26aed6
      The iterator ANY64 are used in various general split patterns and is supposed
      to contain all 64 bit modes.
      
      For some reason the pattern has HI but not HF.  This adds HF so that general
      64 bit splits are generated for these modes as well.  These are required
      by various split patterns that expect them to be there.
      
      gcc/ChangeLog:
      
      	PR target/88850
      	* config/arm/iterators.md (ANY64): Add V4HF.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/88850
      	* gcc.target/arm/pr88850-2.c: New test.
      	* lib/target-supports.exp
      	(check_effective_target_arm_neon_softfp_fp16_ok_nocache,
      	check_effective_target_arm_neon_softfp_fp16_ok,
      	add_options_for_arm_neon_softfp_fp16): New.
      
      From-SVN: r268884
      Tamar Christina committed
    • Update libstdc++ documentation for implementation status · bb2a18a3
      	* doc/xml/manual/status_cxx2017.xml: Add P0063R3 to status table.
      	* doc/html/*: Regenerate.
      
      From-SVN: r268883
      Jonathan Wakely committed
    • DR 2586 fix value category in uses-allocator checks · b7dbc672
      Because uses-allocator construction is invariably done with a const
      lvalue the __uses_alloc helper should use a const lvalue for the
      is_constructible checks. Otherwise, it can detect that the type can be
      constructed from an rvalue, and then an error happens when a const
      lvalue is passed to the constructor instead.
      
      Prior to LWG DR 2586 scoped_allocator_adaptor incorrectly used an rvalue
      type in the is_constructible check and then used a non-const lvalue for
      the actual construction. The other components using uses-allocator
      construction (tuple and polymorphic_allocator) have always done so with
      a const lvalue allocator, although the use of __use_alloc in our
      implementation meant they behaved the same as scoped_allocator_adaptor
      and incorrectly used rvalues for the is_constructible checks.
      
      In C++20 the P0591R4 changes mean that all uses-allocator construction
      is defined in terms of the new uses_allocator_construction_args
      functions, which always use a const lvalue allocator.
      
      The changes in this patch ensure that the __use_alloc helper correctly
      matches the requirements in the standard, consistently using a const
      lvalue allocator for the is_constructible checks and the actual
      constructor arguments.
      
      	* doc/xml/manual/intro.xml: Document LWG 2586 status.
      	* include/bits/uses_allocator.h (__uses_alloc): Use const lvalue
      	allocator type in is_constructible checks.
      	* testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
      	* testsuite/20_util/scoped_allocator/dr2586.cc: New test.
      	* testsuite/20_util/tuple/cons/allocators.cc: Add test using
      	problematic type from LWG 2586 discussion.
      	* testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error.
      	* testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
      
      From-SVN: r268882
      Jonathan Wakely committed
    • When this testcase was introduced it failed to account for the possibility of... · 6461bdc4
      When this testcase was introduced it failed to account for the possibility of
      targets that do not support arm mode or that do not support the ldrd/strd
      instructions.
      
      This patch accounts for both of these by adding some
      dg-require-effective-target lines to the testcase.
      
      This patch also adds a new effective-target procedure to check a target
      supports ldrd/strd.
      
      This patch also adds a new effective-target procedure to check a target
      supports arm ldrd/strd.
      The check uses the 'r' constraint to ensure SP is not used so that it will work
      for thumb mode code generation as well as arm mode.
      
      Tested by running this testcase with cross compilers using "-march=armv5t",
      "-mcpu=cortex-m3", "-mcpu-arm7tdmi", "-mcpu=cortex-a9 -march=armv5t" for both
      arm-none-eabi and arm-none-linux-gnueabihf.
      Also ran this testcase with `make check` natively.
      
      gcc/testsuite/ChangeLog:
      
      2019-02-14  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* gcc.dg/rtl/arm/ldrd-peepholes.c: Restrict testcase.
      	* lib/target-supports.exp: Add procedure to check for ldrd.
      
      From-SVN: r268881
      Matthew Malcomson committed
    • re PR lto/88677 (Divergence in -O2 and -O2 -flto early opts) · ae2341c9
      	PR lto/88677
      Fix PR number.
      
      From-SVN: r268880
      Jan Hubicka committed
    • Add std::timespec and std::timespec_get for C++17 · a61ae535
      	* configure.ac: Check for C11 timespec_get function.
      	* crossconfig.m4 (freebsd, linux, gnu, cygwin, solaris, netbsd)
      	(openbsd): Likewise
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* include/c_global/ctime (timespec, timespec_get): Add to namespace
      	std for C++17 and up.
      
      From-SVN: r268879
      Jonathan Wakely committed
    • LWG 2537 fix priority_queue constructors to establish invariant · 1f4dcbf7
      This change is safe to make now (in stage 4), because the constructors
      are currently incorrect and unusable (unless the supplied container
      already contains a heap, in which case the new make_heap calls are
      redundant but harmless).
      
      	* doc/xml/manual/intro.xml: Document LWG 2537 status.
      	* include/bits/stl_queue.h
      	(priority_queue(const Compare&, const Container&, const Alloc&))
      	(priority_queue(const Compare&, Container&&, const Alloc&)): Call
      	make_heap.
      	* testsuite/23_containers/priority_queue/dr2537.cc: New test.
      
      From-SVN: r268878
      Jonathan Wakely committed