1. 17 Jul, 2017 9 commits
  2. 16 Jul, 2017 15 commits
  3. 15 Jul, 2017 5 commits
  4. 14 Jul, 2017 11 commits
    • libgo: don't copy semt into runtime.inc · f30d2091
          
          https://gcc.gnu.org/PR81449 reports a problem with the definition semt
          in runtime.inc on some systems. Since the C code in libgo/runtime
          doesn't need semt, just don't copy it into runtime.inc.
          
          Reviewed-on: https://go-review.googlesource.com/48593
      
      From-SVN: r250217
      Ian Lance Taylor committed
    • cmd/go: use gccSupportsFlag for -fsplit-stack · b9d36a8d
          
          Don't assume that all (or only) 386/amd64 compilers support
          -fsplit-stack.
          
          Reviewed-on: https://go-review.googlesource.com/48592
      
      From-SVN: r250216
      Ian Lance Taylor committed
    • rs6000-c.c (altivec_overloaded_builtins): Add array entries to represent… · b70bb05b
      rs6000-c.c (altivec_overloaded_builtins): Add array entries to represent __ieee128 versions of the scalar_test_data_class...
      
      gcc/ChangeLog:
      
      2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	array entries to represent __ieee128 versions of the
      	scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
      	scalar_extract_sig, and scalar_insert_exp built-in functions.
      	(altivec_resolve_overloaded_builtin): Add special case handling
      	for the __builtin_scalar_insert_exp function, as represented by
      	the P9V_BUILTIN_VEC_VSIEDP constant.
      	* config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
      	exponent support for __ieee128 argument.
      	(VSESQP): Add scalar extract signature support for __ieee128
      	argument.
      	(VSTDCNQP): Add scalar test negative support for __ieee128
      	argument.
      	(VSIEQP): Add scalar insert exponent support for __int128 argument
      	with __ieee128 result.
      	(VSIEQPF): Add scalar insert exponent support for __ieee128
      	argument with __ieee128 result.
      	(VSTDCQP): Add scalar test data class support for __ieee128
      	argument.
      	(VSTDCNQP): Add overload support for scalar test negative with
      	__ieee128 argument.
      	(VSTDCQP): Add overload support for scalar test data class
      	__ieee128 argument.
      	* config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
      	UNSPEC_VSX_SXSIGDP.
      	(UNSPEC_VSX_SIEXPQP): New constant.
      	(xsxexpqp): New insn for VSX scalar extract exponent quad
      	precision.
      	(xsxsigqp): New insn for VSX scalar extract significand quad
      	precision.
      	(xsiexpqpf): New insn for VSX scalar insert exponent quad
      	precision with floating point argument.
      	(xststdcqp): New expand for VSX scalar test data class quad
      	precision.
      	(xststdcnegqp): New expand for VSX scalar test negative quad
      	precision.
      	(xststdcqp): New insn to match expansions for VSX scalar test data
      	class quad precision and VSX scalar test negative quad precision.
      	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
      	special case operand checking to enforce that second operand of
      	VSX scalar test data class with quad precision argument is a 7-bit
      	unsigned literal.
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
      	prototypes and descriptions of __ieee128 versions of
      	scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
      	scalar_test_data_class, and scalar_test_neg built-in functions.
      
      gcc/testsuite/ChangeLog:
      
      2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-5.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-6.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-exp-7.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-5.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-6.c: New test.
      	* gcc.target/powerpc/bfp/scalar-extract-sig-7.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-11.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-12.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-13.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-14.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-15.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-6.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-7.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-9.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-10.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-11.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-12.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-13.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-14.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-15.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-8.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-9.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-neg-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-neg-5.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-neg-6.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-neg-7.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-neg-8.c: New test.
      	* gcc.target/powerpc/bfp/vec-extract-exp-4.c: New test.
      	* gcc.target/powerpc/bfp/vec-extract-exp-5.c: New test.
      	* gcc.target/powerpc/bfp/vec-extract-sig-4.c: New test.
      	* gcc.target/powerpc/bfp/vec-extract-sig-5.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-10.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-11.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-8.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-9.c: New test.
      	* gcc.target/powerpc/bfp/vec-test-data-class-8.c: New test.
      	* gcc.target/powerpc/bfp/vec-test-data-class-9.c: New test.
      
      From-SVN: r250214
      Kelvin Nilsen committed
    • Constrain std::variant constructor for class template argument deduction · 20316b9b
      2017-07-14  Jason Merrill  <jason@redhat.com>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/std/variant (variant::variant(_Tp&&)): Constrain to remove
      	the constructor for empty variants from the candidate functions
      	during class template argument deduction.
      	* testsuite/20_util/variant/deduction.cc: New.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r250213
      Jason Merrill committed
    • re PR tree-optimization/81162 (UBSAN switch triggers incorrect optimization in SLSR) · 3b805666
      [gcc]
      
      2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/81162
      	* gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
      	replace a negate with an add.
      
      [gcc/testsuite]
      
      2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/81162
      	* gcc.dg/pr81162.c: New file.
      
      From-SVN: r250212
      Bill Schmidt committed
    • ssa-dse-30.c: Correct test to look for memmove that bcopy is expected to be transformed to. · bece580c
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/tree-ssa/ssa-dse-30.c: Correct test to look for memmove
      	that bcopy is expected to be transformed to.
      
      From-SVN: r250209
      Martin Sebor committed
    • [Patch ARM] Document the +crypto extension on CPUs. · 4ddf9709
      We don't document the list of CPU names which can take a +crypto extension
      in the ARM port. This patch fixes that oversight.
      
      gcc/
      
      2017-14-07  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* doc/invoke.texi (arm/-mcpu): Document +crypto.
      
      From-SVN: r250207
      James Greenhalgh committed
    • [ARM] Fix definition of __ARM_FEATURE_NUMERIC_MAXMIN · 514b60f1
      Definition of __ARM_FEATURE_NUMERIC_MAXMIN checks for
      TARGET_ARM_ARCH >= 8 and TARGET_NEON being true in addition to
      TARGET_VFP5. However, instructions covered by this macro are part of
      FPv5 which is available in ARMv7E-M architecture. This commit fixes the
      macro to only check for TARGET_VFP5.
      
      2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm-c.c (arm_cpu_builtins): Define
          __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
      
      From-SVN: r250206
      Thomas Preud'homme committed
    • [ARM] Add support for ARM Cortex-R52 processor · 2376caf9
      2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm-cpus.in (cortex-r52): Add new entry.
          (armv8-r): Set ARM Cortex-R52 as default CPU.
          * config/arm/arm-tables.opt: Regenerate.
          * config/arm/arm-tune.md: Regenerate.
          * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
          Cortex-R52.
          * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
          extension for -mcpu=cortex-r52.
      
      From-SVN: r250205
      Thomas Preud'homme committed
    • [ARM] Rewire -mfpu=fp-armv8 as VFPv5 + D32 + DP · c8d61ab8
      fp-armv8 is currently defined as a double precision FPv5 with 32 D
      registers *and* a special FP_ARMv8 bit. However FP for ARMv8 should only
      bring 32 D registers on top of FPv5-D16 so this FP_ARMv8 bit is
      spurious. As a consequence, many instruction patterns which are guarded
      by TARGET_FPU_ARMV8 are unavailable to FPv5-D16 and FPv5-SP-D16.
      
      This commit gets rid of TARGET_FPU_ARMV8 and rewire all uses to
      expressions based on TARGET_VFP5, TARGET_VFPD32 and TARGET_VFP_DOUBLE.
      It also redefine ISA_FP_ARMv8 to include the D32 capability to
      distinguish it from FPv5-D16. At last, it sets the +fp.sp for ARMv8-R to
      enable FPv5-SP-D16 (ie FP for ARMv8 with single precision only and 16 D
      registers).
      
      2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
          (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
          * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
          (fp-armv8): Define it as FP_ARMv8 only.
          config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
          (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
          TARGET_FPU_ARMV8.
          config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
          TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
          * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
          first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
          than TARGET_FPU_ARMV8.
          * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
          __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
          * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
          TARGET_FPU_ARMV8.
          * config/arm/neon.md (neon_vrint): Likewise.
          (neon_vcvt): Likewise.
          (neon_<fmaxmin_op><mode>): Likewise.
          (<fmaxmin><mode>3): Likewise.
          * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
          * config/arm/predicates.md (arm_cond_move_operator): Check against
          TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
      
      From-SVN: r250204
      Thomas Preud'homme committed
    • c/c++: Add fix-it hints for suggested missing #includes · eea77d1f
      gcc/c-family/ChangeLog:
      	* c-common.c (try_to_locate_new_include_insertion_point): New
      	function.
      	(per_file_includes_t): New typedef.
      	(added_includes_t): New typedef.
      	(added_includes): New variable.
      	(maybe_add_include_fixit): New function.
      	* c-common.h (maybe_add_include_fixit): New decl.
      
      gcc/c/ChangeLog:
      	* c-decl.c (implicitly_declare): When suggesting a missing
      	#include, provide a fix-it hint.
      
      gcc/cp/ChangeLog:
      	* name-lookup.c (get_std_name_hint): Add '<' and '>' around
      	the header names.
      	(maybe_suggest_missing_header): Update for addition of '<' and '>'
      	to above.  Provide a fix-it hint.
      	* pt.c: Include "gcc-rich-location.h"
      	(listify): Attempt to add fix-it hint for missing
      	#include <initializer_list>.
      	* rtti.c: Include "gcc-rich-location.h".
      	(typeid_ok_p): Attempt to add fix-it hint for missing
      	#include <typeinfo>.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/cpp0x/missing-initializer_list-include.C: New test case.
      	* g++.dg/lookup/missing-std-include-2.C: New test case.
      	* g++.dg/lookup/missing-std-include-3.C: New test case.
      	* g++.dg/rtti/missing-typeinfo-include.C: New test case.
      	* gcc.dg/missing-header-fixit-1.c: New test case.
      	* gcc.dg/missing-header-fixit-2.c: New test case.
      	* gcc.dg/missing-header-fixit-2.h: New header.
      
      From-SVN: r250203
      David Malcolm committed