138381 Commits

Author SHA1 Message Date
Ed Schonberg
598a56c096 sem_ch10.adb (Analyze_With_Clause): In ASIS_Mode...
2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): In ASIS_Mode, a
	limited_with clause on a predefined unit is not transformed into
	a regular with_clause, to preserve the original tree structure.
	* sinfo.ads (N_With_Clause): Add comment on handling of
	Limited_With.
	* sem_ch10.adb: Minor reformatting.

2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Freeze_Profile): A limited view of a type in
	the profile of a subprogram renaming does not require freezing,
	because it is declared in a different unit.

2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Get_Constraint_Association): If type (of ancestor
	composite type) is private, go to full view. This was previously
	done only in an instance context, but is happen whenever a chain
	of private extensions includes one inherited discriminant.

From-SVN: r223565
2015-05-22 15:04:01 +02:00
Arnaud Charlet
ee93527368 [multiple changes]
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* einfo.ads: Minor comment updates.
	* exp_unst.adb: Move Subps table to spec Don't remove old entries
	from table Add Last field to record last entry used.
	* exp_unst.ads: Move Subps table here from body So that Cprint
	can access saved values.

2015-05-22  Bob Duff  <duff@adacore.com>

	* a-cdlili.adb, a-cdlili.ads, a-cohama.adb, a-cohama.ads,
	* a-cohase.adb, a-cohase.ads, a-convec.adb, a-convec.ads,
	* a-coorma.adb, a-coorma.ads, a-coorse.adb, a-coorse.ads:
	(Pseudo_Reference, Element_Access, Get_Element_Access): New
	declarations added for use by performance improvements in exp_ch5.adb.
	* snames.ads-tmpl: New names referenced by exp_ch5.adb.
	* exp_ch5.adb: Speed up "for ... of" loops for predefined containers.
	Instead of doing literally what the RM calls for, we do something
	equivalent that avoids expensive operations inside the loop. If the
	container package has appropriate Next, Pseudo_Reference,
	Element_Access, Get_Element_Access declarations, we invoke the
	optimization.
	* snames.ads-tmpl: Note speed improvement.

From-SVN: r223563
2015-05-22 15:01:37 +02:00
Eric Botcazou
5c0c1090a7 einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Is_Atomic_Or_VFA): Move to XEINFO INLINES section.
	* xeinfo.adb: Replace a-einfo.h with einfo.h throughout.
	Add pattern to translate "or else" into "||".

From-SVN: r223562
2015-05-22 14:56:34 +02:00
Eric Botcazou
57abdadd18 einfo.ads (Has_Volatile_Full_Access): Rename into...
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Has_Volatile_Full_Access): Rename into...
	(Is_Volatile_Full_Access): ...this.
	(Set_Has_Volatile_Full_Access): Rename into...
	(Set_Is_Volatile_Full_Access): ...this.
	* einfo.adb (Has_Volatile_Full_Access): Rename into...
	(Is_Volatile_Full_Access): ...this.
	(Set_Has_Volatile_Full_Access): Rename into...
	(Set_Is_Volatile_Full_Access): ...this.
	(Is_Atomic_Or_VFA): Adjust to above renaming.
	* errout.adb (Special_Msg_Delete): Likewise.
	* exp_pakd.adb (Install_PAT): Likewise.
	* freeze.adb (Freeze_Array_Type): Likewise.
	* sem_ch8.adb (Analyze_Object_Renaming): Likewise.
	* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
	(Inherit_Aspects_At_Freeze_Point): Likewise.
	* sem_prag.adb (Set_Atomic_VFA): Likewise.
	(Process_Atomic_Independent_Shared_Volatile): Likewise.
	* sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise.

From-SVN: r223561
2015-05-22 14:54:59 +02:00
Robert Dewar
f280dd8f6d exp_ch5.adb, [...]: This is a general change that deals with the fact that most of the special...
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, layout.adb, einfo.adb, einfo.ads, sem_prag.adb,
	freeze.adb, freeze.ads, sem_util.adb, sem_util.ads, exp_ch2.adb,
	exp_ch4.adb, errout.adb, exp_aggr.adb, sem_ch13.adb: This is a general
	change that deals with the fact that most of the special coding for
	Atomic should also apply to the case of Volatile_Full_Access.
	A new attribute Is_Atomic_Or_VFA is introduced, and many of the
	references to Is_Atomic now use this new attribute.

From-SVN: r223560
2015-05-22 14:53:21 +02:00
Robert Dewar
878e58c85e exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result comparison.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Eq): Introduce 'Machine for 'Result
	comparison.

From-SVN: r223559
2015-05-22 14:51:36 +02:00
Kyrylo Tkachov
64a40a7bb3 [ARM] Handle UNSPEC_VOLATILE in rtx costs and don't recurse inside the unspec
* config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
	(arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
	unknown unspecs.

From-SVN: r223558
2015-05-22 12:51:34 +00:00
Arnaud Charlet
57d22af251 [multiple changes]
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sprint.adb (Source_Dump): When generating debug files, deal
	with the case of a stand-alone package instantiation by dumping
	together the spec and the body in the common debug file.

2015-05-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Minimum_Size): Size is zero for null range
	discrete subtype.

2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Anonymous_Master): This attribute now applies
	to package and subprogram bodies.
	(Set_Anonymous_Master): This attribute now applies to package and
	subprogram bodies.
	(Write_Field36_Name): Add output for package and subprogram bodies.
	* einfo.ads Update the documentation on attribute Anonymous_Master
	along with occurrences in entities.
	* exp_ch4.adb (Create_Anonymous_Master): Reimplemented to
	handle spec and body anonymous masters of the same unit.
	(Current_Anonymous_Master): Reimplemented. Handle a
	package instantiation that acts as a compilation unit.
	(Insert_And_Analyze): Reimplemented.

2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): A limited_with_clause on a
	predefined unit is treated as a regular with_clause.

From-SVN: r223557
2015-05-22 14:50:35 +02:00
Arnaud Charlet
770551bc93 Minor reformatting.
From-SVN: r223556
2015-05-22 14:46:00 +02:00
Arnaud Charlet
ccd6f4147c [multiple changes]
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb, prj.ads, makeutl.ads, sem_ch6.adb, prj-nmsc.adb,
	prj-conf.adb, sem_disp.adb: Minor reformatting.

2015-05-22  Vincent Celier  <celier@adacore.com>

	* clean.adb (Parse_Cmd_Line): For native gnatclean, check
	for switch -P and, if found and gprclean is available, invoke
	silently gprclean.
	* make.adb (Initialize): For native gnatmake, check for switch -P
	and, if found and gprbuild is available, invoke silently gprbuild.

2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Validate_Unchecked_Conversions): Also issue
	specific warning for discrete types when the source is larger
	than the target.

From-SVN: r223555
2015-05-22 14:45:14 +02:00
Arnaud Charlet
167b47d9da [multiple changes]
2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Incomplete_Actuals): New attribute of
	package instantiations. Holds the list of actuals in the instance
	that are incomplete types, to determine where the corresponding
	instance body must be placed.
	* sem_ch6.adb (Conforming_Types): An incomplete type used as an
	actual in an instance matches an incomplete formal.
	* sem_disp.adb (Check_Dispatching_Call): Handle missing case of
	explicit dereference.
	(Inherited_Subprograms): In the presence of a limited view there
	are no subprograms to inherit.
	* sem_ch12.adb (Preanalyze_Actuals): Build list of incomplete
	actuals of instance, for later placement of instance body and
	freeze nodes for actuals.
	(Install_Body): In the presence of actuals that incomplete types
	from a limited view, the instance body cannot be placed after
	the declaration because full views have not been seen yet. Any
	use of the non-limited views in the instance body requires
	the presence of a regular with_clause in the enclosing unit,
	and will fail if this with_clause is missing.  We place the
	instance body at the beginning of the enclosing body, which is
	the unit being compiled, and ensure that freeze nodes for the
	full views of the incomplete types appear before the instance.

2015-05-22  Pascal Obry  <obry@adacore.com>

	* makeutl.ads, prj-conf.adb, prj-nmsc.adb, prj.ads
	(In_Place_Option): Removed.
	(Relocate_Build_Tree_Option): New constant.
	(Root_Dir_Option): New constant.
	(Obj_Root_Dir): Removed.
	(Build_Tree_Dir): New variable.
	(Root_Src_Tree): Removed.
	(Root_Dir): New variable.
	* prj-conf.adb (Get_Or_Create_Configuration_File): Add check
	for improper relocation.
	* prj-nmsc.adb (Locate_Directory): Add check for improper
	relocation.

From-SVN: r223553
2015-05-22 14:42:05 +02:00
Richard Biener
7ac5a14092 re PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484)
2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66251
	* tree-vect-stmts.c (vectorizable_conversion): Properly
	set STMT_VINFO_VEC_STMT even for the SLP case.

	* gfortran.fortran-torture/compile/pr66251.f90: New testcase.

From-SVN: r223552
2015-05-22 12:34:46 +00:00
Hristian Kirtchev
caef4e579d einfo.adb (Default_Init_Cond_Procedure): Code cleanup.
2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Default_Init_Cond_Procedure): Code cleanup. The
	attribute now applies to the base type.
	(Has_Default_Init_Cond): Now applies to the base type.
	(Has_Inherited_Default_Init_Cond): Now applies to the base type.
	(Set_Default_Init_Cond_Procedure): Code cleanup. The attribute now
	applies to the base type.
	(Set_Has_Default_Init_Cond): Now applies to the base type.
	(Set_Has_Inherited_Default_Init_Cond): Now applies to the base type.
	* exp_ch3.adb (Expand_N_Object_Declaration): No need to use the
	base type when adding a call to the Default_Initial_Condition.

From-SVN: r223551
2015-05-22 14:34:33 +02:00
Hristian Kirtchev
57ae790f79 2015-05-22 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb Node36 is now used as Anonymous_Master. Flag253
	is now unused.
	(Anonymous_Master): New routine.
	(Has_Anonymous_Master): Removed.
	(Set_Anonymous_Master): New routine.
	(Set_Has_Anonymous_Master): Removed.
	(Write_Entity_Flags): Remove the output for Has_Anonymous_Maser.
	(Write_Field36_Name): Add output for Anonymous_Master.
	* einfo.ads Add new attribute Anonymous_Master along with
	occurrences in nodes. Remove attribute Has_Anonymous_Master along
	with occurrences in nodes.
	(Anonymous_Master): New routine along with pragma Inline.
	(Has_Anonymous_Master): Removed along with pragma Inline.
	(Set_Anonymous_Master): New routine along with pragma Inline.
	(Set_Has_Anonymous_Master): Removed along with pragma Inline.
	* exp_ch4.adb (Create_Anonymous_Master): New routine.
	(Current_Anonymous_Master): Reimplemented.

From-SVN: r223550
2015-05-22 14:32:55 +02:00
Bob Duff
a79cdb2c62 freeze.adb (Freeze_Profile): Suppress warning if imported subprogram is not at library level.
2015-05-22  Bob Duff  <duff@adacore.com>

	* freeze.adb (Freeze_Profile): Suppress warning if imported
	subprogram is not at library level.

From-SVN: r223549
2015-05-22 14:31:03 +02:00
Arnaud Charlet
db222eadb1 [multiple changes]
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Check for renaming
	component of an object to which Volatile_Full_Access applies.

2015-05-22  Jerome Guitton  <guitton@adacore.com>

	* exp_dbug.ads: Add note about non bit-packed arrays.

2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_prag.adb: Fix typo.
	* einfo.ads: Grammar fixes in comments.

2015-05-22  Bob Duff  <duff@adacore.com>

	* a-cborma.ads, a-cidlli.ads, a-cimutr.ads, a-ciormu.ads,
	* a-cihase.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
	* a-cborse.ads, a-comutr.ads, a-ciorma.ads, a-cobove.ads,
	* a-coormu.ads, a-convec.ads, a-cohase.ads, a-coinho.ads,
	* a-cbdlli.ads, a-cbmutr.ads, a-cbhase.ads, a-cdlili.ads,
	* a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
	* a-coinho-shared.ads (Constant_Reference_Type, Reference_Type):
	Add an initialization expression "raise Program_Error". See,
	for example, RM-A.18.2(148.4).

From-SVN: r223548
2015-05-22 12:53:29 +02:00
Trevor Saunders
a2f45fe669 fix some dates in ChangeLogs
From-SVN: r223547
2015-05-22 10:50:49 +00:00
Robert Dewar
ed05b79007 debug.adb: Update documentation.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Update documentation.
	* einfo.ads, einfo.adb (Needs_Typedef): New flag
	* exp_unst.adb (Unnest_Subprogram): Mark AREC types as needing
	typedef's in C.
	* frontend.adb: Update comments.
	* gnat1drv.adb (Adjust_Global_Switches): Set all needed flags
	for -gnatd.V
	* opt.ads (Generate_C_Code): New switch.
	* osint-c.adb (Write_C_File_Info): Removed, not used
	(Write_H_File_Info): Removed, not used
	* osint-c.ads (Write_C_File_Info): Removed, not used
	(Write_H_File_Info): Removed, not used
	* osint.ads (Write_Info): Minor comment updates.
	(Output_FD): Moved from private part to public part of spec.
	* sem.adb (Semantics): Force expansion on if in Generate_C_Code
	mode.
	* atree.ads: minor typo in comment.
	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
	Do not allow VFA on composite object with aliased component.

From-SVN: r223546
2015-05-22 12:50:19 +02:00
Arnaud Charlet
6eb187f6f3 [multiple changes]
2015-05-22  Arnaud Charlet  <charlet@adacore.com>

	* osint-c.adb, osint-c.ads (Set_File_Name): Move back to spec.

2015-05-22  Pascal Obry  <obry@adacore.com>

	* prj-util.adb: Minor comment editing.

From-SVN: r223545
2015-05-22 12:42:23 +02:00
Arnaud Charlet
10af62127a Minor reformatting.
From-SVN: r223544
2015-05-22 12:40:27 +02:00
Pascal Obry
65467a8a46 makeutl.ads (In_Place_Option): New constant.
2015-05-22  Pascal Obry  <obry@adacore.com>

	* makeutl.ads (In_Place_Option): New constant.
	* prj.ads (Obj_Root_Dir): New variable (absolute path to relocate
	objects).
	(Root_Src_Tree): New variable (absolute path of root source tree).
	* prj-conf.adb (Do_Autoconf): Take into account the object root
	directory (if defined) to generate configuration project.
	* prj-nmsc.adb (Get_Directories): Handle case where Obj_Root_Dir
	is defined.
	(Locate_Directory): Likewise.

From-SVN: r223543
2015-05-22 12:40:07 +02:00
Pascal Obry
01099e0465 prj-util.ads, [...] (Relative_Path): New routine.
2015-05-22  Pascal Obry  <obry@adacore.com>

	* prj-util.ads, prj-util.adb (Relative_Path): New routine.

From-SVN: r223542
2015-05-22 12:38:07 +02:00
Bob Duff
ca81124179 exp_utils.ads, [...] (Find_Optional_Prim_Op): New interface to return Empty when not found...
2015-05-22  Bob Duff  <duff@adacore.com>

	* exp_utils.ads, exp_utils.adb (Find_Optional_Prim_Op): New
	interface to return Empty when not found, so we can avoid handling
	Program_Error in that case.
	(Find_Prim_Op): Fix latent bug: raise Program_Error when there are no
	primitives.
	* exp_ch7.adb, sem_util.adb: Use Find_Optional_Prim_Op when the
	code is expecting Empty.
	* sem_ch8.adb: Use Find_Optional_Prim_Op to avoid handling
	Program_Error.

From-SVN: r223541
2015-05-22 12:36:56 +02:00
Robert Dewar
a95f708ec3 sem_ch3.adb, [...]: Remove incorrect hyphen in non-binary.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_intr.adb, exp_ch4.adb, s-rannum.adb,
	sem_eval.adb, s-fatgen.adb, s-expmod.ads: Remove incorrect hyphen in
	non-binary.
	* exp_util.adb: Add comment.
	* osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move from spec to
	body.
	(Set_File_Name): New name for the above.
	(Create_C_File, Create_H_File, Write_C_File_Info, Write_H_File_Info,
	Close_C_File, Close_H_File): New procedure.
	* osint.adb: Minor reformatting.
	* osint.ads: Minor comment updates.

From-SVN: r223540
2015-05-22 12:35:33 +02:00
Robert Dewar
c2b2b2d7ab exp_ch4.adb: Minor rewording.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor rewording.
	* exp_util.ads: Clarify that Find_Prim_Op is only for
	tagged types.

From-SVN: r223539
2015-05-22 12:32:15 +02:00
Robert Dewar
b502ba3c7b atree.adb, [...]: Change name Needs_Actuals_Check to Check_Actuals.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* atree.adb, atree.ads, treepr.adb: Change name Needs_Actuals_Check to
	Check_Actuals.
	* exp_ch4.adb (Expand_N_Op_Expon): Optimize 2**x in modular
	and overflow cases.

From-SVN: r223538
2015-05-22 12:30:37 +02:00
Arnaud Charlet
fd95743405 [multiple changes]
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_pakd.adb (Install_PAT): Propagate representation aspects
	from the original array type to the PAT.

2015-05-22  Robert Dewar  <dewar@adacore.com>

	* treepr.adb (Print_Node_Header): Add output of Needs_Actuals_Check.

From-SVN: r223537
2015-05-22 12:28:06 +02:00
Robert Dewar
a02c5a694e atree.adb, atree.ads (Needs_Actuals_Check): New flag.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* atree.adb, atree.ads (Needs_Actuals_Check): New flag.

From-SVN: r223536
2015-05-22 12:25:20 +02:00
Hristian Kirtchev
7a391e42e7 sem_prag.adb (Analyze_Pragma): Remove the detection of a useless Part_Of indicator when...
2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Remove the detection
	of a useless Part_Of indicator when the related item is a constant.
	(Check_Matching_Constituent): Do not emit an error on a constant.
	(Check_Missing_Part_Of): Do not check for a missing Part_Of indicator
	when the related item is a constant.
	(Collect_Body_States): Code cleanup.
	(Collect_Visible_States): Code cleanup.
	(Report_Unused_States): Do not emit an error on a constant.
	* sem_util.ads, sem_util.adb (Has_Variable_Input): Removed.

From-SVN: r223535
2015-05-22 12:23:39 +02:00
Arnaud Charlet
c2cfccb1cf [multiple changes]
2015-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Copy
	Has_Volatile_Full_Access from renamed to renaming entities.
	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile):
	Tidy up and remove redundant setting of Has_Volatile_Full_Access.

2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* ghost.adb (Check_Ghost_Completion): Update references to SPARK
	RM 6.9 rules.
	(Check_Ghost_Policy): Update references to SPARK RM 6.9 rules.
	* sem_ch3.adb (Analyze_Object_Declaration): Update references
	to SPARK RM 6.9 rules.
	(Check_Completion): Ghost entities do not require a special form of
	completion.
	* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
	to SPARK RM 6.9 rules.
	(Analyze_Subprogram_Body_Helper): Update references to SPARK RM 6.9
	rules.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
	to SPARK RM 6.9 rules.
	(Requires_Completion_In_Body): Ghost entities do not require a special
	form of completion.

2015-05-22  Robert Dewar  <dewar@adacore.com>

	* a-csquin.ads: Use Ada 2012 notation.
	* sem_ch8.adb: Minor reformatting.

2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Import
	acts as a completion.

From-SVN: r223534
2015-05-22 12:20:00 +02:00
Arnaud Charlet
30fc80cfa6 [multiple changes]
2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Minor reformatting.

2015-05-22  Jose Ruiz  <ruiz@adacore.com>

	* a-reatim.adb: Minor change, fix typo.

From-SVN: r223533
2015-05-22 12:15:47 +02:00
Robert Dewar
90d6b7bc3a sem_util.ads: Minor addition of ??? comment.
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads: Minor addition of ??? comment.
	* sem_prag.adb, sem_util.adb: Minor reformatting.
	* sem_ch13.adb: minor reformatting.

From-SVN: r223532
2015-05-22 12:14:35 +02:00
Arnaud Charlet
eb9008b755 [multiple changes]
2015-05-22  Robert Dewar  <dewar@adacore.com>

	* a-reatim.ads: Add Compile_Time_Error to ensure Duration
	is 64-bits.
	* sem_ch13.adb: Improve error message.
	* exp_ch4.adb: Minor reformatting.

2015-05-22  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Constants without variable
	input do not require indicator Part_Of.
	(Check_Missing_Part_Of): Constants without variable input do not
	requrie indicator Part_Of.
	(Collect_Visible_States): Constants without variable input are
	not part of the hidden state of a package.
	* sem_util.ads, sem_util.adb (Has_Variable_Input): New routine.

From-SVN: r223531
2015-05-22 12:11:36 +02:00
Marek Polacek
b7f016cb22 * doc/extend.texi: Use @pxref instead of @xref.
From-SVN: r223530
2015-05-22 09:27:35 +00:00
Aditya Kumar
9dbe0d83c8 gimple.h (gimple_expr_type): Refactor to make it concise.
2015-05-22  hiraditya  <hiraditya@msn.com>

        * gimple.h (gimple_expr_type): Refactor to make it concise.
        Remove redundant if.

From-SVN: r223529
2015-05-22 09:10:29 +00:00
Richard Biener
476c12802d re PR ipa/65701 (r221530 makes 187.facerec drop with -Ofast -flto on bdver2)
2015-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65701
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Move peeling cost models into one place.  Peel for alignment
	for single loads only if an aligned load is cheaper than
	an unaligned load.

From-SVN: r223528
2015-05-22 09:08:46 +00:00
Marek Polacek
fd5c817a24 re PR c/47043 (allow deprecating enum values)
PR c/47043
	* c-common.c (handle_deprecated_attribute): Allow CONST_DECL.

	* c-parser.c (c_parser_enum_specifier): Parse and apply enumerator
	attributes.

	* cp-tree.h (build_enumerator): Update declaration.
	* decl.c (build_enumerator): Add attributes parameter.  Call
	cplus_decl_attributes.
	* init.c (constant_value_1): Pass tf_none to mark_used.
	* parser.c (cp_parser_enumerator_definition): Parse attributes and
	pass them down to build_enumerator.
	* pt.c (tsubst_enum): Pass decl attributes to build_enumerator.
	* semantics.c (finish_id_expression): Don't warn_deprecated_use here.

	* doc/extend.texi (Enumerator Attributes): New section.
	Document syntax of enumerator attributes.

	* c-c++-common/attributes-enum-1.c: New test.
	* c-c++-common/attributes-enum-2.c: New test.
	* g++.dg/cpp0x/attributes-enum-1.C: New test.
	* g++.dg/cpp1y/attributes-enum-1.C: New test.

Co-Authored-By: Edward Smith-Rowland <3dw4rd@verizon.net>

From-SVN: r223527
2015-05-22 09:07:31 +00:00
Richard Biener
afbe632536 tree-vect-loop.c (get_reduction_op): New function.
2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (get_reduction_op): New function.
	(vect_model_reduction_cost): Use it, add reduc_index parameter.
	Make ready for BB reductions.
	(vect_create_epilog_for_reduction): Use get_reduction_op.
	(vectorizable_reduction): Init reduc_index to a valid value.
	Adjust vect_model_reduction_cost call.
	* tree-vect-slp.c (vect_get_constant_vectors): Use the proper
	operand for reduction defaults.  Add SAD_EXPR support.
	Assert we have a neutral op for SLP reductions.
	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
	walking pattern stmt ops only recurse to SSA names.

From-SVN: r223526
2015-05-22 09:00:28 +00:00
Richard Biener
328dc4771b tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace assert with guard, remove check on detected reduction.
2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
	assert with guard, remove check on detected reduction.
	(vect_recog_sad_pattern): Likewise.
	(vect_recog_widen_sum_pattern): Likewise.

From-SVN: r223525
2015-05-22 08:55:59 +00:00
Arnaud Charlet
6333ad3d45 [multiple changes]
2015-05-21  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb (Activate_Atomic_Synchronization): Do not set
	Atomic_Sync_Required for an object renaming declaration.
	* sem_ch8.adb (Analyze_Object_Renaming): Copy Is_Atomic and
	Is_Independent to renaming object.

2015-05-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Diagnose
	various illegalities in iterators over arrays and containers:
	a) New function Get_Cursor_Type, to verify that the cursor is
	not a limited type at the point of iteration.
	b) If the container is a constant, an element_iterator is illegal
	if the container type does not have a Constant_Indexing aspect.
	c) If the iterate function has an in-out controlling parameter,
	the container cannot be a constant object.
	d) Reject additional cases of iterators over a
	discriminant-dependent component of a mutable object.

From-SVN: r223524
2015-05-22 10:52:17 +02:00
Kyrylo Tkachov
44ae5cd22f [AArch64] Add __extension__ and __always_inline__ to crypto intrinsics
* config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
	__always_inline__ attribute.
	(vaesdq_u8): Likewise.
	(vaesmcq_u8): Likewise.
	(vaesimcq_u8): Likewise.
	(vsha1cq_u32): Likewise.
	(vsha1mq_u32): Likewise.
	(vsha1pq_u32): Likewise.
	(vsha1h_u32): Likewise.
	(vsha1su0q_u32): Likewise.
	(vsha1su1q_u32): Likewise.
	(vsha256hq_u32): Likewise.
	(vsha256h2q_u32): Likewise.
	(vsha256su0q_u32): Likewise.
	(vsha256su1q_u32): Likewise.
	(vmull_p64): Likewise.
	(vmull_high_p64): Likewise.

From-SVN: r223523
2015-05-22 08:21:22 +00:00
Trevor Saunders
d87834de87 always define HAVE_peephole
gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* final.c (final_scan_insn): Don't check HAVE_peephole with the
	preprocessor.
	* output.h: Likewise.
	* genconfig.c (main): Alwways define HAVE_peephole.
	* genpeep.c: Don't emit checks of HAVE_peephole.

From-SVN: r223519
2015-05-22 01:04:24 +00:00
Trevor Saunders
692e031294 remove #if HAVE_conditional_move
gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
	check HAVE_conditional_move with the preprocessor.

From-SVN: r223518
2015-05-22 01:04:17 +00:00
Trevor Saunders
759df569f1 always define HAVE_conditional_move
gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_conditional_move.
	* combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
	toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
	is defined.

From-SVN: r223517
2015-05-22 01:04:09 +00:00
Trevor Saunders
3f393fc679 don't compare ARG_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM with the preprocessor
gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
	reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
	and FRAME_POINTER_REGNUM with the preprocessor.

From-SVN: r223516
2015-05-22 01:03:59 +00:00
Trevor Saunders
dfed696157 move default for STACK_PUSH_CODE to defaults.h
gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: Add default for STACK_PUSH_CODE.
	* expr.c: Don't redefine STACK_PUSH_CODE.
	* recog.c: Likewise.

From-SVN: r223515
2015-05-22 01:03:51 +00:00
Trevor Saunders
581edfa33d remove most ifdef STACK_GROWS_DOWNWARD
gcc/c-family/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-cppbuiltin.c (c_cpp_builtins): Use if instead of #if with
	STACK_GROWS_DOWNWARD.

gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
	sched-deps.c: Use if instead of preprocessor checks with
	STACK_GROWS_DOWNWARD.

From-SVN: r223514
2015-05-22 01:03:42 +00:00
Trevor Saunders
62f9f30bfb always define STACK_GROWS_DOWNWARD
gcc/c-family/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-cppbuiltin.c (c_cpp_builtins): Check the value of
	STACK_GROWS_DOWNWARD rather than if it is defined.

gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
	is defined.
	* config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
	* defaults.h: Provide default for STACK_GROWS_DOWNWARD.
	* doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
	* doc/tm.texi: Regenerate.

From-SVN: r223513
2015-05-22 01:03:11 +00:00
GCC Administrator
47d30549f5 Daily bump.
From-SVN: r223512
2015-05-22 00:16:18 +00:00
Sandra Loosemore
a506dee682 simd.exp: Skip all tests if no arm_neon_ok effective target support.
2015-05-21  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.target/arm/simd/simd.exp: Skip all tests if no arm_neon_ok
	effective target support.  If no arm_neon_hw support, do not attempt
	to execute the tests; only compile them.
	* gcc.target/arm/simd/vextf32_1.c: Remove explicit "dg-do run"
	and "dg-require-effective-target arm_neon_ok".
	* gcc.target/arm/simd/vextp16_1.c: Likewise.
	* gcc.target/arm/simd/vextp64_1.c: Likewise.
	* gcc.target/arm/simd/vextp8_1.c: Likewise.
	* gcc.target/arm/simd/vextQf32_1.c: Likewise.
	* gcc.target/arm/simd/vextQp16_1.c: Likewise.
	* gcc.target/arm/simd/vextQp64_1.c: Likewise.
	* gcc.target/arm/simd/vextQp8_1.c: Likewise.
	* gcc.target/arm/simd/vextQs16_1.c: Likewise.
	* gcc.target/arm/simd/vextQs32_1.c: Likewise.
	* gcc.target/arm/simd/vextQs64_1.c: Likewise.
	* gcc.target/arm/simd/vextQs8_1.c: Likewise.
	* gcc.target/arm/simd/vextQu16_1.c: Likewise.
	* gcc.target/arm/simd/vextQu32_1.c: Likewise.
	* gcc.target/arm/simd/vextQu64_1.c: Likewise.
	* gcc.target/arm/simd/vextQu8_1.c: Likewise.
	* gcc.target/arm/simd/vexts16_1.c: Likewise.
	* gcc.target/arm/simd/vexts32_1.c: Likewise.
	* gcc.target/arm/simd/vexts64_1.c: Likewise.
	* gcc.target/arm/simd/vexts8_1.c: Likewise.
	* gcc.target/arm/simd/vextu16_1.c: Likewise.
	* gcc.target/arm/simd/vextu32_1.c: Likewise.
	* gcc.target/arm/simd/vextu64_1.c: Likewise.
	* gcc.target/arm/simd/vextu8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16p8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16qp8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16qs8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16qu8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16s8_1.c: Likewise.
	* gcc.target/arm/simd/vrev16u8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32p16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32p8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qp16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qp8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qs16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qs8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qu16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32qu8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32s16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32s8_1.c: Likewise.
	* gcc.target/arm/simd/vrev32u16_1.c: Likewise.
	* gcc.target/arm/simd/vrev32u8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64f32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64p16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64p8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qf32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qp16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qp8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qs16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qs32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qs8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qu16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qu32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64qu8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64s16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64s32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64s8_1.c: Likewise.
	* gcc.target/arm/simd/vrev64u16_1.c: Likewise.
	* gcc.target/arm/simd/vrev64u32_1.c: Likewise.
	* gcc.target/arm/simd/vrev64u8_1.c: Likewise.
	* gcc.target/arm/simd/vtrnf32_1.c: Likewise.
	* gcc.target/arm/simd/vtrnp16_1.c: Likewise.
	* gcc.target/arm/simd/vtrnp8_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqf32_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqp16_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqp8_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqs16_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqs32_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqs8_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqu16_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqu32_1.c: Likewise.
	* gcc.target/arm/simd/vtrnqu8_1.c: Likewise.
	* gcc.target/arm/simd/vtrns16_1.c: Likewise.
	* gcc.target/arm/simd/vtrns32_1.c: Likewise.
	* gcc.target/arm/simd/vtrns8_1.c: Likewise.
	* gcc.target/arm/simd/vtrnu16_1.c: Likewise.
	* gcc.target/arm/simd/vtrnu32_1.c: Likewise.
	* gcc.target/arm/simd/vtrnu8_1.c: Likewise.
	* gcc.target/arm/simd/vuzpf32_1.c: Likewise.
	* gcc.target/arm/simd/vuzpp16_1.c: Likewise.
	* gcc.target/arm/simd/vuzpp8_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqf32_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqp16_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqp8_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqs16_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqs32_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqs8_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqu16_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqu32_1.c: Likewise.
	* gcc.target/arm/simd/vuzpqu8_1.c: Likewise.
	* gcc.target/arm/simd/vuzps16_1.c: Likewise.
	* gcc.target/arm/simd/vuzps32_1.c: Likewise.
	* gcc.target/arm/simd/vuzps8_1.c: Likewise.
	* gcc.target/arm/simd/vuzpu16_1.c: Likewise.
	* gcc.target/arm/simd/vuzpu32_1.c: Likewise.
	* gcc.target/arm/simd/vuzpu8_1.c: Likewise.
	* gcc.target/arm/simd/vzipf32_1.c: Likewise.
	* gcc.target/arm/simd/vzipp16_1.c: Likewise.
	* gcc.target/arm/simd/vzipp8_1.c: Likewise.
	* gcc.target/arm/simd/vzipqf32_1.c: Likewise.
	* gcc.target/arm/simd/vzipqp16_1.c: Likewise.
	* gcc.target/arm/simd/vzipqp8_1.c: Likewise.
	* gcc.target/arm/simd/vzipqs16_1.c: Likewise.
	* gcc.target/arm/simd/vzipqs32_1.c: Likewise.
	* gcc.target/arm/simd/vzipqs8_1.c: Likewise.
	* gcc.target/arm/simd/vzipqu16_1.c: Likewise.
	* gcc.target/arm/simd/vzipqu32_1.c: Likewise.
	* gcc.target/arm/simd/vzipqu8_1.c: Likewise.
	* gcc.target/arm/simd/vzips16_1.c: Likewise.
	* gcc.target/arm/simd/vzips32_1.c: Likewise.
	* gcc.target/arm/simd/vzips8_1.c: Likewise.
	* gcc.target/arm/simd/vzipu16_1.c: Likewise.
	* gcc.target/arm/simd/vzipu32_1.c: Likewise.
	* gcc.target/arm/simd/vzipu8_1.c: Likewise.

From-SVN: r223508
2015-05-21 19:02:18 -04:00