Commit Graph

138639 Commits

Author SHA1 Message Date
Richard Biener
effb52dae5 tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern member.
2015-05-22  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
	member.
	* tree-vect-loop.c (vect_analyze_loop_operations): Look at
	patterns when determining whether SLP is pure.
	(vect_is_slp_reduction): Remove check for pattern stmts.
	(vect_is_simple_reduction_1): Remove dead code.
	* tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
	(vect_get_and_check_slp_defs): Pass in the stmt number.
	Allow the first def in a reduction to be not a pattern stmt when
	the rest of the stmts def are patterns.
	(vect_build_slp_tree_1): Allow tcc_expression codes like
	SAD_EXPR and DOT_PROD_EXPR.
	(vect_build_slp_tree): Adjust.
	(vect_analyze_slp): Refactor and move BB vect error message ...
	(vect_slp_analyze_bb_1): ... here.

From-SVN: r223574
2015-05-22 13:52:58 +00:00
Arnaud Charlet
088c7e1b0c [multiple changes]
2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Constrain_Concurrent): If the context is a
	type declaration, generate an Itype_Reference for the anonymous
	subtype, to force elaboration at this point in gigi.

2015-05-22  Gary Dismukes  <dismukes@adacore.com>

	* layout.adb, einfo.ads, sem_ch12.adb, freeze.adb, sem_util.ads,
	exp_ch4.adb, sem_ch6.adb: Minor reformatting and typo fixes.

From-SVN: r223573
2015-05-22 15:33:18 +02:00
Aldy Hernandez
f8d851c6f7 tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P for CSWTCH temporary.
* tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
	for CSWTCH temporary.

From-SVN: r223572
2015-05-22 13:31:29 +00:00
Nathan Sidwell
e55ffe1001 fix to use rvalue where expected
From-SVN: r223571
2015-05-22 13:22:19 +00:00
Arnaud Charlet
c42e1b178c Minor reformatting.
From-SVN: r223570
2015-05-22 15:19:46 +02:00
Ed Schonberg
e6b3f5ba80 sem_res.adb (Resolve_Actuals): If the call is to an overridden operation...
2015-05-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): If the call is to an overridden
	operation, replace the names of the actuals in named associations
	with the names of the actuals of the subprogram that is eventually
	executed. The names of the formals and the defaults can differ
	between the two operations when they are operations of a formal
	derived type.

From-SVN: r223569
2015-05-22 15:17:54 +02:00
Arnaud Charlet
d992a425b7 [multiple changes]
2015-05-22  Bob Duff  <duff@adacore.com>

	* a-convec.ads, a-convec.adb (Append): Check for fast path. Split
	out slow path into separate procedure. Inline Append. Fast path
	now avoids calling Insert.
	(Finalize): Do the busy checking last, so the container gets emptied.
	(Insert, Insert_Space): Remove redundancy.

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

	* switch-c.adb (Scan_Front_End_Switches): Insist on -gnatc
	for -gnatd.V.

From-SVN: r223567
2015-05-22 15:09:47 +02:00
Arnaud Charlet
84238eb02a gnatvsn.ads: Minor code reorg to remember more easily to update variables.
* gnatvsn.ads: Minor code reorg to remember more easily to update
	variables.

From-SVN: r223566
2015-05-22 15:06:34 +02:00
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