1. 16 Nov, 2017 28 commits
    • [BRIG] added documentation in gccbrig.texi · 6748a40f
      From-SVN: r254820
      Pekka Jääskeläinen committed
    • opt.ads: Elaboration warnings are now on by default. · 7fb62ca1
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* opt.ads: Elaboration warnings are now on by default. Add a comment
      	explaining why this is needed.
      	* sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration
      	warnings.
      	* sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of
      	elaboration warnings.
      	(Analyze_Subprogram_Instantiation): Preserve the status of elaboration
      	warnings.
      	* sem_elab.adb: Update the structure of Call_Attributes and
      	Instantiation_Attributes.
      	(Build_Call_Marker): Propagate the status of elaboration warnings from
      	the call to the marker.
      	(Extract_Call_Attributes): Extract the status of elaboration warnings.
      	(Extract_Instantiation_Attributes): Extract the status of elaboration
      	warnings.
      	(Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are
      	now dependent on the status of elaboration warnings.
      	(Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	(Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics
      	are now dependent on the status of elaboration warnings.
      	(Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced
      	for formal Call_Attrs. Elaboration diagnostics are now dependent on the
      	status of elaboration warnings.
      	(Process_Guaranteed_ABE_Call): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	(Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now
      	dependent on the status of elaboration warnings.
      	* sem_prag.adb (Analyze_Pragma): Remove the unjustified warning
      	concerning pragma Elaborate.
      	* sem_res.adb (Resolve_Call): Preserve the status of elaboration
      	warnings.
      	(Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node
      	from the procedure call to the entry call.
      	* sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter
      	Warnings.
      	(Mark_Elaboration_Attributes_Node): Preserve the status of elaboration
      	warnings
      	* sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter
      	Warnings. Update the comment on usage.
      	* sinfo.adb (Is_Dispatching_Call): Update to use Flag6.
      	(Is_Elaboration_Warnings_OK_Node): New routine.
      	(Set_Is_Dispatching_Call): Update to use Flag6.
      	(Set_Is_Elaboration_Warnings_OK_Node): New routine.
      	* sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new
      	attribute Is_Elaboration_Warnings_OK_Node along with occurrences
      	in nodes.
      	(Is_Elaboration_Warnings_OK_Node): New routine along with pragma
      	Inline.
      	(Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma
      	Inline.
      	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various
      	sections to indicate how to suppress elaboration warnings.  Document
      	switches -gnatwl and -gnatwL.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r254819
      Hristian Kirtchev committed
    • [multiple changes] · 403bc026
      2017-11-16  Sylvain Dailler  <dailler@adacore.com>
      
      	* sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos
      	lower than 0.
      
      2017-11-16  Bob Duff  <duff@adacore.com>
      
      	* sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of
      	System'To_Address.
      
      From-SVN: r254818
      Pierre-Marie de Rodat committed
    • [PR c++/81060] ICE with invalid initialzer via lambda · c757ad4c
      https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01323.html
      	PR c++/81060
      	* decl.c (xref_tag_1): Push lambda into current scope.
      	* name-lookup.c (do_pushtag): Don't deal with ts_lambda here.
      
      	PR c++81060
      	* g++.dg/cpp0x/lambda/lambda-template13.C: Avoid undefined
      	template using local type error.
      	* g++.dg/cpp0x/pr81060.C: New.
      
      From-SVN: r254817
      Nathan Sidwell committed
    • Canonicalize constant multiplies in division · 81825e28
      This patch implements some of the optimizations discussed in
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026.
      
      Canonicalize x / (C1 * y) into (x * C2) / y.
      
      This moves constant multiplies out of the RHS of a division in order
      to allow further simplifications (such as (C1 * x) / (C2 * y) ->
      (C3 * x) / y) and to enable more reciprocal CSEs.
      
      2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
      	    Jackson Woodruff  <jackson.woodruff@arm.com>
      
          gcc/
      	PR tree-optimization/71026
      	* match.pd: Canonicalize constant multiplies in division.
      
          gcc/testsuite/
      	PR tree-optimization/71026
      	* gcc.dg/cse_recip.c: New test.
      
      Co-Authored-By: Jackson Woodruff <jackson.woodruff@arm.com>
      
      From-SVN: r254816
      Wilco Dijkstra committed
    • Set default to -fomit-frame-pointer · efeee67f
      Almost all targets add an explict -fomit-frame-pointer in the target specific
      options.  Rather than doing this in a target-specific way, do this in the
      generic options so it works identically across all targets.  In many cases the
      target no longer needs to define TARGET_OPTION_OPTIMIZATION_TABLE, reducing
      the amount of target code.
      
          gcc/
      	* opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
      	* common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
       	Remove OPT_fomit_frame_pointer entry.
      	* common/config/arc/arc-common.c: Likewise.
      	* common/config/arm/arm-common.c: Likewise.
      	* common/config/avr/avr-common.c: Likewise.
      	* common/config/c6x/c6x-common.c: Likewise.
      	* common/config/cr16/cr16-common.c: Likewise.
      	* common/config/cris/cris-common.c: Likewise.
      	* common/config/epiphany/epiphany-common.c: Likewise.
      	* common/config/fr30/fr30-common.c: Likewise.
      	* common/config/frv/frv-common.c: Likewise.
      	* common/config/ia64/ia64-common.c: Likewise.
      	* common/config/iq2000/iq2000-common.c: Likewise.
      	* common/config/lm32/lm32-common.c: Likewise.
      	* common/config/m32r/m32r-common.c: Likewise.
      	* common/config/mcore/mcore-common.c: Likewise.
      	* common/config/microblaze/microblaze-common.c: Likewise.
      	* common/config/mips/mips-common.c: Likewise.
      	* common/config/mmix/mmix-common.c: Likewise.
      	* common/config/mn10300/mn10300-common.c: Likewise.
      	* common/config/nios2/nios2-common.c: Likewise.
      	* common/config/pa/pa-common.c: Likewise.
      	* common/config/pdp11/pdp11-common.c: Likewise.
      	* common/config/powerpcspe/powerpcspe-common.c: Likewise.
      	* common/config/riscv/riscv-common.c: Likewise.
      	* common/config/rs6000/rs6000-common.c: Likewise.
      	* common/config/rx/rx-common.c: Likewise.
      	* common/config/s390/s390-common.c: Likewise.
      	* common/config/sh/sh-common.c: Likewise.
      	* common/config/sparc/sparc-common.c: Likewise.
      	* common/config/tilegx/tilegx-common.c: Likewise.
      	* common/config/tilepro/tilepro-common.c: Likewise.
      	* common/config/v850/v850-common.c: Likewise.
      	* common/config/visium/visium-common.c: Likewise.
      	* common/config/xstormy16/xstormy16-common.c: Likewise.
      	* common/config/xtensa/xtensa-common.c: Likewise.
      
          doc/
      	* invoke.texi (-fomit-frame-pointer): Update documentation.
      
      From-SVN: r254815
      Wilco Dijkstra committed
    • [AArch64] Fix frame tests · 9e780144
      Improve the AArch64 frame tests - add -f(no-)omit-frame-pointer,
      update checks and add missing tests.  As a result all tests now
      pass. 
      
          gcc/testsuite/
      	* gcc.target/aarch64/lr_free_2.c: Fix test.
      	* gcc.target/aarch64/spill_1.c: Likewise.
      	* gcc.target/aarch64/test_frame_11.c: Likewise.
      	* gcc.target/aarch64/test_frame_12.c: Likewise.
      	* gcc.target/aarch64/test_frame_13.c: Likewise.
      	* gcc.target/aarch64/test_frame_14.c: Likewise.
      	* gcc.target/aarch64/test_frame_15.c: Likewise.
      	* gcc.target/aarch64/test_frame_3.c: Likewise.
      	* gcc.target/aarch64/test_frame_5.c: Likewise.
      	* gcc.target/aarch64/test_frame_9.c: Likewise.
      
      From-SVN: r254814
      Wilco Dijkstra committed
    • * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq. · 8e43e9cd
      From-SVN: r254813
      Jan Hubicka committed
    • cfg.c (scale_bbs_frequencies_int, [...]): Remove. · 62003be5
      
      	* cfg.c (scale_bbs_frequencies_int,
      	cale_bbs_frequencies_gcov_type): Remove.
      	* cfg.h (scale_bbs_frequencies_int,
      	cale_bbs_frequencies_gcov_type): Remove.
      
      From-SVN: r254812
      Jan Hubicka committed
    • * tree-ssa-loop-manip.c · 2a006669
      	(scale_dominated_blocks_in_loop): Update to profile counts.
      	(tree_transform_and_unroll_loop): Likewise.
      
      From-SVN: r254811
      Jan Hubicka committed
    • tree-vect-loop-manip.c (vect_do_peeling): Do not use scale_bbs_frequencies_int. · 00fa28d1
      
      	* tree-vect-loop-manip.c (vect_do_peeling): Do not use
      	scale_bbs_frequencies_int.
      
      From-SVN: r254810
      Jan Hubicka committed
    • re PR c++/70383 (Bogus error when attempting to capture a reference to function by copy) · debc8f4a
      2017-11-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70383
      	* g++.dg/cpp0x/lambda/lambda-70383.C: New.
      
      From-SVN: r254808
      Paolo Carlini committed
    • cfgloopanal.c: Include sreal.h · 692dc070
      	* cfgloopanal.c: Include sreal.h
      	(average_num_loop_insns): Use counts and sreal for accounting.
      
      From-SVN: r254807
      Jan Hubicka committed
    • cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile manipulation. · e7b655e8
      	* cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
      	manipulation.
      
      From-SVN: r254806
      Jan Hubicka committed
    • [multiple changes] · 1554ed7e
      2017-11-16  Yannick Moy  <moy@adacore.com>
      
      	* sem_elab.adb (Include): Fix mode of parameter Curr to out.
      
      2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where
      	Context_Id denotes a record type.
      
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in
      	instantiations.
      
      2017-11-16  Doug Rupp  <rupp@adacore.com>
      
      	Initial gnat port to aarch64-wrs-vxworks7
      	* libgnarl/s-vxwork__aarch64.ads,
      	libgnat/system-vxworks7-aarch64-rtp-smp.ads,
      	libgnat/system-vxworks7-aarch64.ads: New files
      	* sigtramp-vxworks-target.inc (aarch64): New section.
      	* tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A.
      
      From-SVN: r254805
      Pierre-Marie de Rodat committed
    • [multiple changes] · 19c6e49c
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Include): Including a node which is also a compilation
      	unit terminates the search because there are no more lists to examine.
      
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming
      	declaration does not define a primitive operation of a tagged type for
      	SPARK.
      	(Check_SPARK_Primitive_Operation): New routine.
      
      2017-11-16  Arnaud Charlet  <charlet@adacore.com>
      
      	* libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in
      	message when using -E binder switch.
      
      2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
      
      	* errout.ads: Fix minor typo in comment.
      
      From-SVN: r254804
      Pierre-Marie de Rodat committed
    • [multiple changes] · 6361db43
      2017-11-16  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Process_Subtype): If the subtype indication does not
      	syntactically denote a type, return Any_Type to prevent subsequent
      	compiler crashes or infinite loops.
      
      2017-11-16  Steve Baird  <baird@adacore.com>
      
      	* lib-writ.adb: Fix bug which causes Program_Error to be raised in some
      	cases when writing out a .ali file when a Rename_Pragma pragma is in
      	effect.
      	* lib-writ.adb (Write_Unit_Information): Replace call to
      	Pragma_Name_Unmapped with call to Pragma_Name.
      
      2017-11-16  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_elab.adb: Minor typo fixes.
      
      2017-11-16  Justin Squirek  <squirek@adacore.com>
      
      	* sem_res.adb (Resolve_Allocator): Correct warning messages and make
      	them more explicit.
      
      From-SVN: r254803
      Pierre-Marie de Rodat committed
    • [multiple changes] · 8dce7371
      2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* atree.ads (Nkind_In): Add 10 and 11 parameter versions.
      	* checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of
      	the elaboration flag as elaboration code.
      	* einfo.adb (Contract): Update the comments.
      	(Ignore_SPARK_Mode_Pragmas): Update the comments.
      	(SPARK_Aux_Pragma): Update the comments.
      	(SPARK_Aux_Pragma_Inherited): Update the comments.
      	(SPARK_Pragma): Update the comments. The attribute now applies
      	to all types and abstract states.
      	(SPARK_Pragma_Inherited): Update the comments. The attribute now
      	applies to all types and abstract states.
      	(Set_Contract): Update the comments.
      	(Set_Ignore_SPARK_Mode_Pragmas): Update the comments.
      	(Set_SPARK_Aux_Pragma): Update the comments.
      	(Set_SPARK_Aux_Pragma_Inherited): Update the comments.
      	(Set_SPARK_Pragma): Update the comments. The attribute now applies to
      	all types and abstract states.
      	(Set_SPARK_Pragma_Inherited): Update the comments. The attribute now
      	applies to all types and abstract states.
      	(Write_Field40_Name): Add output for SPARK_Pragma when it appears on a
      	type and abstract states.
      	* einfo.ads: Update the documentation of attributes SPARK_Pragma and
      	SPARK_Pragma_Inherited.  Both of them now apply to all types and
      	abstract states.
      	* exp_util.adb (Set_Elaboration_Flag): Mark the setting of the
      	elaboration flag as elaboration code.
      	* sem_ch3.adb: Add with and use clauses for Sem_Elab.
      	(Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record
      	a derived type for later processing by the ABE mechanism.
      	(Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type.
      	(Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the
      	type.
      	* sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of
      	the type.
      	* sem_elab.adb: Define the term "early call region".  Update the
      	terminology for "scenario" and "target".  Update the architecture of
      	the ABE mechanism.  Update the steps which must be taken when adding a
      	new scenario.  Update the section on debugging ABE issues.  Add new
      	hash tables Early_Call_Regions and Recorded_SPARK_Scenarios.  Add new
      	table SPARK_Scenarios.  Hash table Elaboration_Context is now
      	Elaboration_Statuses.  The majority of Process_xxx routines have been
      	updated to better reflect their role.
      	(Add_Unit): Reimplemented.
      	(Check_Elaboration_Constituent): New routine.
      	(Check_Elaboration_Scenarios): Verify previously recorded scenarios for
      	conditional ABE issues. Verify previously recorded SPARK scenarios.
      	(Check_SPARK_Derived_Type): New routine.
      	(Check_SPARK_Instantiation): New routine.
      	(Check_SPARK_Scenario): New routine.
      	(Check_SPARK_Refined_State_Pragma): New routine.
      	(Early_Call_Region): New routine.
      	(Elaboration_Status): New routine.
      	(Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The
      	implicit Elabotate[_All] pragma is now specified via Prag_Nam.
      	(Find_Early_Call_Region): New routine.
      	(Info_Scenario): Add output for refinement constituents.
      	(Is_Recorded_SPARK_Scenario): New routine.
      	(Is_Suitable_SPARK_Derived_Type): New routine.
      	(Is_Suitable_SPARK_Instantiation): New routine.
      	(Is_Suitable_SPARK_Refined_State_Pragma): New routine.
      	(Is_Visited_Body): New routine.
      	(Kill_Elaboration_Scenario): Reimplemented.
      	(Output_Active_Scenarios): Add output for pragma Refined_State.
      	(Output_SPARK_Refined_State_Pragma): New routine.
      	(Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect
      	is now achieved by different means.
      	(Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes
      	the subprogram body appears within the early call region of the body.
      	Either ensure the prior elaboration of external subprograms or verify
      	that the context meets the suitable elaboration requirement.
      	(Process_Conditional_ABE_Instantiation_SPARK): New routine.
      	(Record_Elaboration_Scenario): Reimplement the portion which enforces
      	the level restrictions of the static model. Add support for SPARK
      	scenarios.
      	(Record_SPARK_Elaboration_Scenario): New routine.
      	(Reset_Visited_Bodies): New routine.
      	(Set_Early_Call_Region): New routine.
      	(Set_Elaboration_Status): New routine.
      	(Set_Is_Recorded_SPARK_Scenario): New routine.
      	(Update_Elaboration_Scenario): Reimplemented.
      	* sem_elab.ads: Add new subtype Library_Or_Instantiation_Level.
      	* sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma
      	for examination by the ABE Processing phase.
      	(Create_Abstract_State): Save the SPARK_Mode from the context.
      	* sem_util.adb (Is_Non_Preelaborable_Construct): New routine.
      	* sem_util.ads (Is_Non_Preelaborable_Construct): New routine.
      	* sinfo.adb (Is_Elaboration_Code): New routine.
      	(Set_Is_Elaboration_Code): New routine.
      	(Nkind_In): Add 10 and 11 parameter versions.
      	* sinfo.ads: Add new attribute Is_Elaboration_Code along with
      	occurrences in nodes.
      	(Is_Elaboration_Code): New routine along with pragma Inline.
      	(Set_Is_Elaboration_Code): New routine along with pragma Inline.
      	(Nkind_In): Add 10 and 11 parameter versions.
      
      2017-11-16  Justin Squirek  <squirek@adacore.com>
      
      	* sem.adb (Analyze): Remove requirement that the original node of N be
      	an operator in the case that analysis on the node yields the relevant
      	operator - so prefer it instead.
      
      From-SVN: r254802
      Pierre-Marie de Rodat committed
    • sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access formal… · d00301ec
      sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access formal must not have a designated type that...
      
      2017-11-16  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access
      	formal must not have a designated type that is the full view coming
      	from a limited-with'ed package.
      	* sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New
      	function called from sem_ch6.
      	* sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation
      	specially for b-i-p cases.
      
      From-SVN: r254801
      Bob Duff committed
    • Provide more constraints for future use. · 36f28760
      gcc/
      	* config/nds32/constraints.md: Provide more constraints.
      	* config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
      	REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
      	support constraints usage.
      
      Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
      
      From-SVN: r254800
      Chung-Ju Wu committed
    • Remove the useless constant UNSPEC_VOLATILE_FUNC_RETURN. · f968dc67
      gcc/
      	* config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
      
      From-SVN: r254799
      Chung-Ju Wu committed
    • Add new options: -mext-perf, -mext-perf2, -mext-string. · aa4b851c
      gcc/
      	* config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
      	* config/nds32/nds32.opt: Refine the layout.
      	* config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
      	TARGET_EXT_STRING): Support new options.
      	* config/nds32/nds32.h: Likewise.
      	* config/nds32/nds32.md: Likewise.
      	* config/nds32/nds32-predicates.c: Likewise.
      	* config/nds32/constraints.md: Likewise.
      	* common/config/nds32/nds32-common.c: Likewise.
      
      Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
      
      From-SVN: r254798
      Chung-Ju Wu committed
    • Fix GFNI check which didn't work properly in gfni+sse case · bde4b3dd
      gcc/
      	PR target/82983
      	* config/i386/gfniintrin.h: Add sse check.
      	* config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
      
      From-SVN: r254797
      Julia Koval committed
    • Enable VBMI2 support [1/7] · fca51879
      gcc/
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
      	OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
      	(ix86_handle_option): Handle -mavx512vbmi2.
      	* config/i386/cpuid.h: Add bit_AVX512VBMI2.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
      	* config/i386/i386-c.c (__AVX512VBMI2__): New.
      	* config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
      	(ix86_valid_target_attribute_inner_p): Ditto.
      	* config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
      	* config/i386/i386.opt (mavx512vbmi2): New option.
      	* doc/invoke.texi: Add new option.
      
      From-SVN: r254796
      Julia Koval committed
    • GFNI enabling [4/4] · e0c31a15
      gcc/
      	* config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
      	_mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
      	_mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
      	_mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
      	_mm512_gf2p8mul_epi8): New intrinsics.
      	* config/i386/i386-builtin-types.def
      	(V64QI_FTYPE_V64QI_V64QI): New type.
      	* config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
      	__builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
      	__builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
      	__builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
      	* config/i386/sse.md (vgf2p8mulb_*): New pattern.
      	* config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
      gcc/testsuite/
      	* gcc.target/i386/avx512f-gf2p8mulb-2.c: New runtime tests.
      	* gcc.target/i386/avx512vl-gf2p8mulb-2.c: Ditto.
      	* gcc.target/i386/gfni-1.c: Add tests for GF2P8MUL.
      	* gcc.target/i386/gfni-2.c: Ditto.
      	* gcc.target/i386/gfni-3.c: Ditto.
      	* gcc.target/i386/gfni-4.c: Ditto.
      
      From-SVN: r254795
      Julia Koval committed
    • * include/std/numeric (gcd): Fix typo. · 00a2022a
      From-SVN: r254794
      Jason Merrill committed
    • Daily bump. · d9e8770d
      From-SVN: r254793
      GCC Administrator committed
  2. 15 Nov, 2017 12 commits
    • i386.c (x86_print_call_or_nop): Emit 5 byte nop explicitly as a stream of bytes. · c078d746
      	* config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
      	explicitly as a stream of bytes.
      
      From-SVN: r254788
      Uros Bizjak committed
    • altivec.h (vec_xst_be): New #define. · 3ef9e1ec
      [gcc]
      
      2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.h (vec_xst_be): New #define.
      	* config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
      	and externalize from *altivec_vperm_<mode>_internal.
      	* config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
      	instantiation.
      	(XL_BE_V8HI): Likewise.
      	(XL_BE_V4SI): Likewise.
      	(XL_BE_V4SI): Likewise.
      	(XL_BE_V2DI): Likewise.
      	(XL_BE_V4SF): Likewise.
      	(XL_BE_V2DF): Likewise.
      	(XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
      	all array entries with these keys: VSX_BUILTIN_VEC_XL,
      	VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
      	VSX_BUILTIN_VEC_XST_BE.
      	* config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
      	(altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
      	built-ins.
      	(altivec_init_builtins): Replace conditional calls to def_builtin
      	for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
      	__builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
      	with unconditional calls.  Remove calls to def_builtin for
      	__builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
      	__builtin_vec_xst_be.
      	* config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
      	to define_expand, and add alternate RTL generation for P8.
      	(*vsx_ld_elemrev_v8hi_internal): New define_insn based on
      	vsx_ld_elemrev_v8hi.
      	(vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
      	add alternate RTL generation for P8.
      	(*vsx_ld_elemrev_v16qi_internal): New define_insn based on
      	vsx_ld_elemrev_v16qi.
      	(vsx_st_elemrev_v8hi): Convert define_insn
      	to define_expand, and add alternate RTL generation for P8.
      	(*vsx_st_elemrev_v8hi_internal): New define_insn based on
      	vsx_st_elemrev_v8hi.
      	(vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
      	add alternate RTL generation for P8.
      	(*vsx_st_elemrev_v16qi_internal): New define_insn based on
      	vsx_st_elemrev_v16qi.
      
      [gcc/testsuite]
      
      2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/swaps-p8-26.c: Modify expected code
      	generation.
      
      From-SVN: r254787
      Bill Schmidt committed
    • PR testsuite/82988 - g++.dg/cpp0x/lambda/lambda-switch.C fail · cb8e7982
      gcc/testsuite/ChangeLog:
      
      	PR testsuite/82988
      	* g++.dg/cpp0x/lambda/lambda-switch.C: Prune unimportant warning.
      
      From-SVN: r254786
      Martin Sebor committed
    • Fix gcd breakage. · 865a86a0
      * include/std/numeric (gcd): Use remove_cv_t, not remove_cv.
      
      From-SVN: r254785
      Ville Voutilainen committed
    • Move gcc/testsuite entries to gcc/testsuite/ChangeLog · 3b26ae82
      From-SVN: r254784
      H.J. Lu committed
    • i386: Add X86_TUNE_EMIT_VZEROUPPER · 348188bf
      Add X86_TUNE_EMIT_VZEROUPPER to indicate if vzeroupper instruction should
      be inserted before a transfer of control flow out of the function.  It is
      turned on by default unless we are tuning for KNL.  Users can always use
      -mzeroupper or -mno-zeroupper to override X86_TUNE_EMIT_VZEROUPPER.
      
      gcc/
      
      	PR target/82990
      	* config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
      	TARGET_AVX512ER check.
      	(ix86_option_override_internal): Set MASK_VZEROUPPER if
      	neither -mzeroupper nor -mno-zeroupper is used and
      	TARGET_EMIT_VZEROUPPER is set.
      	* config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
      	* config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
      
      gcc/testsuite/
      
      	PR target/82990
      	* gcc.target/i386/pr82942-2.c: Add -mtune=knl.
      	* gcc.target/i386/pr82990-1.c: New test.
      	* gcc.target/i386/pr82990-2.c: Likewise.
      	* gcc.target/i386/pr82990-3.c: Likewise.
      	* gcc.target/i386/pr82990-4.c: Likewise.
      	* gcc.target/i386/pr82990-5.c: Likewise.
      	* gcc.target/i386/pr82990-6.c: Likewise.
      	* gcc.target/i386/pr82990-7.c: Likewise.
      
      From-SVN: r254783
      H.J. Lu committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add support for folding of vector compares. · 41e18197
      
      2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      [gcc]
      
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
      	folding of vector compares.
      	(fold_build_vec_cmp): New helper function.
      	(fold_compare_helper): New helper function.
      	(builtin_function_type): Add compare builtins to the list of functions
      	having unsigned arguments.  Cosmetic updates to comment indentation.
      	* config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
      	the not+eq combination.
      
      [testsuite]
      
      	* gcc.target/powerpc/builtins-3-p9.c: Add -O1, update
      	expected codegen checks.
      	* gcc.target/powerpc/vec-cmp-sel.c: Mark vars as volatile.
      	* gcc.target/powerpc/vsu/vec-cmpne-0.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-1.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-2.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-3.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-4.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-5.c: Add -O1.
      	* gcc.target/powerpc/vsu/vec-cmpne-6.c: Add -O1.
      
      From-SVN: r254782
      Will Schmidt committed
    • Minor improvements to Filesystem tests · 4e6c4298
      	* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Leave
      	error_code unset.
      	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
      	Check for past-the-end before dereferencing.
      	* testsuite/experimental/filesystem/iterators/
      	recursive_directory_iterator.cc: Likewise.
      
      From-SVN: r254781
      Jonathan Wakely committed
    • re PR fortran/78240 (ICE in match_clist_expr, at fortran/decl.c:728) · 54b6c06b
      2017-11-15  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/78240
      	gfortran.dg/pr78240.f90: Prune run-on errors.
      
      From-SVN: r254780
      Steven G. Kargl committed
    • Add noexcept to generic std::size, std::empty and std::data · 19491228
      	* include/bits/range_access.h (size, empty, data): Add conditional
      	noexcept to generic overloads.
      
      From-SVN: r254779
      Jonathan Wakely committed
    • re PR tree-optimization/82726 (ICE in verify_ssa during GIMPLE pass: pcom) · bd9cc42b
      	PR tree-optimization/82726
      	PR tree-optimization/70754
      	* tree-predcom.c (order_drefs_by_pos): New function.
      	(combine_chains): Move code setting has_max_use_after to...
      	(try_combine_chains): ...here.  New parameter.  Sort combined chains
      	according to position information.
      	(tree_predictive_commoning_loop): Update call to above function.
      	(update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr82726.c: New test.
      
      From-SVN: r254778
      Bin Cheng committed
    • re PR tree-optimization/82726 (ICE in verify_ssa during GIMPLE pass: pcom) · 1ad3d8aa
      	PR tree-optimization/82726
      	Revert
      	2017-01-23  Bin Cheng  <bin.cheng@arm.com>
      
      	PR tree-optimization/70754
      	* tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
      	(reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
      	combined stmt before it if not NULL.
      	(combine_chains): Process refs reversely and compute dominance point
      	for root ref.
      
      	Revert
      	2017-02-23  Bin Cheng  <bin.cheng@arm.com>
      
      	PR tree-optimization/79663
      	* tree-predcom.c (combine_chains): Process refs in reverse order
      	only for ZERO length chains, and add explaining comment.
      
      From-SVN: r254777
      Bin Cheng committed