1. 26 Jan, 2018 3 commits
    • Configure USE_HIDDEN_LINKONCE on Solaris/x86 · af2e3244
      	gcc/testsuite:
      	* gcc.target/i386/mcount_pic.c: Only xfail get_pc_thunk scan on
      	Solaris 10.
      	* gcc.target/i386/pr63620.c: Likewise.
      
      	gcc:
      	* config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove.
      	* configure.ac (hidden_linkonce): New test.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      
      From-SVN: r257076
      Rainer Orth committed
    • Fix various x86 avx512{bitalg, vpopcntdq, vbmi2} issues (PR target/83488) · aad36c56
      gcc/
      	* config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask,
      	_mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
      	_mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask,
      	_mm_mask_bitshuffle_epi64_mask): Fix type.
      	* config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI,
      	USI_FTYPE_V4DI_V4DI_USI): Remove.
      	* config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask,
      	__builtin_ia32_vpshufbitqmb256_mask,
      	__builtin_ia32_vpshufbitqmb128_mask): Fix types.
      	* config/i386/i386.c (ix86_expand_args_builtin): Remove old types.
      	* config/i386/sse.md (VI1_AVX512VLBW): Change types.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Add -mavx512f -mavx512bw.
      	* gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Add -mavx512bw.
      	* gcc.target/i386/i386.exp: Fix types.
      
      From-SVN: r257075
      Julia Koval committed
    • Daily bump. · 09e2984f
      From-SVN: r257073
      GCC Administrator committed
  2. 25 Jan, 2018 24 commits
  3. 24 Jan, 2018 13 commits
    • compiler: rationalize external symbol names · 4880b994
          
          Encode all external symbol names using only ASCII alphanumeric
          characters, underscore, and dot.  Use a scheme that can be reliably
          demangled to a somewhat readable version as described in the long
          comment in names.cc.
          
          A minor cleanup discovered during this was that we were treating
          function types as different if one had a NULL parameters_ field and
          another has a non-NULL parameters_ field that has no parameters.  This
          worked because we mangled them slightly differently.  We now mangle
          them the same, so we treat them as equal, as we should anyhow.
          
          Reviewed-on: https://go-review.googlesource.com/89555
      
      	* go.go-torture/execute/names-1.go: New test.
      
      From-SVN: r257033
      Ian Lance Taylor committed
    • Fix m68k-linux-gnu libgcc build for ColdFire (PR target/68467). · d3719ee2
      PR target/68467 is libgcc failing to build for m68k-linux-gnu
      configured for ColdFire.
      
      Jeff has an analysis in the PR identifying the problem as resulting
      from the callers of libcalls with 1-byte or 2-byte arguments wanting
      to push just 1 or 2 bytes on the stack, while the libcall
      implementations have the normal C ABI and expect 4-byte arguments.
      For normal C functions, I believe the TARGET_PROMOTE_PROTOTYPES
      definition would ensure such arguments get passed as 4-byte, but that
      does not apply for libcalls.
      
      This patch fixes the issue by defining TARGET_PROMOTE_FUNCTION_MODE
      for m68k.  The definition is conservative, only applying promotions in
      the case of arguments to libcalls; otherwise it returns the unpromoted
      type, which I believe matches what the default implementation of the
      hook would have done on m68k.
      
      I have tested that this fixes the libgcc build for ColdFire, and, in
      conjunction with one glibc patch, this enables glibc to build cleanly
      for ColdFire and to pass the compilation parts of the glibc testsuite
      except for one test unrelated to this patch (while glibc and the
      compilation parts of the testsuite continue to build OK for
      non-ColdFire m68k, as expected).  I have *not* run any GCC tests for
      this patch, or any execution tests for m68k.
      
      	PR target/68467
      	* config/m68k/m68k.c (m68k_promote_function_mode): New function.
      	(TARGET_PROMOTE_FUNCTION_MODE): New macro.
      
      From-SVN: r257032
      Joseph Myers committed
    • re PR target/83994 (%ebx is clobbered by stack-clash probing for regparm-3 function in PIC mode) · 5e77d9b1
      	PR target/83994
      	* i386.c (get_probe_interval): Move to earlier point.
      	(ix86_compute_frame_layout): If -fstack-clash-protection and
      	the frame is larger than the probe interval, then use pushes
      	to save registers rather than reg->mem moves.
      	(ix86_expand_prologue): Remove conditional for int_registers_saved
      	assertion.
      
      	PR target/83994
      	* gcc.target/i386/pr83994.c: New test.
      
      From-SVN: r257031
      Jeff Law committed
    • re PR target/84014 (ICE in setup_min_max_allocno_live_range_point, at ira-build.c:2762) · ffd464df
      2018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/84014
      	* ira-build.c (setup_min_max_allocno_live_range_point): Set up
      	min/max for never referenced object.
      
      2018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/84014
      	* gcc.target/powerpc/pr84014.c: New.
      
      From-SVN: r257029
      Vladimir Makarov committed
    • re PR middle-end/83977 (ICE in simd_clone_clauses_extract, at omp-simd-clone.c:184) · f1542d9a
      	PR middle-end/83977
      	* tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN
      	here.
      	* omp-low.c (create_omp_child_function): Remove "omp declare simd"
      	attributes from DECL_ATTRIBUTES (decl) without affecting
      	DECL_ATTRIBUTES (current_function_decl).
      	* omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL
      	functions with non-NULL DECL_ABSTRACT_ORIGIN.
      
      	* c-c++-common/gomp/pr83977-1.c: New test.
      	* c-c++-common/gomp/pr83977-2.c: New test.
      	* c-c++-common/gomp/pr83977-3.c: New test.
      	* gfortran.dg/gomp/pr83977.f90: New test.
      
      From-SVN: r257023
      Jakub Jelinek committed
    • Remove explicit dg-do runs from gcc.dg/vect (PR 83889) · 556d3a24
      The failures in this PR were from forcing { dg-do run } even when
      vect.exp chooses options that are incompatible with the runtime.
      The default vect.exp behaviour is to execute when possible, so there's
      no need for a dg-do at all.
      
      The patch removes other unconditional { dg-do run }s too.  Many of them
      were already failing in the same way.
      
      Also, the dg-do run condition in vect-reduc-or* seems unnecessary:
      the test should run correctly whatever happens, and the scan tests
      are already guarded properly.
      
      2018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/testsuite/
      	PR testsuite/83889
      	* gcc.dg/vect/pr79920.c: Remove explicit dg-do run.
      	* gcc.dg/vect/pr80631-1.c: Likewise.
      	* gcc.dg/vect/pr80631-2.c: Likewise.
      	* gcc.dg/vect/pr81410.c: Likewise.
      	* gcc.dg/vect/pr81633.c: Likewise.
      	* gcc.dg/vect/pr81815.c: Likewise.
      	* gcc.dg/vect/pr82108.c: Likewise.
      	* gcc.dg/vect/pr83857.c: Likewise.
      	* gcc.dg/vect/vect-alias-check-8.c: Likewise.
      	* gcc.dg/vect/vect-alias-check-9.c: Likewise.
      	* gcc.dg/vect/vect-alias-check-10.c: Likewise.
      	* gcc.dg/vect/vect-alias-check-11.c: Likewise.
      	* gcc.dg/vect/vect-alias-check-12.c: Likewise.
      	* gcc.dg/vect/vect-reduc-11.c: Likewise.
      	* gcc.dg/vect/vect-tail-nomask-1.c: Likewise.
      	* gcc.dg/vect/vect-reduc-in-order-1.c: Remove dg-do run and use
      	dg-xfail-run-if instead.
      	* gcc.dg/vect/vect-reduc-in-order-2.c: Likewise.
      	* gcc.dg/vect/vect-reduc-in-order-3.c: Likewise.
      	* gcc.dg/vect/vect-reduc-in-order-4.c: Likewise.
      	* gcc.dg/vect/vect-reduc-or_1.c: Remove conditional dg-do run.
      	* gcc.dg/vect/vect-reduc-or_2.c: Likewise.
      
      From-SVN: r257022
      Richard Sandiford committed
    • Fix use of boolean_true/false_node (PR 83979) · 885a33e1
      r255913 changed some constant_boolean_node calls to boolean_true_node
      and boolean_false_node, which meant that the returned tree didn't
      always have the right type.
      
      2018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/83979
      	* fold-const.c (fold_comparison): Use constant_boolean_node
      	instead of boolean_{true,false}_node.
      
      gcc/testsuite/
      	PR tree-optimization/83979
      	* g++.dg/pr83979.c: New test.
      
      From-SVN: r257021
      Richard Sandiford committed
    • ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls with zero counts. · 35d93d1d
      
      	* ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls
      	with zero counts.
      
      From-SVN: r257020
      Jan Hubicka committed
    • rs6000.md (*call_indirect_nonlocal_sysv<mode>): Simplify the clause that sets the length attribute. · 0976f13b
      2018-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
      	Simplify the clause that sets the length attribute.
      	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
      	(*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
      	clause that sets the length attribute.
      	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
      
      From-SVN: r257019
      Bill Schmidt committed
    • PR c++/82249 - wrong mismatched pack length error. · 018e9cb5
      	* pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle
      	unsubstituted function parameter pack.
      
      From-SVN: r257018
      Jason Merrill committed
    • [testsuite] Fix arm options in gcc.dg/lto/20110201-1_0.c · a84aff58
      This test fails on arm hardfloat targets because it sets an explicit -mfloat-abi=softfp.
      The usual approach to setting the NEON options is to use dg-add-options arm_neon.
      But in the lto tests we don't have that framework, we can only set them explicitly with dg-lto-options.
      
      The solution is to remove the explicit -mfloat-abi=softfp and instead add an effective target check
      for arm_neon_ok_no_float_abi that makes sure we only run this test if -mfpu=neon is enough to get NEON
      without any -mfloat-abi options. In fact, this is what the comment above check_effective_target_arm_neon_ok_no_float_abi_nocache
      recommends for lto tests.
      
      That way on my hardfloat toolchain the test doesn't try to link the softfp binary against a hard-float runtime/test glue
      and all is good. I've tested that the test is appropriately skipped when testing a --with-float=soft toolchain.
      
      
           * gcc.dg/lto/20110201-1_0.c: Remove explicit -mfloat-abi=softfp
           option.  Add arm_neon_ok_no_float_abi check.
      
      From-SVN: r257017
      Kyrylo Tkachov committed
    • [nvptx, PR83589] Workaround for branch-around-nothing JIT bug · 3dede32b
      2018-01-24  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/83589
      	* config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1.
      	(nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c.
      	Add strict parameter.
      	(prevent_branch_around_nothing): Insert dummy insn between branch to
      	label and label with no ptx insn inbetween.
      	* config/nvptx/nvptx.md (define_insn "fake_nop"): New insn.
      
      	* testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test.
      
      From-SVN: r257016
      Tom de Vries committed
    • [nvptx, PR81352] Add exit insn after noreturn call for neutered threads in warp · be606483
      2018-01-24  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/81352
      	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
      	for neutered threads in warp.
      	* config/nvptx/nvptx.md (define_insn "exit"): New insn.
      
      	* testsuite/libgomp.oacc-fortran/pr81352.f90: New test.
      
      From-SVN: r257014
      Tom de Vries committed