1. 28 May, 2018 31 commits
    • [Ada] Minor fixes and tweaks to comments in the Repinfo unit · ab4dad49
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.ads: Minor fixes and tweaks in comments.
      
      From-SVN: r260844
      Eric Botcazou committed
    • [Ada] Remove Valop from the Repinfo unit · 575e47bf
      This removes the recently added Valop as redundant.  No functional changes.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to
      	it with calls to Unop.
      
      From-SVN: r260843
      Eric Botcazou committed
    • [Ada] Minor cleanup in repinfo unit · 72da915b
      This removes the Truth_Andif_Expr and Truth_Orif_Expr codes for expressions
      handled by the repinfo unit, since they are redundant with Truth_And_Expr
      and Truth_Or_Expr respectively in this context.  No functional changes.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.ads (TCode): Adjust range.
      	(Truth_Andif_Expr): Remove.
      	(Truth_Orif_Expr): Likewise.
      	(Truth_And_Expr .. Dynamic_Val): Adjust value.
      	* repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr.
      	(Rep_Value): Likewise.
      	* repinfo.h (Truth_Andif_Expr): Remove.
      	(Truth_Orif_Expr): Likewise.
      	(Truth_And_Expr .. Dynamic_Val): Adjust value.
      	* gcc-interface/decl.c (annotate_value) <TRUTH_ANDIF_EXPR>: Fall
      	through to TRUTH_AND_EXPR case.
      	<TRUTH_ORIF_EXPR>: Fall through to TRUTH_OR_EXPR case.
      
      From-SVN: r260842
      Eric Botcazou committed
    • [Ada] Unnesting: check index expressions for uplevel references · 184a6ba6
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Visit_Node): For indexed components and attribute
      	references, examine index expressions or associated expressions as well
      	to record uplevel references.
      	(Vist_Node): For function and procedure calls, if a formal is an
      	unconstrained array and the actual is constrained, check whether bounds
      	of actual have uplevel references.
      
      From-SVN: r260841
      Ed Schonberg committed
    • [Ada] Unnesting: allow uplevel references to exceptions · 6af9261c
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
      	they can appear as components of activation records.
      	* exp_unst.adb (Visit_Node): A reference to an exception may be an
      	uplevel reference.
      
      From-SVN: r260840
      Ed Schonberg committed
    • [Ada] Fix internal error on renaming of equality for record type · bcad5029
      This adjusts the previous change to the cases where the array type is not
      yet frozen and, therefore, where Size_Depends_On_Discriminant is not yet
      computed, by doing the computation manually.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_Composite_Equality): Compute whether the size
      	depends on a discriminant manually instead of using the predicate
      	Size_Depends_On_Discriminant in the array type case.
      
      gcc/testsuite/
      
      	* gnat.dg/renaming12.adb, gnat.dg/renaming12.ads: New testcase.
      
      From-SVN: r260839
      Eric Botcazou committed
    • [Ada] Improve unnesting for discriminants of record subtypes · 4fd9587f
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Check_Static_Type): For a record subtype, check
      	discriminant constraints as well.
      	(Visit_Node): For a selected component, check type of prefix, as is
      	done for indexed components and slices.
      
      From-SVN: r260838
      Ed Schonberg committed
    • [Ada] Fix regression of ACATS c46032a with CCG back end · 04920bb6
      2018-05-28  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer
      	value when converting a float value to a fixed-point value. This is
      	required for CCG because it handles fixed-point types by means of
      	unsigned integer type variables. The range check is now performed using
      	the integer value stored in this temporary.
      
      From-SVN: r260837
      Javier Miranda committed
    • [Ada] Update FE check following change in SPARK RM 7.1.3(12) · cb1a0672
      SPARK Reference Manual changed to accept attributes First, Last and Length
      as not leading to an evaluation of a part of the prefix object. This is
      reflected here in the checking code for that rule.
      
      2018-05-28  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and
      	Length as valid non-interfering contexts for SPARK.
      
      From-SVN: r260836
      Yannick Moy committed
    • [Ada] Allow for GNATprove specific versions of routines from Sem_Disp · cc821e65
      2018-05-28  Claire Dross  <dross@adacore.com>
      
      gcc/ada/
      
      	* sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for
      	generic inheritance utilities.
      	(Generic_Inherited_Subprograms): Generic version of
      	Inherited_Subprograms, generic in Find_Dispatching_Type function.
      	(Generic_Is_Overriding_Subprogram): Generic version of
      	Is_Overriding_Subprogram, generic in Find_Dispatching_Type function.
      	(Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with
      	Sem_Disp.Find_Dispatching_Type.
      	(Is_Overriding_Subprogram): Instance of
      	Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type.
      	(Inheritance_Utilities_Inst): Instance of Inheritance_Utilities
      	with Sem_Disp.Find_Dispatching_Type.
      
      From-SVN: r260835
      Claire Dross committed
    • [Ada] Fix internal error on nested record types with representation clause · 0c386027
      This fixes a long-standing issue with the expansion of equality functions
      generated for discriminated record types with variant part.  In this case
      the front-end recursively expands equality functions for the composite
      sub-components, in particular the array sub-components.
      
      But it systematically uses the unconstrained base type for them, which leads
      to both a more complex equality function, because of the need to compare
      the bounds, and an additional unchecked conversion from type to base type.
      
      Now this unchecked conversion may block a further expansion of the array
      sub-component, for example if it is a large array of record types subject
      to a component clause that causes it not to start on a byte boundary, and
      thus may lead to an internal error downstream in the back-end.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP)
      	component type, do not expand array equality using the unconstrained
      	base type, except for the case where the bounds of the type depend on a
      	discriminant.
      
      gcc/testsuite/
      
      	* gnat.dg/rep_clause6.adb, gnat.dg/rep_clause6.ads: New testcase.
      
      From-SVN: r260834
      Eric Botcazou committed
    • [Ada] Introduce a new Needs_Activation_Record entity flag · c84205cd
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* einfo.ads, einfo.adb (Needs_Activation_Record): New flag on
      	access-to-subprogram types, to indicate that an indirect call through
      	such a type requires an activation record when compiling for LLVM.
      	* sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed.
      
      From-SVN: r260833
      Ed Schonberg committed
    • [Ada] Better accuracy in float-to-fixed conversions · a98217be
      This patch improves the accuracy of conversions from a floating point to
      a fixed point type when the fixed point type has a specified Snall that is
      not a power of two. Previously the conversion of Fixed_Point_Type'First to
      some floating point number and back to Fixed_Point_Type raised Constraint
      error. This result is within the accuracy imposed by tne Numerics annex of
      the RM but is certainly undesirable. This patch transforms the conversion
      to avoid extra manipulations of the 'Small of the type, so that the
      identity:
      
            Fixed_T (Float_T (Fixed_Val)) = Fixed_Val
      
      holds over the range of Fixed_T.
      
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions
      	when bounds of fixed type are static, to remove some spuerfluous
      	implicit conversions and provide an accurate result when converting
      	back and forth between the fixed point type and a floating point type.
      
      gcc/testsuite/
      
      	* gnat.dg/fixedpnt5.adb: New testcase.
      
      From-SVN: r260832
      Ed Schonberg committed
    • [Ada] Don't create empty activation records · f4bf7b62
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprogram): Prevent creation of empty
      	activation records.
      
      From-SVN: r260831
      Ed Schonberg committed
    • [Ada] Improve unnesting of indexed references · 577ad216
      2018-05-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      
      gcc/ada/
      
      	* exp_unst.adb (Check_Static_Type): Add argument to indicate node to be
      	replaced, if any; all callers changed.
      	(Note_Uplevel_Ref): Likewise.  Also replace reference to deferred
      	constant with private view so we take the address of that entity.
      	(Note_Uplevel_Bound): Add argument to indicate node to be replaced, if
      	any; all callers changed.  Handle N_Indexed_Component like
      	N_Attribute_Reference.  Add N_Type_Conversion case.
      	(Visit_Node): Indexed references can be uplevel if the type isn't
      	static.
      	(Unnest_Subprograms): Don't rewrite if no reference given.  If call has
      	been relocated, set first_named pointer in original node as well.
      
      From-SVN: r260830
      Richard Kenner committed
    • [Ada] Copy index expression trees rather than relocating them · 1541ede1
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb (Flatten): Copy tree of expression in a component
      	association with a range or a set of discrete choices, rather than
      	relocating the node. This avoids inconsistencies in the tree when
      	handling nested subprograms with uplevel references for LLVM.
      
      From-SVN: r260829
      Ed Schonberg committed
    • [Ada] Disregard alignment issues in CodePeer mode · f167c735
      2018-05-28  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_util.adb (Possible_Bit_Aligned_Component): Always return False in
      	codepeer mode.
      
      From-SVN: r260828
      Arnaud Charlet committed
    • [Ada] Minor typo fix in exp_unst.adb · 7ddbf09d
      2018-05-28  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb: Fix typo.
      
      From-SVN: r260827
      Arnaud Charlet committed
    • [Ada] Minor cleanup implementation of Ada.Containers.Vectors · 0ef5a027
      2018-05-28  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an
      	unnecessary use of 'Unrestricted_Access.
      
      From-SVN: r260826
      Bob Duff committed
    • [Ada] Crash on aspect/pragma Linked_Section with -gnatR2 · 24161618
      This patch modifies the output of the representation information related to
      aspect or pragma Linker_Section, achieved with compiler switch -gnatR2. The
      value of the section argument is now properly retrieved. Previously it was
      assumed that the value is always a N_String_Literal, however the semantics
      of the annotation allow for any static string expression, including a
      reference to a static string.
      
      ------------
      -- Source --
      ------------
      
      --  linker_sections.ads
      
      package Linker_Sections is
         LS_1 : constant String := "1";
         LS_2 : constant String := "2" & "2";
         LS_3 : constant String := LS_1 & "3";
         LS_4 : constant String := "4" & LS_2;
      
         Val_1  : Integer with Linker_Section => LS_1;
         Val_2  : Integer with Linker_Section => LS_2;
         Val_3  : Integer with Linker_Section => LS_3;
         Val_4  : Integer with Linker_Section => LS_4;
         Val_5  : Integer with Linker_Section => LS_1 & "5";
         Val_6  : Integer with Linker_Section => LS_2 & "6";
         Val_7  : Integer with Linker_Section => LS_3 & "7";
         Val_8  : Integer with Linker_Section => LS_4 & "8";
         Val_9  : Integer with Linker_Section => "9"  & LS_1;
         Val_10 : Integer with Linker_Section => "10" & LS_2;
         Val_11 : Integer with Linker_Section => "11" & LS_3;
         Val_12 : Integer with Linker_Section => "12" & LS_4;
      
         Val_13 : Integer; pragma Linker_Section (Val_13, LS_1);
         Val_14 : Integer; pragma Linker_Section (Val_14, LS_2);
         Val_15 : Integer; pragma Linker_Section (Val_15, LS_3);
         Val_16 : Integer; pragma Linker_Section (Val_16, LS_4);
         Val_17 : Integer; pragma Linker_Section (Val_17, LS_1 & "5");
         Val_18 : Integer; pragma Linker_Section (Val_18, LS_2 & "6");
         Val_19 : Integer; pragma Linker_Section (Val_19, LS_3 & "7");
         Val_20 : Integer; pragma Linker_Section (Val_20, LS_4 & "8");
         Val_21 : Integer; pragma Linker_Section (Val_21, "9"  & LS_1);
         Val_22 : Integer; pragma Linker_Section (Val_22, "10" & LS_2);
         Val_23 : Integer; pragma Linker_Section (Val_23, "11" & LS_3);
         Val_24 : Integer; pragma Linker_Section (Val_24, "12" & LS_4);
      end Linker_Sections;
      
      -----------------
      -- Compilation --
      -----------------
      
      $ gcc -c -gnatR2s linker_sections.ads
      
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (Expr_Value_S): New routine.
      	(List_Linker_Section): Properly extract the value of the section
      	argument.
      
      From-SVN: r260825
      Hristian Kirtchev committed
    • [Ada] Update user manual for the -D binder switch · f5a9ad25
      2018-05-28  Patrick Bernardi  <bernardi@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the
      	description of the -D binder switch to reflect current usage.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r260824
      Patrick Bernardi committed
    • [Ada] Minor reformatting · 6a890c58
      2018-05-28  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_ch3.adb: Minor reformatting
      
      From-SVN: r260823
      Gary Dismukes committed
    • [Ada] Spurious constraint error on array of null-excluding components · 341e0bb6
      This patch fixes an issue whereby the compiler would raise spurious runtime
      errors when an array of null-excluding components was initialized with an
      expression which required the secondary stack (such as with an concatination
      operation) due to certain generated checks which were incorrected performed
      on internal object declarations.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* exp_ch3.adb
      	(Build_Initialization_Call): Add logic to pass the appropriate actual to match
      	 new formal.
      	(Init_Formals): Add new formal *_skip_null_excluding_check
      	* exp_util.adb, exp_util.ads
      	(Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
      	 scope.
      	(Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
      	(Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
      	 used to determine how to generate an Init_Proc for a given type.
      	(Needs_Constant_Address): Minor reformatting
      	* sem_res.adb
      	(Resolve_Null): Add logic to generate a conditional check in certain cases
      
      gcc/testsuite/
      
      	* gnat.dg/array31.adb: New testcase.
      
      From-SVN: r260822
      Justin Squirek committed
    • [Ada] Minor reformatting · 9b19c244
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
      	Minor reformatting.
      
      From-SVN: r260821
      Hristian Kirtchev committed
    • [Ada] Spurious error on aspect Volatile · aab1da2a
      This patch modifies the analysis of aspect/pragma Volatile to correct accept
      the annotation when it applies to single protected and single task types, and
      SPARK_Mode On is in effect.
      
      ------------
      -- Source --
      ------------
      
      --  pack.ads
      
      package Pack with SPARK_Mode is
         protected PO_Aspect with Volatile is end;                         --  OK
      
         protected PO_Pragma is end;
         pragma Volatile (PO_Pragma);                                      --  OK
      
         task TO_Aspect with Volatile;                                     --  OK
      
         task TO_Pragma;
         pragma Volatile (TO_Pragma);                                      --  OK
      end Pack;
      
      ----------------------------
      -- Compilation and output --
      ----------------------------
      
      $ gcc -c pack.ads
      $ gcc -c pack.ads -gnatd.F
      cannot generate code for file pack.ads (package spec)
      
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
      	the declarations of single concurrent types because they fall in the
      	category of full type and object declarations.
      
      From-SVN: r260820
      Hristian Kirtchev committed
    • [Ada] Minor tweak to output of -gnatR · c8e95568
      This changes the output of -gnatR for extensions of tagged record types to
      avoid displaying the internal _Parent component, which overlaps with other
      components and is thus more confusing than helpful.
      
      For the following hierarchy:
      
        type R1 is tagged record
          I : Integer;
        end record;
      
        type R2 is new R1 with record
          C : Character;
        end record;
      
      the output -gnatR must now be:
      
      for R1'Object_Size use 128;
      for R1'Value_Size use 96;
      for R1'Alignment use 8;
      for R1 use record
         _Tag at 0 range  0 .. 63;
         I    at 8 range  0 .. 31;
      end record;
      
      for R2'Object_Size use 192;
      for R2'Value_Size use 136;
      for R2'Alignment use 8;
      for R2 use record
         _Tag at  0 range  0 .. 63;
         I    at  8 range  0 .. 31;
         C    at 16 range  0 ..  7;
      end record;
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (Compute_Max_Length): Skip _Parent component.
      	(List_Record_Layout): Likewise.
      
      From-SVN: r260819
      Eric Botcazou committed
    • [Ada] Warning on recursive call within postcondition · 500b21dd
      This patch adds a warning to a function call that appears within a
      postcondition for said function. This may mean an omission of an attribute
      reference 'Result, and may lead to an infinite loop on a call to that function.
      
      Compiling post_error.ads must yield:
      
      post_error.ads:3:11:
              warning: postcondition does not mention function result
      post_error.ads:3:19:
             warning: call to "Foo" within its postcondition will lead
               to infinite recursion
      ----
      package Post_Error is
         function Foo (A : out Integer) return Integer
           with Post => Foo (A)  /= 0;
         pragma Import (C, Foo);
      end Post_Error;
      
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Is_Function_Result): Add a warning if a postcondition
      	includes a call to function to which it applies. This may mean an
      	omission of an attribute reference 'Result, in particular if the
      	function is pqrameterless.
      
      From-SVN: r260818
      Ed Schonberg committed
    • [Ada] Misleading warning on unresolvable package name · aa76fac7
      This patch fixes an issue whereby the compiler misidentified a package name
      containing the name of a standard runtime package as said package - leading to
      and improper error message prompting the user to "With" a package already in
      scope.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
      	misresolved package name is not a case of mistaken identity.
      
      gcc/testsuite/
      
      	* gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads,
      	gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase.
      
      From-SVN: r260817
      Justin Squirek committed
    • [Ada] Further evaluation of type bounds in GNATprove mode · e740ff85
      Some static bounds of types are not recognized and evaluated as such in the
      semantic analysis phase of the frontend, which leads to incomplete information
      in GNATprove. Fix that in the GNATprove mode only, as this is not needed when
      full expansion is used.
      
      There is no impact on compilation.
      
      2018-05-28  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
      	GNATprove mode, as the order of resolution (low then high) means that
      	all the information is not available when resolving the low bound the
      	first time.
      
      From-SVN: r260816
      Yannick Moy committed
    • [Ada] Minor internal cleanup in repinfo unit · 7672ab42
      This steamlines a bit the implementation.  No functional changes.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Array_Info): Start with an explicit blank line and
      	end with the linker section, if any.
      	(List_Entities): Do not output the linker section for record types,
      	array types and variables.
      	(Print_Expr): Factor out common processing for unary operators and
      	special values.  Adjust and reorder the various cases.
      	(List_Object_Info): End with the linker section, if any.
      	(List_Record_Info): Likewise.
      	(List_Type_Info): Do not start with a blank line.
      
      From-SVN: r260815
      Eric Botcazou committed
    • Daily bump. · 121dec88
      From-SVN: r260814
      GCC Administrator committed
  2. 27 May, 2018 8 commits
    • pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. · d5ca27ef
      	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
      
      From-SVN: r260809
      John David Anglin committed
    • decl.c (match_data_constant): Fortran 2018 allows pointer initialization in a data statement. · b6e841a6
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * decl.c (match_data_constant):  Fortran 2018 allows pointer
       initialization in a data statement.
      
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * gfortran.dg/data_stmt_pointer.f90: new test.
      
      From-SVN: r260808
      Steven G. Kargl committed
    • Fix a number of ICE in the test suite. · f5435230
      	    * config/pdp11/pdp11.md (truncsihi2): Remove.
      
      From-SVN: r260807
      Paul Koning committed
    • stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. · 538a7cd0
      2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
      	(_Rb_tree(const allocator_type&)): Use latter.
      	* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
      	(map(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multimap.h
      	(multimap(const allocator_type&)): Likewise.
      	(multimap(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multimap(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      	* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
      	(set(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multiset.h
      	(multiset(const allocator_type&)): Likewise.
      	(multiset(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multiset(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      
      From-SVN: r260806
      François Dumont committed
    • [NDS32] Optimize movmem and setmem operations. · 8889fbe5
      gcc/
      	* config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns
      	implementation.
      	(unaligned_store_dw): Ditto.
      	* config/nds32/nds32-memory-manipulation.c
      	(nds32_expand_movmemsi_loop_known_size): Refactoring implementation.
      	(nds32_gen_dup_4_byte_to_word_value): Rename to ...
      	(nds32_gen_dup_4_byte_to_word_value_aux): ... this.
      	(emit_setmem_word_loop): Rename to ...
      	(emit_setmem_doubleword_loop): ... this.
      	(nds32_gen_dup_4_byte_to_word_value): New function.
      	(nds32_gen_dup_8_byte_to_double_word_value): New function.
      	(nds32_expand_setmem_loop): Refine implementation.
      	(nds32_expand_setmem_loop_v3m): Ditto.
      	* config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New
      	pattern.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r260805
      Monk Chiang committed
    • [NDS32] Implement bswapsi2 and bswaphi2 patterns. · 0be3bad7
      gcc/
      	* config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
      
      From-SVN: r260804
      Chung-Ju Wu committed
    • [NDS32] new attribute no_prologue and new option -mret-in-naked-func. · 54c537e6
      gcc/
      	* config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue".
      	(nds32_init_machine_status): Initialize machine->attr_naked_p and
      	machine->attr_no_prologue_p.
      	(nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes.
      	(nds32_naked_function_p): Handle "naked" and "no_prologue" attributes.
      	(nds32_expand_epilogue): Consider attr_naked_p.
      	(nds32_expand_epilogue_v3pop): Likewise.
      	(nds32_can_use_return_insn): Likewise.
      	* config/nds32/nds32.h (machine_function): Add attr_naked_p and
      	attr_no_prologue_p fields.
      	* config/nds32/nds32.opt (mret-in-naked-func): New option.
      
      From-SVN: r260803
      Chung-Ju Wu committed
    • Daily bump. · 4cdb54ea
      From-SVN: r260801
      GCC Administrator committed
  3. 26 May, 2018 1 commit
    • re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized… · 70d22cdd
      re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target)
      
      	PR target/85918
      	* config/i386/i386.md (fixunssuffix, floatunssuffix): New code
      	attributes.
      	* config/i386/sse.md
      	(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(*<floatsuffix>floatv2div2sf2): Rename to ...
      	(*float<floatunssuffix>v2div2sf2): ... this.
      	(<floatsuffix>floatv2div2sf2_mask): Rename to ...
      	(float<floatunssuffix>v2div2sf2_mask): ... this.
      	(*<floatsuffix>floatv2div2sf2_mask_1): Rename to ...
      	(*float<floatunssuffix>v2div2sf2_mask_1): ... this.
      	(<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename
      	to ...
      	(fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ...
      	(fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this.
      	(vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of
      	gen_ufix_truncv8dfv8si2.
      	* config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask,
      	__builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask,
      	__builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask,
      	__builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask,
      	__builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask,
      	__builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask,
      	__builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask):
      	Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names.
      
      	* gcc.target/i386/avx512dq-pr85918.c: New test.
      
      From-SVN: r260797
      Jakub Jelinek committed