1. 20 Sep, 2017 12 commits
    • dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines. · dcc34072
      	* dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
      	(DEBUG_LTO_ABBREV_SECTION): Likewise.
      	(DEBUG_LTO_MACINFO_SECTION): Likewise.
      	(DEBUG_MACRO_SECTION): Likewise.
      	(DEBUG_LTO_MACRO_SECTION): Likewise.
      	(DEBUG_STR_DWO_SECTION): Likewise.
      	(DEBUG_LTO_STR_DWO_SECTION): Likewise.
      	(DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
      	(DEBUG_LTO_DWO_LINE_SECTION): Define.
      	(DEBUG_LTO_LINE_STR_SECTION): Define.
      	(init_sections_and_labels): Initialize debug_line_str_section
      	variable.  Initialize debug_loc_section for -gdwarf-5 to
      	DEBUG_LOCLISTS_SECTION.  Formatting fixes.
      
      From-SVN: r253003
      Jakub Jelinek committed
    • re PR c++/64954 (GCC incorrectly rejects constexpr variable initialization.) · 0f45457e
      2017-09-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/64954
      	* g++.dg/cpp0x/constexpr-ctor20.C: New.
      
      From-SVN: r253002
      Paolo Carlini committed
    • graphite-sese-to-poly.c (extract_affine): Properly handle POINTER_PLUS_EXPR,… · f6b5c26b
      graphite-sese-to-poly.c (extract_affine): Properly handle POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
      
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	* graphite-sese-to-poly.c (extract_affine): Properly handle
      	POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
      
      From-SVN: r253001
      Richard Biener committed
    • re PR tree-optimization/81373 (Graphite ICE in ssa_default_def at gcc/tree-dfa.c:305) · 73fe2f32
      2017-09-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81373
      	* graphite-scop-detection.c (build_cross_bb_scalars_def):
      	Force SESE live-out defs to be handled even if they are
      	scev_analyzable_p.
      
      	* gcc.dg/graphite/pr81373.c: New testcase.
      
      From-SVN: r253000
      Richard Biener committed
    • combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack… · ac9c032e
      combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK.
      
      	* combine-stack-adj.c (combine_stack_adjustments_for_block): Do
      	nothing for stack adjustments with REG_STACK_CHECK.
      	* sched-deps.c (parse_add_or_inc): Reject insns with
      	REG_STACK_CHECK from dependency breaking.
      	* config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
      	(ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
      	* reg-notes.def (STACK_CHECK): New note.
      
      	* gcc.target/i386/stack-check-11.c: New test.
      
      From-SVN: r252999
      Jeff Law committed
    • 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 12 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