1. 20 Sep, 2017 7 commits
    • i386.c (ix86_adjust_stack_and_probe_stack_clash): New. · 8e7a09c3
      	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
      	(ix86_expand_prologue): Dump stack clash info as needed.
      	Call ix86_adjust_stack_and_probe_stack_clash as needed.
      
      	* gcc.dg/stack-check-4.c: New test.
      	* gcc.dg/stack-check-5.c: New test.
      	* gcc.dg/stack-check-6.c: New test.
      	* gcc.dg/stack-check-6a.c: New test.
      	* gcc.dg/stack-check-7.c: New test.
      	* gcc.dg/stack-check-8.c: New test.
      	* gcc.dg/stack-check-9.c: New test.
      	* gcc.dg/stack-check-10.c: New test.
      	* lib/target-supports.exp
      	(check_effective_target_supports_stack_clash_protection): Enable for
      	x86 and x86_64 targets.
      
      From-SVN: r252998
      Jeff Law committed
    • function.c (dump_stack_clash_frame_info): New function. · 8a502a80
              * function.c (dump_stack_clash_frame_info): New function.
              * function.h (dump_stack_clash_frame_info): Prototype.
              (enum stack_clash_probes): New enum.
      
      From-SVN: r252997
      Jeff Law committed
    • alpha.c (alpha_expand_prologue): Also check flag_stack_clash_protection. · 9c1b56c4
      	* config/alpha/alpha.c (alpha_expand_prologue): Also check
      	flag_stack_clash_protection.
      	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
      	(arm_expand_prologue, thumb1_expand_prologue): Likewise.
      	(arm_frame_pointer_required): Likewise.
      	* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
      	(ia64_expand_prologue): Likewise.
      	* config/mips/mips.c (mips_expand_prologue): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
      	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
      	(sparc_flat_expand_prologue): Likewise.
      	* config/spu/spu.c (spu_expand_prologue): Likewise.
      
      From-SVN: r252996
      Jeff Law committed
    • explow.c: Include "params.h". · 8c1dd970
      2017-09-18  Jeff Law  <law@redhat.com>
      
      	* explow.c: Include "params.h".
      	(anti_adjust_stack_and_probe_stack_clash): New function.
      	(get_stack_check_protect): Likewise.
      	(compute_stack_clash_protection_loop_data): Likewise.
      	(emit_stack_clash_protection_loop_start): Likewise.
      	(emit_stack_clash_protection_loop_end): Likewise.
      	(allocate_dynamic_stack_space): Use get_stack_check_protect.
      	Use anti_adjust_stack_and_probe_stack_clash.
      	* explow.h (compute_stack_clash_protection_loop_data): Prototype.
      	(emit_stack_clash_protection_loop_start): Likewise.
      	(emit_stack_clash_protection_loop_end): Likewise.
      	* rtl.h (get_stack_check_protect): Prototype.
      	* target.def (stack_clash_protection_final_dynamic_probe): New hook.
      	* targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
      	* targhooks.h (default_stack_clash_protection_final_dynamic_probe):
      	Prototype.
      	* doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
      	Add @hook.
      	* doc/tm.texi: Rebuilt.
      	* config/aarch64/aarch64.c (aarch64_expand_prologue): Use
      	get_stack_check_protect.
      	* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
      	* config/arm/arm.c (arm_expand_prologue): Likewise.
      	(arm_frame_pointer_required): Likewise.
      	* config/i386/i386.c (ix86_expand_prologue): Likewise.
      	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
      	* config/mips/mips.c (mips_expand_prologue): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
      	(sparc_flat_expand_prologue): Likewise.
      
      	* gcc.dg/stack-check-3.c: New test.
      
      From-SVN: r252995
      Jeff Law committed
    • common.opt (-fstack-clash-protection): New option. · ee8f15c6
      	* common.opt (-fstack-clash-protection): New option.
      	* flag-types.h (enum stack_check_type): Note difference between
      	-fstack-check= and -fstack-clash-protection.
      	* params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
      	(PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
      	* toplev.c (process_options): Issue warnings/errors for cases
      	not handled with -fstack-clash-protection.
      	* doc/invoke.texi (-fstack-clash-protection): Document new option.
      	(-fstack-check): Note additional problem with -fstack-check=generic.
      	Note that -fstack-check is primarily for Ada and refer users
      	to -fstack-clash-protection for stack-clash-protection.
      	Document new params for stack clash protection.
      
      	* gcc.dg/stack-check-2.c: New test.
      	* lib/target-supports.exp
      	(check_effective_target_supports_stack_clash_protection): New function.
      	(check_effective_target_frame_pointer_for_non_leaf): Likewise.
      	(check_effective_target_caller_implicit_probes): Likewise.
      
      From-SVN: r252994
      Jeff Law committed
    • runtime: restore "goroutine in C code" message · 8fca1395
          
          In the 1.9 upgrade I took out the word "goroutine" from a traceback
          showing a goroutine running in C code, to let TestCgoNumGoroutine
          pass.  However, it turns out that some code is actually checking for
          that string; for example,
          https://github.com/grpc/grpc-go/blob/master/test/leakcheck/leakcheck.go#L44
          So keep the message the same, and change the test.
          
          Reviewed-on: https://go-review.googlesource.com/64850
      
      From-SVN: r252991
      Ian Lance Taylor committed
    • Daily bump. · 9bd25fc4
      From-SVN: r252990
      GCC Administrator committed
  2. 19 Sep, 2017 16 commits
  3. 18 Sep, 2017 17 commits
    • re PR c++/80947 (Different visibility for the lambda and its capture list… · 7e12c0e0
      re PR c++/80947 (Different visibility for the lambda and its capture list members with -fvisibility=hidden)
      
      2017-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80947
      	* g++.dg/cpp0x/lambda/lambda-80947.C: New.
      
      From-SVN: r252957
      Paolo Carlini committed
    • PR libstdc++/81468 fix test for duration conversions · e1227692
      	PR libstdc++/81468
      	* testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
      	improve static assertion messages.
      
      From-SVN: r252950
      Jonathan Wakely committed
    • re PR target/81613 (FAIL: gfortran.dg/intrinsic_modulo_1.f90 -O3 -g execution test) · 05d41b0c
      PR target/81613
      * config/m68k/m68k.md (moveq feeding equality comparison): Check
      that the registers are different.
      
      From-SVN: r252949
      Andreas Schwab committed
    • i386.c (fold_builtin_cpu): Add M_AMDFAM17H to processor_model and "amdfam17h" to arch_names_table. · f5987ce6
      	* config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
      	to processor_model and "amdfam17h" to arch_names_table.
      	* doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
      
      From-SVN: r252948
      Uros Bizjak committed
    • re PR c/82234 (__builtin_shuffle is not in the keyword index) · f94616d9
      	PR c/82234
      	* doc/extend.texi: Add @findex entry for __builtin_shuffle.
      
      From-SVN: r252947
      Jakub Jelinek committed
    • PR c++/82069 - ICE with lambda in template · 04dcd570
      	* semantics.c (process_outer_var_ref): Check uses_template_parms
      	instead of any_dependent_template_arguments_p.
      
      From-SVN: r252936
      Jason Merrill committed
    • Move computation of SLP_TREE_NUMBER_OF_VEC_STMTS · 8b7e9dba
      Previously SLP_TREE_NUMBER_OF_VEC_STMTS was calculated while scheduling
      an SLP tree after analysis, but sometimes it can be useful to know the
      value during analysis too.  This patch moves the calculation to
      vect_slp_analyze_node_operations instead.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
      	with a vec_info *.
      	* tree-vect-loop.c (vect_analyze_loop_operations): Update call
      	accordingly.
      	* tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
      	parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
      	vect_schedule_slp_instance.
      	(vect_slp_analyze_operations): Replace parameters with a vec_info *.
      	Update call to vect_slp_analyze_node_operations.  Simplify return
      	value.
      	(vect_slp_analyze_bb_1): Update call accordingly.
      	(vect_schedule_slp_instance): Remove vectorization_factor parameter.
      	Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
      	(vect_schedule_slp): Update call accordingly.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252935
      Richard Sandiford committed
    • Fix an SVE failure in the Fortran matmul* tests · ac8936b4
      The vectoriser was calling vect_get_smallest_scalar_type without
      having proven that the type actually is a scalar.  This seems to
      be the intended behaviour: the ultimate test of whether the type
      is interesting (and hence scalar) is whether an associated vector
      type exists, but this is only tested later.
      
      The patch simply makes the function cope gracefully with non-scalar
      inputs.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
      	with types that aren't in fact scalar.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252934
      Richard Sandiford committed
    • Include phis in SLP unrolling calculation · b161f2c9
      Without this we'd pick an unrolling factor based purely on longs,
      ignoring the ints.  It's posssible that vect_get_smallest_scalar_type
      should also handle shifts, but I think we'd still want this as a
      belt-and-braces fix.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-vect-slp.c (vect_record_max_nunits): New function,
      	split out from...
      	(vect_build_slp_tree_1): ...here.
      	(vect_build_slp_tree_2): Call it for phis too.
      
      gcc/testsuite/
      	* gcc.dg/vect/slp-multitypes-13.c: New test.
      
      From-SVN: r252933
      Richard Sandiford committed
    • Fix vectorizable_mask_load_store handling of invariant masks · 7251b0bf
      vectorizable_mask_load_store was not passing the required mask type to
      vect_get_vec_def_for_operand.  This doesn't matter for masks that are
      defined in the loop, since their STMT_VINFO_VECTYPE will be what we need
      anyway.  But it's not possible to tell which mask type the caller needs
      when looking at an invariant scalar boolean.  As the comment above the
      function says:
      
         In case OP is an invariant or constant, a new stmt that creates a vector def
         needs to be introduced.  VECTYPE may be used to specify a required type for
         vector invariant.
      
      This fixes the attached testcase for SVE.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
      	to vect_get_vec_def_for_operand when getting the mask operand.
      
      gcc/testsuite/
      	* gfortran.dg/vect/mask-store-1.f90: New test.
      
      From-SVN: r252932
      Richard Sandiford committed
    • Fix type of bitstart in vectorizable_live_operation · e009b055
      This patch changes the type of the multiplier applied by
      vectorizable_live_operation from unsigned_type_node to bitsizetype,
      which matches the type of TYPE_SIZE and is the type expected of a
      BIT_FIELD_REF bit position.  This is shown by existing tests when
      SVE is added.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_live_operation): Fix type of
      	bitstart.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252931
      Richard Sandiford committed
    • Fix vectorizable_live_operation handling of vector booleans · dd25e724
      vectorizable_live_operation needs to use BIT_FIELD_REF to extract one
      element of a vector.  For a packed vector boolean type, the number of
      bits to extract should be taken from TYPE_PRECISION rather than TYPE_SIZE.
      
      This is shown by existing tests once SVE is added.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_live_operation): Fix element size
      	calculation for vector booleans.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252930
      Richard Sandiford committed
    • Invoke vectorizable_live_operation in a consistent way · 68a0f2ff
      vect_transform_stmt calls vectorizable_live_operation for
      each live statement in an SLP node, but vect_analyze_stmt
      only called it the once.  This patch makes vect_analyze_stmt
      consistent with vect_transform_stmt, which should be a bit
      more robust, and also means that a later patch can use
      slp_index when deciding validity.
      
      2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (can_vectorize_live_stmts): New function,
      	split out from...
      	(vect_transform_stmt): ...here.
      	(vect_analyze_stmt): Use it instead of calling
      	vectorizable_live_operation directly.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252929
      Richard Sandiford committed
    • omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on non-SIMT targets in acc vector loops. · f64b12bd
      	gcc/
      	* omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
      	non-SIMT targets in acc vector loops.
      
      From-SVN: r252928
      Cesar Philippidis committed
    • [ARC] Check the assembler for gdwar2 support. · 7c22e690
      gcc/
      2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* configure.ac: Add arc and check if assembler supports gdwar2.
      	* configure: Regenerate.
      
      From-SVN: r252927
      Claudiu Zissulescu committed
    • re PR c++/45033 ("delete" does overload resolution for class operands, but shouldn't.) · 10d8c51f
      2017-09-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/45033
      	* g++.dg/expr/delete1.C: New.
      
      From-SVN: r252924
      Paolo Carlini committed