1. 25 Sep, 2017 16 commits
    • re PR tree-optimization/82285 (Optimizing error when using enumeration) · d362ac6c
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82285
      	* tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
      	enumeral types.
      
      	* gcc.dg/torture/pr82285.c: New testcase.
      
      From-SVN: r253146
      Richard Biener committed
    • [nvptx] Add exit after call to noreturn function · fb202364
      2017-09-25  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/80035
      	PR target/81069
      	* config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
      	noreturn function.
      
      From-SVN: r253145
      Tom de Vries committed
    • [multiple changes] · 851e9f19
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb,
      	exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb,
      	gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb,
      	gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb,
      	libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads,
      	libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb,
      	libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb,
      	libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb,
      	libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb,
      	libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads,
      	put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb,
      	sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb:
      	Removal of ineffective use-clauses.
      	* exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with
      	constant folded barriers.
      	* ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to
      	Subtype_Marks and Names list in use-clause nodes to their new singular
      	counterparts (e.g. Subtype_Mark, Name).
      	* par.adb, par-ch8.adb (Append_Use_Clause): Created to set
      	Prev_Ids and More_Ids in use-clause nodes.
      	(P_Use_Clause): Modify to take a list as a parameter.
      	(P_Use_Package_Clause, P_Use_Type_Clause): Divide names and
      	subtype_marks within an aggregate use-clauses into individual clauses.
      	* par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to
      	P_Use_Clause to match its new behavior.
      	* sem.adb (Analyze): Mark use clauses for non-overloaded entities.
      	* sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous
      	errors.
      	* sem_ch6.adb (Analyze_Generic_Subprogram_Body,
      	Analyze_Subprogram_Body_Helper): Update use clause chain at the end of
      	the declarative region.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain
      	after analysis (Analyze_Package_Specification): Update use clause chain
      	when there is no body.
      	* sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add
      	parameter to determine weither the installation of scopes should also
      	propagate on the use-clause "chain".
      	(Mark_Use_Clauses): Created to traverse use-clause chains and determine
      	what constitutes a valid "use" of a clause.
      	(Update_Use_Clause_Chain): Created to aggregate common machinary used
      	to clean up use-clause chains (and warn on ineffectiveness) at the end
      	of declaritive regions.
      	* sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a
      	package name from a use-package clause.
      	(Analyze_Package_Name_List): Created to perform analysis on a list of
      	package names (similar to Analyze_Package_Name).
      	(Find_Most_Prev): Created to traverse to the beginning of a given
      	use-clause chain.
      	(Most_Decendant_Use_Clause): Create to identify which clause from a
      	given set is highest in scope (not always the most prev).
      	(Use_One_Package, Use_One_Type): Major cleanup and reorganization to
      	handle the new chaining algorithm, also many changes related to
      	redundant clauses. A new parameter has also been added to force
      	installation to handle certain cases.
      	* sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body,
      	Analyze_Task_Body): Mark use clauses on relevant entities.
      	* sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses,
      	Install_Parents): Add parameter to determine weither the installation
      	of scopes should also propagate on the use-clause "chain".
      	* sem_ch12.adb (Inline_Instance_Body): Add flag in call to
      	Install_Context to avoid redundant chaining of use-clauses.
      	* sem_ch13.adb: Minor reformatting.
      	* sem_res.adb (Resolve): Mark use clauses on operators.
      	(Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant
      	entities.
      	* sinfo.adb, sinfo.ads (Is_Effective_Use_Clause,
      	Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to
      	represent any given clause's usage/reference/necessity.
      	(Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause
      	nodes to allow loose chaining of redundant clauses.
      	(Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names,
      	Set_More_Ids, Set_Name): Modify set procedure calls to reflect
      	reorganization in node fields.
      	* types.ads (Source_File_Index): Adjust index bounds.
      	(No_Access_To_Source_File): New constant.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of
      	the expression to be used in the generated attribute specification
      	(rather than relocating it) to avoid resolving a potentially malformed
      	tree when the expression is resolved through an ASIS-specific call to
      	Resolve_Aspect_Expressions.  This manifests itself as a crash on a
      	function with parameter associations.
      
      From-SVN: r253144
      Pierre-Marie de Rodat committed
    • [multiple changes] · 61b14896
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Indexed_Component,
      	Expand_SPARK_Selected_Component): New procedures to insert explicit
      	dereference if required.
      	(Expand_SPARK): Call the new procedures.
      
      2017-09-25  Patrick Bernardi  <bernardi@adacore.com>
      
      	* libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb,
      	libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb,
      	libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb,
      	libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb,
      	libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses.
      
      2017-09-25  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* adaint.c (win32_wait): Properly handle error and take into account
      	the WIN32 limitation on the number of simultaneous wait objects.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the
      	invariant procedure in GNATprove mode.
      	* sem_ch5.adb (Analyze_Assignment): Likewise.
      
      From-SVN: r253143
      Pierre-Marie de Rodat committed
    • graphite-optimize-isl.c (optimize_isl): Fail and dump if ISL errors other than… · 871a0725
      graphite-optimize-isl.c (optimize_isl): Fail and dump if ISL errors other than isl_error_quota happen.
      
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	* graphite-optimize-isl.c (optimize_isl): Fail and dump if
      	ISL errors other than isl_error_quota happen.  Dump if the
      	schedule is the same.
      	* graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
      	errors instead of aborting inside ISL.
      
      From-SVN: r253142
      Richard Biener committed
    • [multiple changes] · d449ed75
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* adabkend.adb (Call_Back_End): Fix wording of "front-end" and
      	"back-end" in comments.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a
      	call that appears in a classwide precondition and that mentions an
      	access formal of the subprogram, must use the accessibility level of
      	the actual in the call. This is one case in which a reference to a
      	formal parameter appears outside of the body of the subprogram.
      
      From-SVN: r253141
      Pierre-Marie de Rodat committed
    • [multiple changes] · f71b4cd4
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant
      	for GNATprove.
      	(Resolve_Entry): Clean up predicate
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather
      	than Program_Error because U_E is more in line with respect to the
      	intended behavior.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect
      	Storage_Size does not freeze, and thus can include references to
      	deferred constants.
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a
      	reference when it appears within a pragma of no significance to SPARK.
      	(In_Insignificant_Pragma): New routine.
      	* sem_prag.ads: Add new table Pragma_Significant_In_SPARK.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the
      	actual is a renaming, indicate that it is the renamed package that must
      	be frozen before the instantiation.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description
      	of dimensionality system in GNAT UG.
      	* gnat_ugn.texi: Regenerate.
      
      2017-09-25  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb: Call Check_Safe_Pointers from the frontend in
      	GNATprove_Mode when switch -gnatdF used.
      
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting
      	the backend.
      
      From-SVN: r253140
      Pierre-Marie de Rodat committed
    • exp_imgv.adb (Expand_Image_Attribute): Disable the optimized expansion of… · e98cd75f
      exp_imgv.adb (Expand_Image_Attribute): Disable the optimized expansion of user-defined enumeration types when...
      
      gcc/ada/
      
      2017-09-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_imgv.adb (Expand_Image_Attribute): Disable the optimized
      	expansion of user-defined enumeration types when the generation of
      	names for enumeration literals is suppressed.
      
      2017-09-25  Gary Dismukes  <dismukes@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb: Minor reformatting.
      
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers
      	that appear as selector names of parameter associations, as these are
      	never resolved by visibility.
      
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* sem_res.adb (Resolve_Entry): Generate reference for index entities.
      
      gcc/testsuite/
      
      2017-09-25  Justin Squirek  <squirek@adacore.com>
      
      	* gnat.dg/entry_family.adb: New testcase
      
      From-SVN: r253139
      Pierre-Marie de Rodat committed
    • [multiple changes] · 49742f99
      2017-09-25  Doug Rupp  <rupp@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine.
      
      2017-09-25  Javier Miranda  <miranda@adacore.com>
      
      	* exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram.
      	(Expand_User_Defined_Enumeration_Image): New subprogram.
      	(Expand_Image_Attribute): Enable speed-optimized expansion of
      	user-defined enumeration types when we are compiling with optimizations
      	enabled.
      
      2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same
      	routine is already provided by Einfo.
      	* einfo.adb (Has_Null_Abstract_State): Replace with the body from
      	Sem_Util, which had better comments and avoided double calls to
      	Abstract_State.
      
      From-SVN: r253138
      Pierre-Marie de Rodat committed
    • [Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh. · 7b607822
      	PR target/80556
      	* config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
      	of libgcc_eh for m64.
      	* config/i386/darwin64.h: Likewise.
      
      /* WORKAROUND pr80556:
         For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
         from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
         the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
         updated to include new images, and might not even be valid for a single
         image.
         Therefore, for 64b exes at least, we must use the libunwind implementation,
         even when static-libgcc is specified.  We put libSystem first so that
         unwinder symbols are satisfied from there.
      
      From-SVN: r253137
      Iain Sandoe committed
    • [multiple changes] · f7fb5c08
      2017-09-25  Bob Duff  <duff@adacore.com>
      
      	* exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init.
      
      2017-09-25  Doug Rupp  <rupp@adacore.com>
      
      	* libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
      	(Compute_Base_Monotonic_Clock): New function.
      	(Timed_Sleep): Adjust to use Base_Monotonic_Clock.
      	(Timed_Delay): Likewise.
      	(Monotonic_Clock): Likewise.
      	* s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.
      
      From-SVN: r253136
      Pierre-Marie de Rodat committed
    • [multiple changes] · aa11d1dd
      2017-09-25  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Save_References_In_Aggregate): Small correction to
      	previous change.
      
      2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb:
      	Minor reformatting.
      
      From-SVN: r253135
      Pierre-Marie de Rodat committed
    • re PR debug/82144 (ICE in add_dwarf_attr with alignas) · 625f7ba6
      2017-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/82144
      	* dwarf2out.c (gen_enumeration_type_die): Do not add alignment
      	attribute for incomplete types nor twice for complete ones.
      
      From-SVN: r253134
      Richard Biener committed
    • Add myself as nvptx maintainer · 55de8eb3
      2017-09-25  Tom de Vries  <tom@codesourcery.com>
      
      	* MAINTAINERS (CPU Port Maintainers): Add myself as nvptx maintainer.
      
      From-SVN: r253133
      Tom de Vries committed
    • Remove unnecessary fold_convert in gfc_(un)likely · b3565940
      This patch removes an unnecessary fold_convert to boolean_type_node at
      the end of gfc_likely and gfc_unlikely.  It makes no difference to the
      generated code, but makes tree dumps a little bit cleaner.
      
      2017-09-25  Janne Blomqvist  <jb@gcc.gnu.org>
              * trans.c (gfc_unlikely): Remove unnecessary fold_convert.
              (gfc_likely): Likewise.
      
      Regtested on x86_64-pc-linux-gnu.
      
      From-SVN: r253132
      Janne Blomqvist committed
    • Daily bump. · 28a8cba0
      From-SVN: r253131
      GCC Administrator committed
  2. 24 Sep, 2017 6 commits
  3. 23 Sep, 2017 4 commits
    • re PR bootstrap/82306 (Revision r253089 breaks bootstrap on Darwin) · 2b8e2e6a
      	PR bootstrap/82306
      	* config/i386/i386.opt (mprefer-avx256): Use
      	ix86_target_flags variable.
      	* config/i386/i386.c (ix86_target_string): Move
      	-mprefer-avx256 to flag2_opts.
      
      From-SVN: r253118
      Uros Bizjak committed
    • re PR fortran/82143 (add a -fdefault-real-16 flag) · d16d81b5
      2017-09-23  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	* lang.opt: Add the options -fdefault-real-10 and -fdefault-real-16.
      	Rename flag_default_real to flag_default_real_8.
      	* invoke.texi: Add documentation.
      	* module.c (use_iso_fortran_env_module): flag_default_real is renamed.
      	* trans-types.c (gfc_init_kinds): Implement the flags
      	-fdefault-real-10 and -fdefault-real-16. Make -fdefault-double-8 work
      	without -fdefault-real-8.
      
      2017-09-23  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/82143
      	* gfortran.dg/promotion_3.f90: New test case.
      	* gfortran.dg/promotion_4.f90: New test case.
      
      From-SVN: r253117
      Janus Weil committed
    • PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris · 89762a83
      gcc/testsuite:
      	* gcc.target/i386/pr82196-1.c: (b): Remove volatile asm.
      	* gcc.target/i386/pr82196-2.c: (b): Likewise.
      
      libgcc:
      	* configure.ac: Add Check for HAVE_AS_AVX.
      	* config.in: Regenerate.
      	* configure: Likewise.
      	* config/i386/i386-asm.h: Include auto-target.h from libgcc.
      	(SSE_SAVE, SSE_RESTORE): Emit .byte sequence for !HAVE_AS_AVX.
      	Correct out-of-date comments.
      
      From-SVN: r253116
      Daniel Santos committed
    • Daily bump. · 099666b3
      From-SVN: r253114
      GCC Administrator committed
  4. 22 Sep, 2017 14 commits
    • re PR bootstrap/81926 (go/parse.o differs between stage2 and stage3) · d68d0df6
      	PR bootstrap/81926
      	* cp-objcp-common.c (cp_get_debug_type): Do only one lookup.
      
      From-SVN: r253109
      Eric Botcazou committed
    • re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0… · a93952d2
      re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match)
      
      	PR middle-end/35691
      	* match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
      	and x != -1 | y != -1 into (x & y) != -1.
      
      	* gcc.dg/pr35691-1.c: Use -fdump-tree-forwprop1-details
      	instead of -fdump-tree-forwprop-details in dg-options.
      	* gcc.dg/pr35691-2.c: Likewise.
      	* gcc.dg/pr35691-3.c: New test.
      	* gcc.dg/pr35691-4.c: New test.
      
      From-SVN: r253107
      Jakub Jelinek committed
    • re PR sanitizer/81929 (exponential slowdown in undefined behavior sanitizer for streaming) · 2dc589be
      	PR sanitizer/81929
      	* tree.c (struct replace_placeholders_t): Add pset field.
      	(replace_placeholders_r): Call cp_walk_tree with d->pset as
      	last argument instead of NULL.  Formatting fix.
      	(replace_placeholders): Add pset variable, add its address
      	into data.  Pass &pset instead of NULL to cp_walk_tree.
      
      	* g++.dg/ubsan/pr81929.C: New test.
      
      From-SVN: r253106
      Jakub Jelinek committed
    • debug/xcoff,cmd: add XCOFF support · c90df0d2
          
          Reviewed-on: https://go-review.googlesource.com/64592
      
      From-SVN: r253105
      Ian Lance Taylor committed
    • config.gcc: Add new case statement to set default_gnu_indirect_function. · f25afa93
      2017-09-22  Steve Ellcey  <sellcey@cavium.com>
      
      	* config.gcc: Add new case statement to set
      	default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
      	i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
      	s390x-*-linux* case statements.   Added aarch64 to the list of
      	supported architectures.
      
      From-SVN: r253104
      Steve Ellcey committed
    • PR82289: Computing peeling costs for irrelevant drs · ea44495d
      This PR shows that we weren't filtering out irrelevant stmts in
      vect_get_peeling_costs_all_drs (unlike related loops in which
      we iterate over all datarefs).
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/82289
      	* tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
      	STMT_VINFO_RELEVANT_P.
      
      gcc/testsuite/
      	PR tree-optimization/82289
      	* gcc.dg/vect/pr82289.c: New test.
      
      From-SVN: r253103
      Richard Sandiford committed
    • range_int_cst_p handling in extract_range_from_binary_expr_1 · 597fdf45
      extract_range_from_binary_expr_1 had:
      
            if (range_int_cst_p (&vr0)
                && range_int_cst_p (&vr1)
                && TYPE_OVERFLOW_WRAPS (expr_type))
              ...
            ...
            extract_range_from_multiplicative_op_1 (vr, code, &vr0, &vr1);
      
      but extract_range_from_multiplicative_op_1 also requires range_int_cst_p.
      I think we should bail out if either range isn't a constant.
      
      This might only be theoretical with current sources, but it's needed
      once polynomial constants are added.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
      	for VR_RANGE only; don't allow VR_ANTI_RANGE.
      	(extract_range_from_binary_expr_1): Don't call
      	extract_range_from_multiplicative_op_1 if !range_int_cst_p.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253102
      Richard Sandiford committed
    • Let the target choose a vectorisation alignment · f702e7d4
      The vectoriser aligned vectors to TYPE_ALIGN unconditionally, although
      there was also a hard-coded assumption that this was equal to the type
      size.  This was inconvenient for SVE for two reasons:
      
      - When compiling for a specific power-of-2 SVE vector length, we might
        want to align to a full vector.  However, the TYPE_ALIGN is governed
        by the ABI alignment, which is 128 bits regardless of size.
      
      - For vector-length-agnostic code it doesn't usually make sense to align,
        since the runtime vector length might not be a power of two.  Even for
        power of two sizes, there's no guarantee that aligning to the previous
        16 bytes will be an improveent.
      
      This patch therefore adds a target hook to control the preferred
      vectoriser (as opposed to ABI) alignment.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* target.def (preferred_vector_alignment): New hook.
      	* doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
      	hook.
      	* doc/tm.texi: Regenerate.
      	* targhooks.h (default_preferred_vector_alignment): Declare.
      	* targhooks.c (default_preferred_vector_alignment): New function.
      	* tree-vectorizer.h (dataref_aux): Add a target_alignment field.
      	Expand commentary.
      	(DR_TARGET_ALIGNMENT): New macro.
      	(aligned_access_p): Update commentary.
      	(vect_known_alignment_in_bytes): New function.
      	* tree-vect-data-refs.c (vect_calculate_required_alignment): New
      	function.
      	(vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
      	Calculate the misalignment based on the target alignment rather than
      	the vector size.
      	(vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
      	rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
      	(vect_enhance_data_refs_alignment): Mask the byte misalignment with
      	the target alignment, rather than masking the element misalignment
      	with the number of elements in a vector.  Also use the target
      	alignment when calculating the maximum number of peels.
      	(vect_find_same_alignment_drs): Use vect_calculate_required_alignment
      	instead of TYPE_ALIGN_UNIT.
      	(vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
      	Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
      	(vect_create_addr_base_for_vector_ref): Update call accordingly.
      	(vect_create_data_ref_ptr): Likewise.
      	(vect_setup_realignment): Realign by ANDing with
      	-DR_TARGET_MISALIGNMENT.
      	* tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
      	the number of peels based on DR_TARGET_ALIGNMENT.
      	* tree-vect-stmts.c (get_group_load_store_type): Compare the gap
      	with the guaranteed alignment boundary when deciding whether
      	overrun is OK.
      	(vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
      	relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
      	(ensure_base_align): Remove stmt_info parameter.  Get the
      	target base alignment from DR_TARGET_ALIGNMENT.
      	(vectorizable_store): Update call accordingly.   Interpret
      	DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
      	TYPE_ALIGN_UNIT.
      	(vectorizable_load): Likewise.
      
      gcc/testsuite/
      	* gcc.dg/vect/vect-outer-3a.c: Adjust dump scan for new wording
      	of alignment message.
      	* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253101
      Richard Sandiford committed
    • Fix testsuite fallout from r252976. · b2b67217
      gcc/testsuite/ChangeLog:
      
      	PR c/81854
      	* gcc.target/i386/pr80732.c: Correct a type error.
      
      From-SVN: r253100
      Martin Sebor committed
    • Add a vect_get_scalar_dr_size helper function · 20bdc473
      This patch adds a helper function for getting the number of bytes
      accessed by an unvectorised data reference, which helps when general
      modes have a variable size.
      
      2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-vectorizer.h (vect_get_scalar_dr_size): New function.
      	* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
      	(vect_enhance_data_refs_alignment): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253099
      Richard Sandiford committed
    • [arm] Improve error checking in parsecpu.awk · dce04e57
      This patch adds a bit more error checking to parsecpu.awk to ensure
      that statements are not missing arguments or have excess arguments
      beyond those permitted.  It also slightly improves the handling of
      errors so that we terminate properly if parsing fails and be as
      helpful as we can while in the parsing phase.
      
      2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
      
      	* config/arm/parsecpu.awk (fatal): Note that we've encountered an
      	error.  Only quit immediately if parsing is complete.
      	(BEGIN): Initialize fatal_err and parse_done.
      	(begin fpu, end fpu): Check number of arguments.
      	(begin arch, end arch): Likewise.
      	(begin cpu, end cpu): Likewise.
      	(cname, tune for, tune flags, architecture, fpu, option): Likewise.
      	(optalias): Likewise.
      
      From-SVN: r253098
      Richard Earnshaw committed
    • [arm] auto-generate arm-isa.h from CPU descriptions · bdb0828f
      This patch autogenerates arm-isa.h from new entries in arm-cpus.in.
      This has the primary advantage that it makes the description file more
      self-contained, but it also solves the 'array dimensioning' problem
      that Tamar recently encountered.  It adds two new constructs to
      arm-cpus.in: features and fgroups.  Fgroups are simply a way of naming
      a group of feature bits so that they can be referenced together.  We
      follow the convention that feature bits are all lower case, while
      fgroups are (predominantly) upper case. This is helpful as in some
      contexts they share the same namespace. Most of the minor changes in
      this patch are related to adopting this new naming convention.
      
      2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
      
      	* config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
      	* config/arm/arm-isa.h: Delete.  Move definitions to ...
      	* arm-cpus.in: ... here.  Use new feature and fgroup values.
      	* config/arm/arm.c (arm_option_override): Use lower case for feature
      	bit names.
      	* config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
      	(TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
      	* config/arm/parsecpu.awk (END): Add new command 'isa'.
      	(isa_pfx): Delete.
      	(print_isa_bits_for): New function.
      	(gen_isa): New function.
      	(gen_comm_data): Use print_isa_bits_for.
      	(define feature): New keyword.
      	(define fgroup): New keyword.
      	* config/arm/t-arm (TM_H): Remove.
      	(GTM_H): Add arm-isa.h.
      	(arm-isa.h): Add rule to generate file.
      	* common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
      	case for feature bit names.
      
      From-SVN: r253097
      Richard Earnshaw committed
    • C++: underline parameters in mismatching function calls · 9003adc7
      gcc/cp/ChangeLog:
      	* call.c (get_fndecl_argument_location): New function.
      	(convert_like_real): Use it  when complaining about argument type
      	mismatches.
      	* cp-tree.h (struct cp_parameter_declarator): Add "loc" field.
      	* parser.c (make_parameter_declarator): Add "loc" param and use
      	it to initialize the new field.
      	(cp_parser_translation_unit): Add UNKNOWN_LOCATION for "loc" of
      	the "no_parameters" parameter.
      	(cp_parser_parameter_declaration_list): Set the location of the
      	result of grokdeclarator to be the parameter's loc, assuming no
      	errors.
      	(cp_parser_parameter_declaration): Generate a location for the
      	parameter and pass to make_parameter_declarator.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/diagnostic/param-type-mismatch.C: Update expected results
      	to reflect highlighting of parameters; add test coverage for
      	callback parameters.
      
      From-SVN: r253096
      David Malcolm committed
    • re PR sanitizer/77631 (no symbols in backtrace shown by ASan when debug info is split) · 8c2ea6b2
      	PR sanitizer/77631
      	* configure.ac: Check for lstat and readlink.
      	* elf.c (lstat, readlink): Provide dummy versions if real versions
      	are not available.
      	* configure, config.h.in: Rebuild.
      
      From-SVN: r253095
      Ian Lance Taylor committed