1. 20 Apr, 2016 39 commits
    • tree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true. · dd39022b
      	* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
      	rather than true.
      
      From-SVN: r235272
      Marek Polacek committed
    • * gnat.dg/self1.adb: Remove now incorrect test. · d7aa24e4
      From-SVN: r235271
      Arnaud Charlet committed
    • sse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target. · ab04f5cd
      gcc/
      
      	* config/i386/sse.md (vec_unpacks_lo_hi): Always
      	use kmovw to support AVX512F target.
      
      From-SVN: r235270
      Ilya Enkovich committed
    • tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR. · e6d62b46
      	* tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
      
      	* gcc.dg/tree-ssa/scev-11.c: New test.
      	* gcc.dg/tree-ssa/scev-12.c: New test.
      
      From-SVN: r235269
      Bin Cheng committed
    • [multiple changes] · 6905a049
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* s-os_lib.ads: Minor comment fix.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate
      	a discriminant check for a type whose partial view has unknown
      	discriminants when the full view has discriminants with defaults.
      
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_util.adb (Remove_Side_Effects): When generating C code
      	remove side effect of type conversion of access to unconstrained
      	array type.
      	(Side_Effect_Free): Return false for the type
      	conversion of access to unconstrained array type when generating
      	C code.
      	* sem_res.adb (Resolved_Type_Conversion): Remove side effects
      	of access to unconstrained array type conversion when generating
      	C code.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Build_Predicate_Function_Declaration): New
      	function, to construct the declaration of a predicate function
      	at the end of the current declarative part rather than at the
      	(possibly later) freeze point of the type. This also allows uses
      	of a type with predicates in instantiations elsewhere.
      	(Resolve_Aspect_Expression): New procedure to detect visiblity
      	errors in aspect expressions, at the end of the declarative part
      	that includes the type declaration.
      	* sem_ch3.adb (Complete_Private_Subtype): Propagate properly the
      	predicate function from private to full view.
      	* einfo.adb (Predicate_Function): Refine search for predicate
      	function when type has a full view and predicate function may
      	be defined on either view.
      
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* frontend.adb: Passing the root of the tree to
      	Unnest_Subprograms().
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that
      	took care of adding subprograms to the Unest_Bodies table since
      	performing such action too early disables the ability to process
      	generic instantiations.
      	(Unnest_Subprograms): Adding parameter.
      	(Search_Unnesting_Subprograms): New subprogram.
      	* exp_ch6.ads (Unnest_Subrograms): Update documentation.
      
      From-SVN: r235268
      Arnaud Charlet committed
    • [multiple changes] · 268aeaa9
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_unst.adb (Check_Static_Type): For a private type, check
      	full view.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Check_Type): Reject an attribute reference in
      	an aspect expression, when the prefix of the reference is the
      	current instance of the type to which the aspect applies.
      
      From-SVN: r235267
      Arnaud Charlet committed
    • [multiple changes] · 51b42ffa
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about
      	hiding unless we're actually hiding something. The previous
      	code would (for example) warn about a "<" on a record type
      	because it incorrectly thought it was hiding the "<" on Boolean
      	in Standard. We need to check that the homonym S is in fact a
      	homograph of a predefined operator.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here
      	from exp_ch6.adb, for use in SPARK_To_C mode when creating the
      	procedure equivalent to a function returning an array, when this
      	construction is deferred to the freeze point of the function.
      	* sem_util.adb (Is_Unchecked_Conversion_Instance): Include a
      	function that renames an instance of Unchecked_Conversion.
      	* freeze.adb (Freeze_Subprogram): Generate the proper procedure
      	declaration for a function returning an array.
      	* exp_ch6.adb (Build_Procedure_Form): Moved to exp_util.
      
      From-SVN: r235266
      Arnaud Charlet committed
    • sem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine… · f73dc37f
      sem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time...
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute):
      	New predicate to determine that in a context with full run-time,
      	a function call is an expansion of a reference to attribute
      	Priority.
      	* sem_ch5.adb (Analyze_Function_Call): use it.
      	* exp_ch5.adb (Expand_N_Subprogram_Call): use it.
      
      From-SVN: r235265
      Ed Schonberg committed
    • [multiple changes] · 75a957f5
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb Flag286 is now used as Is_Exception_Handler.
      	(Is_Exception_Handler): New routine.
      	(Set_Is_Exception_Handler): New routine.
      	(Write_Entity_Flags): Output the status of Is_Exception_Handler.
      	* einfo.ads New attribute Is_Exception_Handler along with
      	occurrences in entities.
      	(Is_Exception_Handler): New routine along with pragma Inline.
      	(Set_Is_Exception_Handler): New routine along with pragma Inline.
      	* exp_ch7.adb (Make_Transient_Block): Ignore blocks generated
      	for exception handlers with a choice parameter.
      	* sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope
      	generated for a choice parameter as an exception handler.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Access_Type): Remove dead code.
      	(Constrain_Discriminated_Type): In an instance, if the type has
      	unknown discriminants, use its full view.
      	(Process_Subtype): Check that the base type is private before
      	adding subtype to Private_Dependents list.
      
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* sem_ch13.adb: Minor comment fix.
      
      From-SVN: r235264
      Arnaud Charlet committed
    • sem_ch4.adb: Fix typos in comments. · bc795e3e
      2016-04-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch4.adb: Fix typos in comments.
      	* sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives.
      
      From-SVN: r235263
      Yannick Moy committed
    • Minor reformatting. · d4939415
      From-SVN: r235262
      Arnaud Charlet committed
    • [multiple changes] · 0f8b3e5d
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Selected_Component): A reference to the
      	current instance of a task type is legal if the prefix is an
      	expression of that task type and the selector is an entry or
      	entry family.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-cfdlli.ads (List): Type is no longer tagged, not needed. Move
      	varsize field at the end for efficiency.
      
      From-SVN: r235261
      Arnaud Charlet committed
    • [multiple changes] · 0c61772a
      2016-04-20  Vincent Celier  <celier@adacore.com>
      
      	* gnatcmd.adb: Do not invoke gprls when the invocation of "gnat
      	ls" includes the switch -V.
      	* clean.adb: "<target>-gnatclean -P" now calls "gprclean
      	--target=<target>"
      	* make.adb: "<target>-gnatmake -P" now calls "gprbuild
      	--target=<target>"
      
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Qualify_Type): Do not perform
      	partial qualification when the immediate scope is a generic unit.
      
      From-SVN: r235260
      Arnaud Charlet committed
    • exp_unst.adb: Minor reformatting. · 61d1b085
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_unst.adb: Minor reformatting.
      
      From-SVN: r235259
      Hristian Kirtchev committed
    • [multiple changes] · 18431dc5
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_Allocator_Expression): Ensure that the
      	tag assignment and adjustment preceed the accessibility check.
      	* exp_ch7.adb (Is_Subprogram_Call): Reimplemented.
      
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_prag.adb (Expand_Attributes): Ensure that
      	the temporary used to capture the value of attribute 'Old's
      	prefix is properly initialized.
      
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library
      	level.
      
      From-SVN: r235258
      Arnaud Charlet committed
    • [multiple changes] · dfbc6cbe
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning
      	in codepeer mode.
      
      2016-04-20  Vincent Celier  <celier@adacore.com>
      
      	* make.adb: Code cleanup.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch4.adb (Expand_Allocator_Expression): Help C code
      	generation.
      
      From-SVN: r235257
      Arnaud Charlet committed
    • [multiple changes] · 06f6c43f
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Copy_Generic_Node): Handle the special
      	qualification installed for universal literals that act as
      	operands in binary or unary operators.	(Qualify_Operand): Mark
      	the qualification to signal the instantiation mechanism how to
      	handle global reference propagation.
      	* sinfo.adb (Is_Qualified_Universal_Literal): New routine.
      	(Set_Is_Qualified_Universal_Literal): New routine.
      	* sinfo.ads New attribute Is_Qualified_Universal_Literal along
      	with occurrences in nodes.
      	(Is_Qualified_Universal_Literal):
      	New routine along with pragma Inline.
      	(Set_Is_Qualified_Universal_Literal): New routine along with
      	pragma Inline.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length
      	so that the corresponding checks are preserved across compilations
      	that include System.Constants in their context.
      
      2016-04-20  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_type.adb: Minor typo fix and reformatting.
      	* a-conhel.ads: Update comment.
      
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the
      	code so it doesn't trigger an "uninit var" warning.
      
      From-SVN: r235256
      Arnaud Charlet committed
    • [multiple changes] · 71129dde
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_attr.ads Add new table Universal_Type_Attribute.
      	* sem_util.adb (Yields_Universal_Type): Use a table lookup when
      	checking attributes.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Init_Stored_Discriminants,
      	Init_Visible_Discriminants): New procedures, subsidiary of
      	Build_Record_Aggr_Code, to handle properly the construction
      	of aggregates for a derived type that constrains some parent
      	discriminants and renames others.
      
      From-SVN: r235255
      Arnaud Charlet committed
    • sem_ch12.adb (Qualify_Universal_Operands): New routine. · 5c63aafa
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Qualify_Universal_Operands): New routine.
      	(Save_References_In_Operator): Add explicit qualifications in
      	the generic template for all operands of universal type.
      	* sem_type.adb (Disambiguate): Update the call to Matches.
      	(Matches): Reimplemented.
      	* sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine.
      
      From-SVN: r235254
      Hristian Kirtchev committed
    • [multiple changes] · 7e22a38c
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Rep_Item_Too_Late): Better error message for
      	an illegal aspect that freezes the entity to which it applies.
      
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* a-stwibo.ads, a-stzbou.ads
      	("="): Add overriding keyword before function to avoid crash when
      	compiler is called with -gnatyO (check overriding indicators).
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma, case Check_Policy):  If this
      	is a configuration pragma and it uses the ARG syntax, insert
      	the rewritten pragma after the current one rather than using
      	Insert_Actions.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_aggr.adb (Backend_Processing_Possible): Add handling of
      	C back-end.
      
      From-SVN: r235253
      Arnaud Charlet committed
    • s-imgllu.adb, [...]: Minor reformatting. · b83dd5ec
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb,
      	s-imglli.adb: Minor reformatting.
      
      From-SVN: r235251
      Hristian Kirtchev committed
    • re PR tree-optimization/70725 (Internal compiler error (ICE) on valid code) · 2697b189
      	PR tree-optimization/70725
      	* tree-if-conv.c (is_false_predicate): New function.
      	(predicate_mem_writes): Use it.
      
      	* gcc.dg/pr70725.c: New test.
      
      From-SVN: r235250
      Marek Polacek committed
    • sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when… · d566e90a
      sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a...
      
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the
      	renamed operator when the associated node appears within a
      	pre/postcondition.
      	* sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine.
      
      From-SVN: r235249
      Hristian Kirtchev committed
    • [multiple changes] · 9a476d75
      2016-04-20  Yannick Moy  <moy@adacore.com>
      
      	* osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix.
      	* einfo.adb (Set_Overridden_Operation): Add assertion.
      	* sem_util.adb (Unique_Entity): for renaming-as-body return the spec
      	entity.
      
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_unst.adb (Append_Unique_Call): New subprogram.
      	(Unnest_Subprogram): Replace the unique occurrence
      	of Call.Append() by Append_Unique_Call() which protects us from
      	adding to the Calls table duplicated entries.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_attr.adb (Is_GCC_Target): Fix for C backend.
      	* xref_lib.ads (Dependencies_Tables): instantiate
      	Table package with types that guarantee its safe use.
      	* s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested
      	procedures.
      
      From-SVN: r235248
      Arnaud Charlet committed
    • exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion… · 88438c0e
      exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]):
      	Disable expansion when generating C code.
      	* sinfo.ads, inline.ads: Minor editing.
      
      From-SVN: r235247
      Arnaud Charlet committed
    • sem_util.adb, [...]: Minor reformatting. · c37e6613
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor
      	reformatting.
      
      From-SVN: r235246
      Hristian Kirtchev committed
    • contracts.adb (Build_Postconditions_Procedure): Code cleanup. · 7f5e1dee
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* contracts.adb (Build_Postconditions_Procedure): Code cleanup.
      	* ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the
      	declaration of the internally built _postcondition procedure.
      
      From-SVN: r235245
      Javier Miranda committed
    • [multiple changes] · 31ae1b46
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix
      	indentation.
      	* sem_util.adb (Is_Unchecked_Conversion_Instance):
      	defense against library-level renamings of other functions,
      	which are never instances of Unchecked_Conversion.
      	* einfo.ads: minor fix of casing in comment
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body
      	that has been analyzed and expanded already. Qualify the names
      	in the proper body for use in the generation of C code.
      
      From-SVN: r235244
      Arnaud Charlet committed
    • [multiple changes] · 1ba563f5
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* contracts.adb (Build_Postconditions_Procedure): Force its
      	inlining when generating C code.
      	* sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined
      	_postconditions when generating C code.
      	* exp_ch6.adb (Inlined_Subprogram): Inline calls to
      	_postconditions when generating C code.
      	* sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec):
      	types of return value and argument changed from Node_Id to
      	Entity_Id.
      
      2016-04-20  Vincent Celier  <celier@adacore.com>
      
      	* make.adb, clean.adb, gnatname.adb: Revert previous change for now.
      
      2016-04-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
      	the Has_Delayed_Freeze flag on the anonymous instance node.
      
      From-SVN: r235243
      Arnaud Charlet committed
    • [multiple changes] · e361e9a1
      2016-04-20  Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): Remove transient
      	scope associated with the renaming object declaration.
      	* exp_util.adb (Insert_Actions): Remove handling of iterator
      	loop marked as requiring the secondary stack.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Image): Implement
      	AI12-0124, which extends the functionality of the attribute so it
      	reflects the semantics of GNAT 'Img when applied to scalar types.
      	* lib-xref.adb: minor whitespace layout fix.
      
      From-SVN: r235242
      Arnaud Charlet committed
    • [multiple changes] · d67ffa88
      2016-04-20  Vincent Celier  <celier@adacore.com>
      
      	* clean.adb (Gnatclean): Fail if project file specified and
      	gprclean is not available.
      	* gnatname.adb: Fail is -P is used and gprname is not available.
      	* make.adb (Initialize): Fail if project file specified and
      	gprbuild is not available.
      
      2016-04-20  Bob Duff  <duff@adacore.com>
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary
      	stack when possible.
      
      From-SVN: r235241
      Arnaud Charlet committed
    • [multiple changes] · 93e90bf4
      2016-04-20  Gary Dismukes  <dismukes@adacore.com>
      
      	* par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and
      	reformatting.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool):
      	If the pragma comes from an aspect specification, verify that
      	the aspect applies to an entity with a declarative part.
      	* exp_ch5.adb: Code cleanup.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_If_Expression): If first expression is
      	universal, resolve subsequent ones with the corresponding class
      	type (Any_Integer or Any_Real).
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): If expansion is
      	disabled, complete the analysis of the iterator name to ensure
      	that reference for entities within are properly generated.
      
      2016-04-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-dispat.ads (Yield): add Global contract.
      	* a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time.
      	* a-taside.adb: Added Initializes => Tasking_State.
      
      From-SVN: r235240
      Arnaud Charlet committed
    • sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure… · ae3d8837
      sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure spec and body insertion.
      
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Build_Invariant_Procedure):
      	Reimplement the invariant procedure spec and body insertion.
      
      From-SVN: r235239
      Hristian Kirtchev committed
    • [multiple changes] · 776fbb74
      2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Add_Invariant): Do not replace
      	the saved expression of an invariatn aspect when inheriting
      	a class-wide type invariant as this clobbers the existing
      	expression. Do not use New_Copy_List as it is unnecessary
      	and leaves the parent pointers referencing the wrong part of
      	the tree. Do not replace the type references for ASIS when
      	inheriting a class-wide type invariant as this clobbers the
      	existing replacement.
      
      2016-04-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Build_Explicit_Dereference): If the designated
      	expression is an entity name, generate reference to the entity
      	because it will not be resolved again.
      
      From-SVN: r235238
      Arnaud Charlet committed
    • re PR tree-optimization/70726 (Internal compiler error (ICE) on valid code) · 60d393e8
      2016-04-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/70726
      	* tree-vect-stmts.c (vectorizable_shift): Do not use scalar
      	shift amounts from a pattern stmt operand.
      
      	* g++.dg/vect/pr70726.cc: New testcase.
      
      From-SVN: r235236
      Richard Biener committed
    • PR70674: S/390: Add memory barrier to stack pointer restore from fpr. · 82c6f58a
      This patches fixes a problem with stack variable accesses being
      scheduled after the stack pointer restore instructions.  In the
      testcase this happened with the stack variable 'a' accessed through the
      frame pointer.
      
      The existing stack_tie we have in the backend is basically useless
      when trying to block stack variable accesses from being scheduled
      across an insn.  The alias set of stack variables and the frame alias
      set usually differ and hence aren't in conflict with each other.  The
      solution appears to be a magic MEM term with a scratch register which
      is handled as a full memory barrier when analyzing scheduling
      dependencies.
      
      With the patch a (clobber (mem:BLK (scratch))) is being added to the
      restore instruction in order to prevent any memory operations to be
      scheduled across the insn.  The patch does that only for the one case
      where the stack pointer is restored from an FPR.  Theoretically this
      might happen also in the case where the stack pointer gets restored
      using a load multiple.  However, triggering that problem with
      load-multiple appears to be much harder since the load-multiple will
      restore the frame pointer as well.  So in order to see the problem a
      different call-clobbered register would need to be used as temporary
      stack pointer.
      
      Another case which needs to be handled some day is the stack pointer
      allocation part.  It needs to be a memory barrier as well.
      
      Bootstrapped and regression tested with --with-arch z196 and z13 on
      s390 and s390x.
      
      -Andreas-
      
      gcc/ChangeLog:
      
      2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/70674
      	* config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
      	stack_restore_from_fpr pattern when restoring r15.
      	(s390_optimize_prologue): Strip away the memory barrier in the
      	parallel when trying to get rid of restore insns.
      	* config/s390/s390.md ("stack_restore_from_fpr"): New insn
      	definition for loading the stack pointer from an FPR.  Compared to
      	the normal move insn this pattern includes a full memory barrier.
      
      gcc/testsuite/ChangeLog:
      
      2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	PR target/70674
      	* gcc.target/s390/pr70674.c: New test.
      
      From-SVN: r235234
      Andreas Krebbel committed
    • re PR middle-end/70680 (OpenMP SIMD linear variable privatized too eagerly) · 84311083
      	PR middle-end/70680
      	* gimplify.c (gimplify_omp_for): Call omp_notice_variable for
      	implicitly linear or lastprivate iterator on the outer context.
      
      	* testsuite/libgomp.c/pr70680-1.c: New test.
      	* testsuite/libgomp.c/pr70680-2.c: New test.
      
      From-SVN: r235232
      Jakub Jelinek committed
    • Attach PR number to most recent entry. · 743af971
      From-SVN: r235231
      Ben Elliston committed
    • Daily bump. · afe0fab2
      From-SVN: r235230
      GCC Administrator committed
  2. 19 Apr, 2016 1 commit
    • Remove ssememalign · 6048e2ed
      From INSTRUCTION EXCEPTION SPECIFICATION section in Intel software
      developer manual volume 2, only legacy SSE instructions with memory
      operand not 16-byte aligned get General Protection fault.  There is
      no need to check 1, 2, 4, 8 byte alignments.  Since x86 backend has
      accurate constraints and predicates for 16-byte alignment, we can
      remove alignment check in ix86_legitimate_combined_insn.
      
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Remove
      	alignment check.
      	* config/i386/i386.md (ssememalign): Removed.
      	* config/i386/sse.md: Remove ssememalign attribute from patterns.
      
      From-SVN: r235224
      H.J. Lu committed