Commit Graph

122959 Commits

Author SHA1 Message Date
Arnaud Charlet
6c2e4047fa [multiple changes]
2013-04-11  Matthew Heaney  <heaney@adacore.com>

	* a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb ("="): Increment
	lock counts before entering loop.
	(Find): Ditto.
	(Is_Sorted, Merge, Sort): Ditto.
	(Reverse_Find): Ditto.
	(Splice_Internal): Internal operation to refactor splicing logic.
	(Splice): Some logic moved into Splice_Internal.

2013-04-11  Johannes Kanig  <kanig@adacore.com>

	* adabkend.adb (Scan_Compiler_Arguments): Do not call
	Set_Output_Object_File_Name in Alfa_Mode
	* gnat1drv.adb (Adjust_Global_Switches): Take Alfa_Mode into account.
	* opt.ads: Fix documentation.

From-SVN: r197771
2013-04-11 14:13:49 +02:00
Yvan Roux
dff5c59148 gcconfig.h (AARCH64): New macro (defined only if __aarch64__).
2013-03-16  Yvan Roux <yvan.roux@linaro.org>

        * include/private/gcconfig.h (AARCH64): New macro (defined only if
	__aarch64__).
	* include/private/gcconfig.h (mach_type_known):
	Update comment adding ARM AArch64 target.
	* include/private/gcconfig.h (NOSYS, mach_type_known,CPP_WORDSZ,
	MACH_TYPE, ALIGNMENT, HBLKSIZE, OS_TYPE, LINUX_STACKBOTTOM,
	USE_GENERIC_PUSH_REGS, DYNAMIC_LOADING, DATASTART, DATAEND,
	STACKBOTTOM): Define for AArch64.

From-SVN: r197770
2013-04-11 14:06:04 +02:00
Richard Biener
4ba5ea117a re PR tree-optimization/56878 (Issue with candidate choice in vect_gen_niters_for_prolog_loop.)
2013-04-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56878
	* tree-flow.h (outermost_invariant_loop_for_expr): Declare.
	* tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
	New function.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Prefer to align the DR with the most invariant base address.

From-SVN: r197769
2013-04-11 11:21:18 +00:00
Robert Dewar
983a3d80db sem_res.adb: Minor code reorganization and comment fixes.
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor code reorganization and comment fixes.
	* sem_type.adb: Minor reformatting.

From-SVN: r197768
2013-04-11 12:52:33 +02:00
Arnaud Charlet
1486a00e3b [multiple changes]
2013-04-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Process_Transient_Object): Add new
	local variable Fin_Call. Remove and explain ??? comment. Use the
	Actions of logical operators "and then" and "or else" to insert
	the generated finalization call.

2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_rm.texi: Fix typo.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Minor reformatting.

From-SVN: r197767
2013-04-11 12:49:20 +02:00
Arnaud Charlet
fc142f6327 [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* atree.h: Add declarations for Flag255-Flag289 Fix declaration
	of Field30 (was wrong, but no effect, since not yet referenced by
	back end) Add declarations for Field31-Field35 Add declarations
	for Node31-Node35.
	* einfo.ads, einfo.adb (Has_Invariants): No longer applies to
	procedures.
	(Has_Predicates): No longer applies to functions.
	(Is_Predicate_Function): New flag.
	(Is_Predicate_Function_M): New flag.
	(Is_Invariant_Procedure): New flag.
	(Predicate_Function_M): New function.
	(Set_Predicate_Function_M): New procedure.
	* exp_ch11.adb (Expand_N_Raise_Expression): Take care of special
	case of appearing in predicate used for membership test.
	* exp_ch3.adb (Insert_Component_Invariant_Checks): Set
	Is_Invariant_Procedure flag.
	* exp_ch4.adb (Expand_Op_In): Call special predicate function
	that takes care of raise_expression nodes in the predicate.
	* exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for
	membership case.
	* sem_ch13.adb (Build_Predicate_Functions): New name for
	Build_Predicate_Function.  Major rewrite to take care of raise
	expression in predicate for membership tests.
	* sem_res.adb (Resolve_Actuals): Include both predicate functions
	in defense against infinite predicate function loops.
	* sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag.

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb: Minor reformatting.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb: Generate reference for component of anonymous
	access type.

From-SVN: r197766
2013-04-11 12:45:11 +02:00
Arnaud Charlet
2602b64e3a [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* stand.ads: Minor reformatting.

2013-04-11  Matthew Heaney  <heaney@adacore.com>

	* a-convec.adb, a-coinve.adb, a-cobove.adb ("="): Increment lock
	counts before entering loop.
	(Find, Find_Index): Ditto.
	(Is_Sorted, Merge, Sort): Ditto.
	(Reverse_Find, Reverse_Find_Index): Ditto.

From-SVN: r197765
2013-04-11 12:41:49 +02:00
Robert Dewar
c8d636509a exp_ch11.ads, [...] (Expand_N_Raise_Expression): New procedure.
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch11.ads, exp_ch11.adb (Expand_N_Raise_Expression): New procedure.
	* exp_util.adb (Insert_Actions): Add entry for N_Raise_Expression.
	* expander.adb: Add call to Expand_N_Raise_Expression.
	* par-ch11.adb (P_Raise_Expression): New procedure.
	* par-ch4.adb (P_Relation): Handle Raise_Expression.
	* par.adb (P_Raise_Expression): New procedure.
	* sem.adb: Add handling for N_Raise_Expression.
	* sem_ch11.ads, sem_ch11.adb (Analyze_Raise_Expression): New procedure.
	* sem_res.adb (Resolve): Add handling for N_Raise_Expression.
	* sinfo.ads, sinfo.adb (N_Raise_Expression): New node.
	* sprint.adb (Sprint_Node_Actual): Add handling for N_Raise_Expression.
	* stand.ads (Any_Type): Document use with N_Raise_Expression.

From-SVN: r197764
2013-04-11 12:39:15 +02:00
Arnaud Charlet
845f06e288 [multiple changes]
2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Remove section "The Development Environments"
	now that all predefined attributes are documented, including
	those in package IDE.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Preserve parent link in copy of expression.

From-SVN: r197763
2013-04-11 12:37:21 +02:00
Arnaud Charlet
761f7dcb77 [multiple changes]
2013-04-11  Vincent Celier  <celier@adacore.com>

	* projects.texi: Complete rewrite of the subsection Attributes
	in section "Project file Reference".

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.

From-SVN: r197762
2013-04-11 12:36:09 +02:00
Robert Dewar
68bab0fd1d exp_ch4.adb (Expand_Concatenate): Remove wrapping in expression-with-actions node.
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Remove wrapping in
	expression-with-actions node. No longer needed given fix to
	sem_prag and caused loss of some useful warnings.
	* sem.ads: Minor reformatting.
	* sem_prag.adb (Check_Disabled): Removed, to be replaced by not
	Check_Enabled. These two routines were curiously incompatible
	causing confusion.
	(Analyze_Pragma, case Check): Make sure we do
	not expand the string argument if the check is disabled. Avoid
	use of Check_Disabled, which resulted in missing analysis in
	some cases.
	* sem_prag.ads (Check_Disabled): Removed, to be replaced by not
	Check_Enabled. These two routines were curiously incompatible
	causing confusion.

From-SVN: r197761
2013-04-11 12:23:56 +02:00
Arnaud Charlet
294f5d825f [multiple changes]
2013-04-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Process_Transient_Object): Use
	an unchecked conversion when associating a transient controlled
	object with its "hook".

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case
	Preelaborable_Initialization): The pragma is legal if it comes
	from an aspect on the private view of the type, even though its
	analysis point takes place later at the freeze point.

From-SVN: r197760
2013-04-11 12:22:08 +02:00
Arnaud Charlet
533369aac0 [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Minor reformatting.

2013-04-11  Yannick Moy  <moy@adacore.com>

	* ali-util.adb (Read_Withed_ALIs): Do not consider it an error to
	read ALI files with No_Object=True in Alfa mode.
	* gnat1drv.adb: Set appropriately Back_End_Mode in Alfa mode, whether
	this is during frame condition generation of translation to Why.

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor code reorganization
	* types.ads: Minor reformatting.

From-SVN: r197759
2013-04-11 12:20:34 +02:00
Arnaud Charlet
3a8e3f636a [multiple changes]
2013-04-11  Johannes Kanig  <kanig@adacore.com>

	* opt.ads New global boolean Frame_Condition_Mode to avoid
	referring to command line switch.
	* gnat1drv.adb (Gnat1drv) set frame condition mode when -gnatd.G
	is present, and disable Code generation in that case. Disable
	ALI file generation when switch is *not* present.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): Perform the
	pre-analysis on a copy of the expression, to prevent downstream
	visbility issues involving operators and instantiations.

From-SVN: r197758
2013-04-11 12:18:47 +02:00
Johannes Kanig
0213fb4e3c debug.adb: Reservation and documentation for -gnatd.G switch.
2013-04-11  Johannes Kanig  <kanig@adacore.com>

	* debug.adb: Reservation and documentation for -gnatd.G switch.
	* gnat1drv.adb (Adjust_Global_Switches) Take into account -gnatd.G
	switch, and set ALI file generation accordingly.

From-SVN: r197757
2013-04-11 12:17:18 +02:00
Robert Dewar
0088ba92b6 exp_ch4.adb, [...]: Minor reformatting.
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb, exp_dist.adb: Minor reformatting.
	* gnat_rm.texi, gnat_ugn.texi: -020 Add documentation clarifying that
	check names introduced with pragma Check_Name are suppressed by -gnatp.

From-SVN: r197756
2013-04-11 12:13:47 +02:00
Vincent Celier
b671e31b48 gnat_ugn.texi, [...]: Move chapter "Tools Supporting Project Files" from projects.texi to gnat_ugn.texi.
2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi, projects.texi: Move chapter "Tools Supporting Project
	Files" from projects.texi to gnat_ugn.texi.

From-SVN: r197755
2013-04-11 12:11:57 +02:00
Arnaud Charlet
ddd38fc154 * gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r197754
2013-04-11 11:53:54 +02:00
Arnaud Charlet
8b1011c0c3 [multiple changes]
2013-04-11  Yannick Moy  <moy@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Allow missing body in Alfa
	mode.

2013-04-11  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator): Detect the
	allocation of an anonymous controlled object where the type of
	the context is named. Use the pool and finalization master of
	the named access type to allocate the object.

2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Remove most mentions of gprbuild.
	* projects.texi: Remove all mentions of asociative array
	attributes.

From-SVN: r197753
2013-04-11 11:51:54 +02:00
Arnaud Charlet
5b75bf576f [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb, sem_attr.adb, gnat1drv.adb, prj-makr.adb,
	opt.ads, sem_ch13.adb: Minor reformatting.
	* debug.adb: Minor comment fix (remove junk .I doc).

2013-04-11  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.ads, exp_dist.adb, exp_dist.ads (Rtsfind.PCS_Version, case
	PolyORB): Bump to 6.
	(Exp_Dist.PolyORB_Support): Replace TC_Build with
	Build_Complex_TC.

From-SVN: r197752
2013-04-11 11:49:40 +02:00
Arnaud Charlet
303fbb20de [multiple changes]
2013-04-11  Arnaud Charlet  <charlet@adacore.com>

	* debug.adb, sem_prag.adb, par-ch2.adb, sem_attr.adb, gnat1drv.adb,
	exp_disp.adb, opt.ads, sem_ch13.adb (Relaxed_RM_Semantics): New flag.
	Enable this flag in CodePeer mode, and also via -gnatd.M.
	Replace some uses of CodePeer_Mode by Relaxed_RM_Semantics.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Check_Constrained_Object): If a subtype is created
	from the renamed object in an object renaming declaration with
	an unconstrained nominal subtype, freeze the created subtype at
	once, to prevent order of elaboration issues in the backend.

2013-04-11  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Aggr_Size_OK): Refine setting of Max_Aggr_Size
	in particular in CodePeer mode.

2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Add documentation for backup copies of project
	files for gnatname.

From-SVN: r197751
2013-04-11 11:46:54 +02:00
Arnaud Charlet
165bdb4b49 [multiple changes]
2013-04-11  Tristan Gingold  <gingold@adacore.com>

	* gnat_rm.texi: Add Detect_BLocking in the ravenscar profile
	pragma list.

2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnatname.adb (Scan_Args): Recognize new switch --no-backup
	(Usage): Add line for --no-backup.
	* opt.ads (No_Nackup): New Boolean variable, initialized to False.
	* prj-makr.adb (Initialize): Create a backup for an existing
	project file if gnatname is not invoked with --no-backup.

From-SVN: r197750
2013-04-11 11:41:26 +02:00
Arnaud Charlet
81f6cd563f [multiple changes]
2013-04-11  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb: Minor code improvement: replace various calls to
	Make_If_Statement in expansion with Make_Implicit_If_Statement.

2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>

	* ali.adb: Fix minor typo.

From-SVN: r197749
2013-04-11 11:40:08 +02:00
Arnaud Charlet
28270211f0 [multiple changes]
2013-04-11  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Find_Enclosing_Context): Add missing case of
	N_Procedure_Call_Statement.

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Minor comment fix.

From-SVN: r197748
2013-04-11 11:39:15 +02:00
Arnaud Charlet
6b670dcfa7 [multiple changes]
2013-04-11  Johannes Kanig  <kanig@adacore.com>

	* debug.adb: Remove comment for -gnatd.G.

2013-04-11  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb (Expand_Record_Equality.Suitable_Element):
	Remove recursive routine, replace with...
	(Expand_Record_Equality.Element_To_Compare): New subroutine,
	implement iterative search for next element to compare.
	Add explanatory comment in the tagged case.

From-SVN: r197747
2013-04-11 11:38:07 +02:00
Ed Schonberg
ac7d724dc0 sem_ch5.adb: remove spurious warning from non-empty loop.
2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: remove spurious warning from non-empty loop.
	* sem_ch8.adb (Enclosing_Instance): Make public to other routines
	in the package, in order to suppress redundant semantic checks
	on subprogram renamings in nested instantiations.

From-SVN: r197746
2013-04-11 11:35:46 +02:00
Arnaud Charlet
8fde064e1a [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* errout.ads: Minor reformatting.
	* sem_eval.adb (Why_Not_Static): Now issues continuation messages
	(Why_Not_Static): Test for aggregates behind string literals.
	* sem_eval.ads (Why_Not_Static): Now issues continuation messages.

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_Concatenation): Wrap expansion in
	Expressions_With_Actions.

2013-04-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Base_Types_Match): For an actual type in an
	instance, the base type may itself be a subtype, so find true
	base type to determine compatibility.

From-SVN: r197745
2013-04-11 11:34:38 +02:00
Arnaud Charlet
354c3840c8 [multiple changes]
2013-04-11  Robert Dewar  <dewar@adacore.com>

	* s-osprim-mingw.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb.
	makeutl.adb, sem_ch8.adb: Minor reformatting.

2013-04-11  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Minor fixes for VMS.
	* ug_words: Minor addition: -gnato? => /OVERFLOW_CHECKS=?.

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* usage.adb (Usage): Minor edit to -gnatW message

2013-04-11  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb (Expand_N_Aggregate): Add circuit for handling
	others for string literal case. Also add big ??? comment about
	this new code, which should be redundant, but is not.
	* sem_eval.adb (Eval_Concatenation): Handle non-static case
	properly (Eval_String_Literal): Handle non-static literal properly

From-SVN: r197744
2013-04-11 11:31:53 +02:00
Senthil Kumar Selvaraj
f0defe58a5 opts.c (common_handle_option): Fix formatting and add FALLTHRU comment.
* opts.c (common_handle_option): Fix formatting and add FALLTHRU
	comment.

From-SVN: r197743
2013-04-11 11:07:44 +02:00
Paolo Carlini
f06a1142fa re PR c++/54216 (Missing diagnostic for ill-formed anonymous enum declarations)
/cp
2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54216
	* parser.c (cp_parser_enum_specifier): Check for empty
	anonymous enums and anonymous scoped enums.

/testsuite
2013-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54216
	* g++.dg/cpp0x/enum26.C: New.
	* g++.old-deja/g++.pt/mangle1.C: Adjust.

From-SVN: r197742
2013-04-11 09:01:24 +00:00
James Greenhalgh
d07458be3e [PATCH, AARCH64] Fix unrecognizable insn issue with vcond against 0.0f
gcc/
	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
	floating-point vector comparisons against 0.

gcc/testsuite/
   	* gcc.target/aarch64/vect-fcm.x: Add check for zero forms of
	inverse operands.
	* gcc.target/aarch64/vect-fcm-eq-d.c: Check that new zero form
	loop is vectorized.
   	* gcc.target/aarch64/vect-fcm-eq-f.c: Likewise.
   	* gcc.target/aarch64/vect-fcm-ge-d.c: Check that new zero form
	loop is vectorized and that the correct instruction is generated.
   	* gcc.target/aarch64/vect-fcm-ge-f.c: Likewise.
   	* gcc.target/aarch64/vect-fcm-gt-d.c: Likewise.
   	* gcc.target/aarch64/vect-fcm-gt-f.c: Likewise.

From-SVN: r197741
2013-04-11 08:58:34 +00:00
Jakub Jelinek
146b8692e3 re PR tree-optimization/56899 (Wrong constant folding)
PR tree-optimization/56899
	* fold-const.c (extract_muldiv_1): Apply distributive law
	only if TYPE_OVERFLOW_WRAPS (ctype).

	* gcc.c-torture/execute/pr56899.c: New test.

From-SVN: r197692
2013-04-11 09:30:20 +02:00
Bin Cheng
b8578ff77f re PR rtl-optimization/56124 (Redundant reload for loading from memory)
PR target/56124
	* ira-costs.c (scan_one_insn): Check whether the source rtx of
	loading has side effect.

From-SVN: r197691
2013-04-11 03:55:14 +00:00
GCC Administrator
b0c4c179ae Daily bump.
From-SVN: r197687
2013-04-11 00:17:07 +00:00
Janne Blomqvist
524af0d6c7 Replace enum gfc_try with bool type.
2013-04-11  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
        * arith.c: Replace gfc_try with bool type.
        * array.c: Likewise.
        * check.c: Likewise.
        * class.c: Likewise.
        * cpp.c: Likewise.
        * cpp.h: Likewise.
        * data.c: Likewise.
        * data.h: Likewise.
        * decl.c: Likewise.
        * error.c: Likewise.
        * expr.c: Likewise.
        * f95-lang.c: Likewise.
        * interface.c: Likewise.
        * intrinsic.c: Likewise.
        * intrinsic.h: Likewise.
        * io.c: Likewise.
        * match.c: Likewise.
        * match.h: Likewise.
        * module.c: Likewise.
        * openmp.c: Likewise.
        * parse.c: Likewise.
        * parse.h: Likewise.
        * primary.c: Likewise.
        * resolve.c: Likewise.
        * scanner.c: Likewise.
        * simplify.c: Likewise.
        * symbol.c: Likewise.
        * trans-intrinsic.c: Likewise.
        * trans-openmp.c: Likewise.
        * trans-stmt.c: Likewise.
        * trans-types.c: Likewise.

From-SVN: r197682
2013-04-11 00:36:58 +03:00
Steven Bosscher
0ea8a6f9c7 sparc.c: Include tree-pass.h.
* config/sparc/sparc.c: Include tree-pass.h.
	(TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
	(sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
	head of file.  Change return type.  Split off gate function.
	(sparc_gate_work_around_errata): New function.
	(pass_work_around_errata): New pass definition.
	(insert_pass_work_around_errata) New pass insert definition to
	insert pass_work_around_errata just after delayed-branch scheduling.
	(sparc_option_override): Insert the pass.
	* config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.

From-SVN: r197681
2013-04-10 21:03:44 +00:00
David S. Miller
89deeb3b7e Fix sparc assembler specs for supersparc and hypersparc.
gcc/

	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
	or -mcpu=hypersparc.

From-SVN: r197680
2013-04-10 12:54:22 -07:00
David S. Miller
42e37616ec Improve cstore code generation on 64-bit sparc.
One major suboptimal area of the sparc back end is cstore generation
on 64-bit.

Due to the way arguments and return values of functions must be
promoted, the ideal mode for cstore's result would be DImode.

But this hasn't been done because of a fundamental limitation
of the cstore patterns.  They require a fixed mode be used for
the boolean result value.

I've decided to work around this by building a target hook which
specifies the type to use for conditional store results, and then I
use a special predicate for operans 0 in the cstore expanders so
that they still match even when we use DImode.

The default version of the target hook just does what it does now,
so no other target should be impacted by this at all.

Regstrapped on 32-bit sparc-linux-gnu and I've run the testsuite
with "-m64" to validate the 64-bit side.

gcc/

	* target.def (cstore_mode): New hook.
	* target.h: Include insn-codes.h
	* targhooks.c: Likewise.
	(default_cstore_mode): New function.
	* targhooks.h: Declare it.
	* doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
	* doc/tm.texi: Rebuild.
	* expmed.c (emit_cstore): Obtain cstore boolean result mode using
	target hook, rather than inspecting the insn_data.
	* config/sparc/sparc.c (sparc_cstore_mode): New function.
	(TARGET_CSTORE_MODE): Redefine.
	(emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
	result patterns.
	* config/sparc/predicates.md (cstore_result_operand): New special
	predicate.
	* config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
	Use it for operand 0.
	(*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
	(*snesi_special): Likewise.
	(*snesi_zero): Likewise.
	(*seqsi_zero): Likewise.
	(*sltu_insn): Likewise.
	(*sgeu_insn): Likewise.
	(*seqdi_special): Make operand 0 and comparison operation be of
	DImode.
	(*snedi_special): Likewise.
	(*snedi_special_vis3): Likewise.
	(*neg_snesi_zero): Rename to *neg_snesisi_zero.
	(*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
	(*snesi_zero_extend): Delete, covered by 'P' mode iterator.
	(*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
	(*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
	(*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
	(*sltu_extend_sp64): Likewise.
	(*neg_sltu_insn): Rename to *neg_sltusi_insn.
	(*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
	(*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
	(*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
	(*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.

gcc/testsuite/

	* gcc.target/sparc/setcc-4.c: New test.
	* gcc.target/sparc/setcc-5.c: New test.

From-SVN: r197679
2013-04-10 12:41:57 -07:00
Yufeng Zhang
95ca411e04 aarch64.c (aarch64_print_extension): New function.
* config/aarch64/aarch64.c (aarch64_print_extension): New function.
	(aarch64_start_file): Use the new function.

From-SVN: r197677
2013-04-10 17:22:02 +00:00
Senthil Kumar Selvaraj
6782438df7 common.opt: Add -gdwarf.
* common.opt: Add -gdwarf.
	* opts.c (common_handle_option): Handle it.
	* gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r197675
2013-04-10 10:47:55 -04:00
Richard Biener
bb313b932b passes.c (execute_todo): Do not call ggc_collect conditional here.
2013-04-10  Richard Biener  <rguenther@suse.de>

	* passes.c (execute_todo): Do not call ggc_collect conditional here.
	(execute_one_ipa_transform_pass): But unconditionally here.
	(execute_one_pass): And here.
	(init_optimization_passes): Remove reload pass.
	* tree-pass.h (TODO_ggc_collect): Remove.
	(pass_reload): Likewise.
	* ira.c (do_reload): Merge into ...
	(ira): ... this.
	(rest_of_handle_reload): Remove.
	(pass_reload): Likewise.
	* config/i386/i386.c (ix86_option_override): Refer to ira instead
	of reload for vzeroupper pass placement.
	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
	and todo_flags_finish of all passes.

	* g++.dg/pr55604.C: Use -fdump-rtl-ira.

From-SVN: r197671
2013-04-10 11:33:31 +00:00
Richard Biener
793d9a16a2 tree-vectorizer.h (struct _slp_oprnd_info): Remove first_const_oprnd field, rename first_def_type to first_op_type.
2013-04-10  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (struct _slp_oprnd_info): Remove
	first_const_oprnd field, rename first_def_type to first_op_type.
	* tree-vect-slp.c (vect_create_oprnd_info): Adjust.
	(vect_get_and_check_slp_defs): Always use the type of the
	operand.  Allow mixed vect_external_def, vect_constant_def types.
	(vect_get_constant_vectors): Handle mixed vect_external_def,
	vect_constant_def types.

	* gcc.dg/vect/slp-39.c: New testcase.

From-SVN: r197669
2013-04-10 10:40:33 +00:00
Joern Rennecke
ee8a9b7b50 re PR tree-optimization/55524 (If fnma exists but not fms, convert_mult_to_fma should prefer to former over the latter.)
gcc:
2013-04-10  Joern Rennecke <joern.rennecke@embecosm.com>

        PR tree-optimization/55524
        * tree-ssa-math-opts.c
        (convert_mult_to_fma): Don't use an fms construct
        when we don't have an fms operation, but fnma, and it looks
        likely that we'll be able to use the latter.

gcc/testsuite:
2013-04-10  Joern Rennecke <joern.rennecke@embecosm.com>

        PR tree-optimization/55524
        * gcc.target/epiphany/fnma-1.c: New test.

From-SVN: r197668
2013-04-10 10:54:25 +01:00
Zhouyi Zhou
6957a6f6f9 cif-code.def (OVERWRITABLE): Correct the comment for overwritable function.
2013-04-10  Zhouyi Zhou <yizhouzhou@ict.ac.cn>

	* cif-code.def (OVERWRITABLE): Correct the comment for overwritable
	function.
	* ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
	inline fail caused by overwritable functions.

	* gcc.dg/tree-ssa/inline-11.c: New test

From-SVN: r197667
2013-04-10 09:22:04 +00:00
Chung-Ju Wu
34ab4a5b70 combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out unnecessary bits in the constant power of two case.
2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
	unnecessary bits in the constant power of two case.

From-SVN: r197666
2013-04-10 09:12:30 +00:00
Richard Biener
abf9bfbc31 tree-vect-slp.c (vect_get_and_check_slp_defs): Remove broken code swapping operands.
2013-04-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
	broken code swapping operands.
	(vect_build_slp_tree): Do not compute load permutations here.
	(vect_analyze_slp_instance): Compute load permutations here,
	after building the SLP tree.

From-SVN: r197665
2013-04-10 08:20:07 +00:00
Christian Bruel
f408477e6d sh.md (barrier_align): Use next/prev_active_insn instead of next/prev_real_insn.
*  config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
of next/prev_real_insn.

From-SVN: r197664
2013-04-10 09:52:00 +02:00
Chung-Ju Wu
4b1d419827 MAINTAINERS (Write After Approval): Add myself.
2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r197663
2013-04-10 07:02:32 +00:00
Jakub Jelinek
f7e8cd25dd re PR c++/56895 (ICE: unexpected expression of kind arrow_expr)
PR c++/56895
	* typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae
	first before calling maybe_constant_value for warn_for_div_by_zero
	or invalid shift count warning purposes.

	* g++.dg/template/arrow3.C: New test.

From-SVN: r197660
2013-04-10 08:33:26 +02:00
GCC Administrator
13aac201ba Daily bump.
From-SVN: r197658
2013-04-10 00:16:50 +00:00