1. 21 Oct, 2017 4 commits
    • re PR fortran/82586 ([PDT] ICE: write_symbol(): bad module symbol) · de624bee
      2017-10-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82586
      	* decl.c (gfc_get_pdt_instance): Remove the error message that
      	the parameter does not have a corresponding component since
      	this is now taken care of when the derived type is resolved. Go
      	straight to error return instead.
      	(gfc_match_formal_arglist): Make the PDT relevant errors
      	immediate so that parsing of the derived type can continue.
      	(gfc_match_derived_decl): Do not check the match status on
      	return from gfc_match_formal_arglist for the same reason.
      	* resolve.c (resolve_fl_derived0): Check that each type
      	parameter has a corresponding component.
      
      	PR fortran/82587
      	* resolve.c (resolve_generic_f): Check that the derived type
      	can be used before resolving the struture constructor.
      
      	PR fortran/82589
      	* symbol.c (check_conflict): Add the conflicts involving PDT
      	KIND and LEN attributes.
      
      2017-10-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82586
      	* gfortran.dg/pdt_16.f03 : New test.
      	* gfortran.dg/pdt_4.f03 : Catch the changed messages.
      	* gfortran.dg/pdt_8.f03 : Ditto.
      
      	PR fortran/82587
      	* gfortran.dg/pdt_17.f03 : New test.
      
      	PR fortran/82589
      	* gfortran.dg/pdt_18.f03 : New test.
      
      From-SVN: r253970
      Paul Thomas committed
    • Fix wording · aa93ca09
      From-SVN: r253969
      Eric Botcazou committed
    • Fix invalid path::iterator test · dfdf2839
      	* testsuite/experimental/filesystem/path/itr/traversal.cc: Do not
      	increment past-the-end iterators.
      
      From-SVN: r253967
      Jonathan Wakely committed
    • Daily bump. · f154c1fa
      From-SVN: r253966
      GCC Administrator committed
  2. 20 Oct, 2017 30 commits
    • Update value of __cpp_lib_chrono feature-test macro · 233fa165
      	* include/std/chrono (__cpp_lib_chrono): Update macro value to
      	indicate support for P0505R0.
      	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check
      	for updated macro.
      
      From-SVN: r253959
      Jonathan Wakely committed
    • * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs. · af863030
      From-SVN: r253958
      Jan Hubicka committed
    • debug/dwarf: support 64-bit DWARF in byte order check · 001cbba0
          
          Also fix 64-bit DWARF to read a 64-bit abbrev offset in the
          compilation unit.
          
          This is a backport of https://golang.org/cl/71171, which will be in
          the Go 1.10 release, to the gofrontend copy. Doing it now because AIX
          is pretty much the only system that uses 64-bit DWARF.
          
          Reviewed-on: https://go-review.googlesource.com/72250
      
      From-SVN: r253955
      Ian Lance Taylor committed
    • [C++ PATCH] AS_BASETYPE · 9401eb07
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01376.html
      	* class.c (layout_class_type): Cleanup as-base creation, determine
      	mode here.
      	(finish_struct_1): ... not here.
      
      From-SVN: r253954
      Nathan Sidwell committed
    • Define __cpp_lib_byte feature-test macro · 253e8d21
      	* include/c_global/cstddef: Define __cpp_lib_byte feature-test macro.
      	* testsuite/18_support/byte/requirements.cc: Check macro.
      
      From-SVN: r253952
      Jonathan Wakely committed
    • Add tests for -fcf-protection option and nocf_check attribute. · b0926447
      	* c-c++-common/fcf-protection-1.c: New test.
      	* c-c++-common/fcf-protection-2.c: Likewise.
      	* c-c++-common/fcf-protection-3.c: Likewise.
      	* c-c++-common/fcf-protection-4.c: Likewise.
      	* c-c++-common/fcf-protection-5.c: Likewise.
      	* c-c++-common/attr-nocf-check-1.c: Likewise.
      	* c-c++-common/attr-nocf-check-2.c: Likewise.
      	* c-c++-common/attr-nocf-check-3.c: Likewise.
      
      From-SVN: r253949
      Igor Tsimbalist committed
    • s-osinte__linux.ads (Relative_Timed_Wait): Add variable needed for using monotonic clock. · c840bf9b
      gcc/ada/
      
      2017-10-20  Doug Rupp  <rupp@adacore.com>
      
      	* libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable
      	needed for using monotonic clock.
      	* libgnarl/s-taprop__linux.adb: Revert previous monotonic clock
      	changes.
      	* libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor
      	out monotonic clock related functions body.
      	(Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution,
      	Compute_Deadline): Move to...
      	* libgnarl/s-tpopmo.adb: ... here. New separate package body.
      
      2017-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the
      	case where the controlling formal is an anonymous access to interface
      	type.
      	* exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an
      	access type, handle properly the the constructed dereference that
      	designates the object used in the rewritten synchronized call.
      	(Parameter_Block_Pack): If the type of the actual is by-copy, its
      	generated declaration in the parameter block does not need an
      	initialization even if the type is a null-excluding access type,
      	because it will be initialized with the value of the actual later on.
      	(Parameter_Block_Pack): Do not add controlling actual to parameter
      	block when its type is by-copy.
      
      2017-10-20  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify
      	scope stack traversal into the context clause.
      
      gcc/testsuite/
      
      2017-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/sync_iface_call.adb, gnat.dg/sync_iface_call_pkg.ads,
      	gnat.dg/sync_iface_call_pkg2.adb, gnat.dg/sync_iface_call_pkg2.ads:
      	New testcase.
      
      From-SVN: r253948
      Pierre-Marie de Rodat committed
    • [multiple changes] · 8ce62196
      2017-10-20  Bob Duff  <duff@adacore.com>
      
      	* sinfo.ads: Fix a comment typo.
      
      2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add
      	warning against usage in conjunction with -gnatn.
      	(-fdump-xref): Delete entry.
      	* doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of
      	-fdump-xref switch.
      	* gnat_ugn.texi: Regenerate.
      
      2017-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb:
      	Minor reformatting.
      
      From-SVN: r253947
      Pierre-Marie de Rodat committed
    • Add ChangeLog entries, missing from last commit · 5664fd68
      From-SVN: r253946
      Pierre-Marie de Rodat committed
    • sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to compare a… · 8f8f531f
      sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to compare a dimensioned expression with a literal.
      
      gcc/ada/
      
      2017-10-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to
      	compare a dimensioned expression with a literal.
      	(Dim_Warning_For_Numeric_Literal): Do not issue a warning for the
      	special value zero.
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Update description of
      	dimensionality system in GNAT.
      	* gnat_ugn.texi: Regenerate.
      
      2017-10-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove
      	inadequate silencing of errors.
      	* sem_util.adb (Check_Part_Of_Reference): Do not issue an error when
      	checking the subprogram body generated from an expression function,
      	when this is done as part of the preanalysis done on expression
      	functions, as the subprogram body may not yet be attached in the AST.
      	The error if any will be issued later during the analysis of the body.
      	(Is_Aliased_View): Trivial rewrite with Is_Formal_Object.
      
      2017-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for
      	warning on ineffective use clause.
      
      2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch11.ads (Warn_If_No_Local_Raise): Declare.
      	* exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise
      	to issue the warning on the absence of local raise.
      	(Possible_Local_Raise): Do not issue the warning for Call_Markers.
      	(Warn_If_No_Local_Raise): New procedure to issue the warning on the
      	absence of local raise.
      	* sem_elab.adb: Add with and use clauses for Exp_Ch11.
      	(Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases
      	where a scenario could give rise to raising Program_Error.
      	* sem_elab.adb: Typo fixes.
      	* fe.h (Warn_If_No_Local_Raise): Declare.
      	* gcc-interface/gigi.h (get_exception_label): Change return type.
      	* gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to
      	simple vector of Entity_Id.
      	(gnu_storage_error_label_stack): Likewise.
      	(gnu_program_error_label_stack): Likewise.
      	(gigi): Adjust to above changes.
      	(Raise_Error_to_gnu): Likewise.
      	(gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label.
      	(N_Push_Constraint_Error_Label): Push the label onto the stack.
      	(N_Push_Storage_Error_Label): Likewise.
      	(N_Push_Program_Error_Label): Likewise.
      	(N_Pop_Constraint_Error_Label): Pop the label from the stack and issue
      	a warning on the absence of local raise.
      	(N_Pop_Storage_Error_Label): Likewise.
      	(N_Pop_Program_Error_Label): Likewise.
      	(push_exception_label_stack): Delete.
      	(get_exception_label): Change return type to Entity_Id and adjust.
      	* gcc-interface/utils2.c (build_goto_raise): Change type of first
      	parameter to Entity_Id and adjust.  Set TREE_USED on the label.
      	(build_call_raise): Adjust calls to get_exception_label and also
      	build_goto_raise.
      	(build_call_raise_column): Likewise.
      	(build_call_raise_range): Likewise.
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x):
      	Document actual default behavior.
      
      2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
      
      	* einfo.ads: Minor consistent punctuation in comment.  All numbered
      	items in the comment of Is_Internal are now terminated with a period.
      
      2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
      
      	* exp_util.adb (Build_Temporary): Mark created temporary entity as
      	internal.
      
      2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_type.adb (In_Generic_Actual): Simplified.
      
      2017-10-20  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to
      	verify a renaming exists for a generic formal before comparing it to
      	the actual as defaulted formals will not have a renamed_object.
      
      2017-10-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch6.adb (Replace_Returns): Fix wrong management of
      	N_Block_Statement nodes.
      
      gcc/testsuite/
      
      2017-10-20  Justin Squirek  <squirek@adacore.com>
      
      	* gnat.dg/default_pkg_actual.adb, gnat.dg/default_pkg_actual2.adb: New
      	testcases.
      
      From-SVN: r253945
      Pierre-Marie de Rodat committed
    • exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a component of an array aggregate if... · e201023c
      gcc/ada/
      
      2017-10-20  Bob Duff  <duff@adacore.com>
      
      	* exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a
      	component of an array aggregate if it is initialized by a
      	build-in-place function call.
      	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable
      	bip for nonlimited types.
      	* debug.adb: Document -gnatd.9.
      
      2017-10-20  Bob Duff  <duff@adacore.com>
      
      	* sem_ch12.adb: Remove redundant setting of Parent.
      
      2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one
      	of the operands is a string literal.
      
      2017-10-20  Bob Duff  <duff@adacore.com>
      
      	* einfo.ads: Comment fix.
      
      2017-10-20  Clement Fumex  <fumex@adacore.com>
      
      	* switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC.
      
      2017-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_dim.adb (Extract_Power): Accept dimension values that are not
      	non-negative integers when the dimensioned base type is an Integer
      	type.
      
      gcc/testsuite/
      
      2017-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/dimensions.adb, gnat.dg/dimensions.ads: New testcase.
      
      From-SVN: r253941
      Pierre-Marie de Rodat committed
    • sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate that an… · 3a248f7c
      sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate that an allocator came from a b-i-p return statement.
      
      2017-10-20  Bob Duff  <duff@adacore.com>
      
      	* sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate
      	that an allocator came from a b-i-p return statement.
      	* exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return
      	object of a nonlimited build-in-place function call.
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the
      	Alloc_For_BIP_Return flag on generated allocators.
      	* sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail.
      	If the N_Assignment_Statement has been transformed into something else,
      	then Should_Transform_BIP_Assignment won't work.
      	* exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said,
      	"Remove Adjust if we're building the return object of an extended
      	return statement in place." Back out that part of the change, because
      	the Alloc_For_BIP_Return flag is now used for that.
      
      From-SVN: r253940
      Bob Duff committed
    • i386.md (isa): Remove fma_avx512f. · 2185b582
      	* config/i386/i386.md (isa): Remove fma_avx512f.
      	* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
      	<avx512>_fmadd_<mode>_mask3<round_name>,
      	<avx512>_fmsub_<mode>_mask<round_name>,
      	<avx512>_fmsub_<mode>_mask3<round_name>,
      	<avx512>_fnmadd_<mode>_mask<round_name>,
      	<avx512>_fnmadd_<mode>_mask3<round_name>,
      	<avx512>_fnmsub_<mode>_mask<round_name>,
      	<avx512>_fnmsub_<mode>_mask3<round_name>,
      	<avx512>_fmaddsub_<mode>_mask<round_name>,
      	<avx512>_fmaddsub_<mode>_mask3<round_name>,
      	<avx512>_fmsubadd_<mode>_mask<round_name>,
      	<avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
      	(*vec_widen_umult_even_v16si<mask_name>,
      	*vec_widen_smult_even_v16si<mask_name>): Likewise.
      	(<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
      
      From-SVN: r253939
      Jakub Jelinek committed
    • Add documentation for fcf-protection option and nocf_check attribute · 771c6b44
      gcc/doc/
      	* extend.texi: Add 'nocf_check' documentation.
      	* gimple.texi: Add second parameter to gimple_build_call_from_tree.
      	* invoke.texi: Add -fcf-protection documentation.
      	* rtl.texi: Add REG_CALL_NOTRACK documenation.
      
      From-SVN: r253938
      Igor Tsimbalist committed
    • re PR tree-optimization/82473 (ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1524) · 51e28fff
      2017-10-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82473
      	* tree-vect-loop.c (vectorizable_reduction): Properly get at
      	the largest input type.
      
      	* gcc.dg/torture/pr82473.c: New testcase.
      
      From-SVN: r253937
      Richard Biener committed
    • Add generic part for Intel CET enabling. The spec is available at · 5c5f0b65
      https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf
      
      A proposal is to introduce a target independent flag
      -fcf-protection=[none|branch|return|full] with a semantic to
      instrument a code to control validness or integrity of control-flow
      transfers using jump and call instructions. The main goal is to detect
      and block a possible malware execution through transfer the execution
      to unknown target address. Implementation could be either software or
      target based. Any target platforms can provide their implementation
      for instrumentation under this option.
      
      The compiler should instrument any control-flow transfer points in a
      program (ex. call/jmp/ret) as well as any landing pads, which are
      targets of control-flow transfers.
      
      A new 'nocf_check' attribute is introduced to provide hand tuning
      support. The attribute directs the compiler to skip a call to a
      function and a function's landing pad from instrumentation. The
      attribute can be used for function and pointer to function types,
      otherwise it will be ignored.
      
      Currently all platforms except i386 will report the error and do no
      instrumentation. i386 will provide the implementation based on a
      specification published by Intel for a new technology called
      Control-flow Enforcement Technology (CET).
      
      gcc/c-family/
      	* c-attribs.c (handle_nocf_check_attribute): New function.
      	(c_common_attribute_table): Add 'nocf_check' handling.
      
      gcc/c/
      	* gimple-parser.c: Add second argument NULL to
      	gimple_build_call_from_tree.
      
      gcc/
      	* attrib.c (comp_type_attributes): Check nocf_check attribute.
      	* cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
      	call insn.
      	* combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
      	* common.opt: Add fcf-protection flag.
      	* emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
      	* flag-types.h: Add enum cf_protection_level.
      	* gimple.c (gimple_build_call_from_tree): Add second parameter.
      	Add 'nocf_check' attribute propagation to gimple call.
      	* gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
      	(gimple_build_call_from_tree): Update prototype.
      	(gimple_call_nocf_check_p): New function.
      	(gimple_call_set_nocf_check): Likewise.
      	* gimplify.c: Add second argument to gimple_build_call_from_tree.
      	* ipa-icf.c: Add nocf_check attribute in statement hash.
      	* recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
      	* reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
      	* toplev.c (process_options): Add flag_cf_protection handling.
      
      From-SVN: r253936
      Igor Tsimbalist committed
    • [arm] Fix architecture selection when building libatomic with automatic FPU selection · e64944ac
      Libatomic builds a few functions for Arm with an explicit -march
      option.  This option does not specify an FPU, which can lead to
      problems when targeting a hard-float or softfp environment since the
      architecture appears to be incompatible with the selected ABI.
      
      The fix is simple enough, just add +fp (the minimum floating point
      option) to the architecture.  We don't use anything from the FP
      architecture, so it shouldn't really change anything; and if we are
      building for -mfloat-abi=soft the canonicalization process will remove
      the unnecessary fp attributes anyway.
      
      	* Makefile.am: (IFUNC_OPTIONS): Set the architecture to
      	-march=armv7-a+fp on Linux/Arm.
      	* Makefile.in: Regenerated.
      
      From-SVN: r253935
      Richard Earnshaw committed
    • re PR tree-optimization/82603 (ICE in ifcvt_local_dce w/ -O2 -ftree-loop-vectorize) · 1031b577
      2017-10-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/82603
      	* tree-if-conv.c (predicate_mem_writes): Make sure to only
      	remove false predicated stores.
      
      	* gcc.dg/torture/pr82603.c: New testcase.
      
      From-SVN: r253933
      Richard Biener committed
    • 2017-10-20 Richard Biener <rguenther@suse.de> · c46bd472
      	* graphite-isl-ast-to-gimple.c
      	(translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
      	Remove return value and simplify, dump copied stmt after lhs
      	adjustment.
      	(translate_isl_ast_to_gimple::translate_isl_ast_node_user):
      	Reduce dump verbosity.
      	(gsi_insert_earliest): Likewise.
      	(translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
      	* graphite.c (print_global_statistics): Adjust dumping.
      	(print_graphite_scop_statistics): Likewise.
      	(print_graphite_statistics): Do not dump loops here.
      	(graphite_transform_loops): But here.
      
      From-SVN: r253930
      Richard Biener committed
    • Reduce stack size in gcc.dg/tree-ssa/ldist-27.c · 424101dd
      2017-10-20  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/tree-ssa/ldist-27.c: Remove dg-require-stack-size.
      	(main): Move s ...
      	(s): ... here.
      
      From-SVN: r253929
      Tom de Vries committed
    • configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir. · e8679fd5
      	* configure.ac (ACX_PROG_GNAT): Append "libgnat" to the include dir.
      	* configure: Regenerate.
      
      From-SVN: r253928
      Nicolas Roche committed
    • re PR target/82158 (_Noreturn functions that do return clobber caller's… · 356fcc67
      re PR target/82158 (_Noreturn functions that do return clobber caller's registers on ARM32 (but not other arches))
      
      	PR target/82158
      	* tree-cfg.c (pass_warn_function_return::execute): In noreturn
      	functions when optimizing replace GIMPLE_RETURN stmts with
      	calls to __builtin_unreachable ().
      
      	* gcc.dg/tree-ssa/noreturn-1.c: New test.
      
      From-SVN: r253926
      Jakub Jelinek committed
    • re PR sanitizer/82595 (bootstrap fails in libsanitizer on powerpc64-unknown-linux-gnu) · 9a45ffbd
      	PR sanitizer/82595
      	* config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
      	for -fsanitize=thread link of executables.
      	(LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
      	link of executables.
      
      	* lsan/lsan.h (__lsan_init): Add SANITIZER_INTERFACE_ATTRIBUTE.
      	* lsan/Makefile.am (nodist_toolexeclib_HEADERS): Add
      	liblsan_preinit.o.
      	(lsan_files): Remove lsan_preinit.cc.
      	(liblsan_preinit.o): New rule.
      	* lsan/Makefile.in: Regenerated.
      
      From-SVN: r253925
      Jakub Jelinek committed
    • re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.) · 42a764f7
      	PR target/82370
      	* config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
      	New mode iterators.
      	(<shift_insn><mode>3<mask_name>): Change the last of the 3
      	define_insns for logical vector shifts to use VI248_AVX512BW
      	iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
      	condition, useless isa and prefix attributes.  Change the first
      	2 of these define_insns to ...
      	(<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
      	define_insn for avx512vl.
      	(<shift_insn><mode>3): ... and this, new define_insn without
      	masking for non-avx512vl.
      
      	* gcc.target/i386/avx-pr82370.c: New test.
      	* gcc.target/i386/avx2-pr82370.c: New test.
      	* gcc.target/i386/avx512f-pr82370.c: New test.
      	* gcc.target/i386/avx512bw-pr82370.c: New test.
      	* gcc.target/i386/avx512vl-pr82370.c: New test.
      	* gcc.target/i386/avx512vlbw-pr82370.c: New test.
      
      From-SVN: r253924
      Jakub Jelinek committed
    • re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.) · c274eebe
      	PR target/82370
      	* config/i386/sse.md (*andnot<mode>3,
      	<mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
      	(=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
      	and 256-bit vectors, the (=x,x,xm) alternative and when mask is
      	not applied use empty suffix even for TARGET_AVX512VL.
      	* config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
      	is applied, supply evex,evex or evex,evex,evex instead of just
      	evex.
      
      From-SVN: r253923
      Jakub Jelinek committed
    • Add GFNI command line options and macros · b8cca31c
      gcc/
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
      	(OPTION_MASK_ISA_GFNI_UNSET): New.
      	(ix86_handle_option): Handle OPT_mgfni.
      	* config/i386/cpuid.h (bit_GFNI): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
      	* config/i386/i386.c (ix86_target_string): Add -mgfni.
      	(ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
      	* config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
      	* config/i386/i386.opt: Add mgfni.
      
      From-SVN: r253922
      Julia Koval committed
    • msp430.c (msp430_option_override): Disable -fdelete-null-pointer-checks. · 793c096d
      * config/msp430/msp430.c (msp430_option_override): Disable
      -fdelete-null-pointer-checks.
      * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
      
      * lib/target-supports.exp (check_effective_target_keeps_null_pointer_checks):
      Add msp430 to the list.
      
      From-SVN: r253921
      Orlando Arias committed
    • re PR c++/82308 ([C++17] deduction of template arguments results in internal compiler error) · b6b240ed
      2017-10-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82308
      	* g++.dg/cpp1z/class-deduction45.C: New.
      
      From-SVN: r253920
      Paolo Carlini committed
    • Daily bump. · 6d2bd9ff
      From-SVN: r253919
      GCC Administrator committed
  3. 19 Oct, 2017 6 commits
    • exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" should be "T". · 7d92172c
      2017-10-19  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ"
      	should be "T".  Handle case of a subtype of a class-wide type.
      
      From-SVN: r253916
      Bob Duff committed
    • [multiple changes] · fb9dd1c7
      2017-10-19  Bob Duff  <duff@adacore.com>
      
      	* exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify
      	which node kinds can legitimately be ignored, and raise Program_Error
      	for others.
      
      2017-10-19  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Compilation_Unit): Handle the case of a subprogram
      	instantiation that acts as a compilation unit.
      	(Find_Code_Unit): Reimplemented.
      	(Find_Top_Unit): Reimplemented.
      	(Find_Unit_Entity): New routine.
      	(Process_Instantiation_SPARK): Correct the elaboration requirement a
      	package instantiation imposes on a unit.
      
      2017-10-19  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place
      	for a narrow set of controlled types.
      
      2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sinput.ads (Line_Start): Add pragma Inline.
      	* widechar.ads (Is_Start_Of_Wide_Char): Likewise.
      
      2017-10-19  Bob Duff  <duff@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference): Disable
      	Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a
      	build-in-place function call so that the temp is declared in the right
      	place.
      
      From-SVN: r253915
      Pierre-Marie de Rodat committed
    • PR82575, lto debugobj references __gnu_lto_slim, ld test liblto-17 fails · ebd208bf
      If __gnu_lto_slim is global, undefined, default visibility in the
      early debug object, then it finds its way into .dynsym when creating
      shared libraries.  __gnu_lto_slim in a symbol table (.dynsym or
      .symtab) signals nm and other binutils that the object is an LTO
      object needing a plugin, but that isn't the case for the ld liblti-17
      tests.  So, make __gnu_lto_slim hidden to prevent it becoming
      dynamic.  Further, make it weak because some linkers may warn on
      finding an undefined global non-default visibility symbol.
      
      	PR lto/82575
      	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
      	Make discarded non-local symbols weak and hidden.
      
      From-SVN: r253914
      Alan Modra committed
    • x86-tune-costs.h (generic_cost, core_cost): Correct costs of x87 and SSE instructions. · ef9eec0b
      
      	* x86-tune-costs.h (generic_cost, core_cost): Correct costs
      	of x87 and SSE instructions.
      
      From-SVN: r253911
      Jan Hubicka committed
    • asan.c (create_cond_insert_point): Do not update edge count. · ef30ab83
      
      	* asan.c (create_cond_insert_point): Do not update edge count.
      	* auto-profile.c (afdo_propagate_edge): Update for edge count removal.
      	(afdo_propagate_circuit): Likewise.
      	(afdo_calculate_branch_prob): Likewise.
      	(afdo_annotate_cfg): Likewise.
      	* basic-block.h (struct edge_def): Remove count.
      	(edge_def::count): New accessor.
      	* bb-reorder.c (rotate_loop): Update.
      	(find_traces_1_round): Update.
      	(connect_traces): Update.
      	(sanitize_hot_paths): Update.
      	* cfg.c (unchecked_make_edge): Update.
      	(make_single_succ_edge): Update.
      	(check_bb_profile): Update.
      	(dump_edge_info): Update.
      	(update_bb_profile_for_threading): Update.
      	(scale_bbs_frequencies_int): Update.
      	(scale_bbs_frequencies_gcov_type): Update.
      	(scale_bbs_frequencies_profile_count): Update.
      	(scale_bbs_frequencies): Update.
      	* cfganal.c (connect_infinite_loops_to_exit): Update.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	(find_many_sub_basic_blocks): Update.
      	* cfgcleanup.c (try_forward_edges): Update.
      	(try_crossjump_to_edge): Update
      	* cfgexpand.c (expand_gimple_cond): Update
      	(expand_gimple_tailcall): Update
      	(construct_exit_block): Update
      	* cfghooks.c (verify_flow_info): Update
      	(redirect_edge_succ_nodup): Update
      	(split_edge): Update
      	(make_forwarder_block): Update
      	(duplicate_block): Update
      	(account_profile_record): Update
      	* cfgloop.c (find_subloop_latch_edge_by_profile): Update.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Update.
      	* cfgloopmanip.c (scale_loop_profile): Update.
      	(loopify): Update.
      	(lv_adjust_loop_entry_edge): Update.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Update.
      	(force_nonfallthru_and_redirect): Update.
      	(purge_dead_edges): Update.
      	(rtl_flow_call_edges_add): Update.
      	* cgraphunit.c (init_lowered_empty_function): Update.
      	(cgraph_node::expand_thunk): Update.
      	* gimple-pretty-print.c (dump_probability): Update.
      	(dump_edge_probability): Update.
      	* gimple-ssa-isolate-paths.c (isolate_path): Update.
      	* haifa-sched.c (sched_create_recovery_edges): Update.
      	* hsa-gen.c (convert_switch_statements): Update.
      	* ifcvt.c (dead_or_predicable): Update.
      	* ipa-inline-transform.c (inline_transform): Update.
      	* ipa-split.c (split_function): Update.
      	* ipa-utils.c (ipa_merge_profiles): Update.
      	* loop-doloop.c (add_test): Update.
      	* loop-unroll.c (unroll_loop_runtime_iterations): Update.
      	* lto-streamer-in.c (input_cfg): Update.
      	(input_function): Update.
      	* lto-streamer-out.c (output_cfg): Update.
      	* modulo-sched.c (sms_schedule): Update.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Update.
      	* predict.c (maybe_hot_edge_p): Update.
      	(unlikely_executed_edge_p): Update.
      	(probably_never_executed_edge_p): Update.
      	(dump_prediction): Update.
      	(drop_profile): Update.
      	(propagate_unlikely_bbs_forward): Update.
      	(determine_unlikely_bbs): Update.
      	(force_edge_cold): Update.
      	* profile.c (compute_branch_probabilities): Update.
      	* reg-stack.c (better_edge): Update.
      	* shrink-wrap.c (handle_simple_exit): Update.
      	* tracer.c (better_p): Update.
      	* trans-mem.c (expand_transaction): Update.
      	(split_bb_make_tm_edge): Update.
      	* tree-call-cdce.c: Update.
      	* tree-cfg.c (gimple_find_sub_bbs): Update.
      	(gimple_split_edge): Update.
      	(gimple_duplicate_sese_region): Update.
      	(gimple_duplicate_sese_tail): Update.
      	(gimple_flow_call_edges_add): Update.
      	(insert_cond_bb): Update.
      	(execute_fixup_cfg): Update.
      	* tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
      	* tree-complex.c (expand_complex_div_wide): Update.
      	* tree-eh.c (lower_resx): Update.
      	(unsplit_eh): Update.
      	(cleanup_empty_eh_move_lp): Update.
      	* tree-inline.c (copy_edges_for_bb): Update.
      	(freqs_to_counts): Update.
      	(copy_cfg_body): Update.
      	* tree-ssa-dce.c (remove_dead_stmt): Update.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
      	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
      	(unloop_loops): Update.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
      	* tree-ssa-loop-split.c (connect_loops): Update.
      	(split_loop): Update.
      	* tree-ssa-loop-unswitch.c (hoist_guard): Update.
      	* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
      	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
      	* tree-ssa-reassoc.c (branch_fixup): Update.
      	* tree-ssa-tail-merge.c (replace_block_by): Update.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
      	(compute_path_counts): Update.
      	(update_profile): Update.
      	(recompute_probabilities): Update.
      	(update_joiner_offpath_counts): Update.
      	(estimated_freqs_path): Update.
      	(freqs_to_counts_path): Update.
      	(clear_counts_path): Update.
      	(ssa_fix_duplicate_block_edges): Update.
      	(duplicate_thread_path): Update.
      	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
      	(case_bit_test_cmp): Update.
      	(collect_switch_conv_info): Update.
      	(gen_inbound_check): Update.
      	(do_jump_if_equal): Update.
      	(emit_cmp_and_jump_insns): Update.
      	* tree-tailcall.c (decrease_profile): Update.
      	(eliminate_tail_call): Update.
      	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
      	(vect_do_peeling): Update.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
      	* ubsan.c (ubsan_expand_null_ifn): Update.
      	(ubsan_expand_ptr_ifn): Update.
      	* value-prof.c (gimple_divmod_fixed_value): Update.
      	(gimple_mod_pow2): Update.
      	(gimple_mod_subtract): Update.
      	(gimple_ic): Update.
      	(gimple_stringop_fixed_value): Update.
      
      From-SVN: r253910
      Jan Hubicka committed
    • Fix oversights · 68581ee1
      From-SVN: r253909
      Eric Botcazou committed