1. 19 Sep, 2017 15 commits
  2. 18 Sep, 2017 25 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
    • Use built-in for std::make_integer_sequnce · db624b3b
      	* include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
      	(_Build_index_tuple, make_integer_sequence): Use built-in to generate
      	pack expansion.
      
      From-SVN: r252923
      Jonathan Wakely committed
    • PR libstdc++/71187 reimplement declval without add_rvalue_reference · ec26ff5a
      	PR libstdc++/71187
      	* include/std/type_traits (__declval): New function to deduce return
      	type of declval.
      	(__declval_protector::_delegate): Remove.
      	(declval): Use __declval instead of add_rvalue_reference and
      	__declval_protector::__delegate.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
      	lineno.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
      	Likewise.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      
      From-SVN: r252922
      Jonathan Wakely committed
    • Update checksums for isl-0.18.tar.bz2 · ba2c915e
      From-SVN: r252921
      Markus Trippelsdorf committed
    • re PR tree-optimization/82220 (SPEC CPU2006 482.sphinx3 ~10% performance… · 6b1ce94d
      re PR tree-optimization/82220 (SPEC CPU2006 482.sphinx3 ~10% performance regression with trunk@250416)
      
      2017-09-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82220
      	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
      	epilogue niters from the min_profitable_iters compute.
      
      From-SVN: r252917
      Richard Biener committed
    • sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for reference… · 2eda24e9
      sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for reference types in the access-to-access case.
      
      gcc/ada/
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for
      	reference types in the access-to-access case.
      
      2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_attr.adb (Analyze_Access_Attribute): Move check for the presence
      	of the "aliased" keyword on the prefix from here to...
      	(Resolve_Attribute) <Attribute_Access>: ...here.  Remove useless call
      	to Check_No_Implicit_Aliasing.
      	* sinfo.ads (Non_Aliased_Prefix): Delete.
      	(Set_Non_Aliased_Prefix): Likewise.
      	* sinfo.adb (Non_Aliased_Prefix): Delete.
      	(Set_Non_Aliased_Prefix): Likewise.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* exp_ch5.adb (Build_Formal_Container_Iteration,
      	Expand_Formal_Container_Element_Loop): Convert the container to the
      	root type before passing it to the iteration operations, so it will be
      	of the right type.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* einfo.ads, validsw.ads, treepr.ads, sem_util.ads: Comment fixes.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* exp_ch3.adb (Build_Array_Init_Proc): If validity checking is enabled,
      	and it's a bit-packed array, pass False to the Consider_IS parameter of
      	Needs_Simple_Initialization.
      
      2017-09-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Check_Inline_Pragma): Link the newly generated spec to
      	the preexisting body.
      	* sem_prag.adb (Check_Inline_Always_Placement): New routine.
      	(Process_Inline): Verify the placement of pragma Inline_Always. The
      	pragma must now appear on the initial declaration of the related
      	subprogram.
      
      2017-09-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Declarations): In ASIS mode,  At the end of the
      	declarative list in a subprogram body, analyze aspext specifications to
      	provide basic semantic information, because otherwise the aspect
      	specifications might only be snalyzed during expansion, when related
      	subprograms are generated.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* exp_ch9.adb (Is_Simple_Barrier_Name): Follow Original_Node, in case
      	validity checks have rewritten the tree.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* sem_util.adb: Comment fixes, and remove redundant Is_Itype check.
      
      2017-09-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Save_References_In_Aggregate): When constructing a
      	qualified exxpression for an aggregate in a generic unit, verify that
      	the scope of the type is itself visible and not hidden, so that the
      	qualified expression is correctly resolved in any instance.
      
      gcc/testsuite/
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* gnat.dg/validity_check.adb: New testcase.
      
      2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gnat.dg/overload.ads, gnat.dg/overload.adb: New testcase.
      
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* gnat.dg/tagged_prefix_call.adb: New testcase.
      
      From-SVN: r252916
      Pierre-Marie de Rodat committed
    • re PR middle-end/82145 (i386/pr38988.c, i386/pr46254.c, i386/pr55154.c, i386/pr81766.c fails) · f1e3a534
      	PR target/82145
      	* config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
      	changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
      	(ix86_init_pic_reg): Revert 2017-09-01 changes.
      
      From-SVN: r252915
      Jakub Jelinek committed
    • re PR target/81361 (broken exception handling at -O2) · 0eeb9f3d
      	PR target/81361
      	* dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
      	switching to a new text section.
      
      From-SVN: r252914
      Eric Botcazou committed
    • [multiple changes] · 845af9e6
      2017-09-18  Bob Duff  <duff@adacore.com>
      
      	* sem_ch4.adb (Analyze_Qualified_Expression): Give an error if the type
      	mark refers to the current instance. Set the type to Any_Type in that
      	case, to avoid later crashes.
      
      2017-09-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Replace_Discriminant_References): New procedure,
      	subsidiary of Build_Assignment, used to handle the initialization code
      	for a mutable record component whose default value is an aggregate that
      	sets the values of the discriminants of the components.
      
      2017-09-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/default_variants.adb: New testcase.
      
      2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>: Mark
      	the entity as being volatile for an overlay that toggles the scalar
      	storage order.
      
      2017-09-18  Fedor Rybin  <frybin@adacore.com>
      
      	* doc/gnat_ugn/gnat_utility_programs.rst: Document that gnattest
      	options -U main and --harness-only are not compatible.
      
      From-SVN: r252913
      Pierre-Marie de Rodat committed