Commit Graph

103994 Commits

Author SHA1 Message Date
Changpeng Fang
6a08ffca63 Implementation of the pipeline description for Bulldozer (bdver1)
* gcc/config/i386/bdver1.md: New file.
	* gcc/config/i386/i386.md (include "bdver1.md"): Invoke the
	pipeline description for bdver1.
	(x86_sahf_1): Add "bdver1_decode" attribute.
	(*cmpfp_i_mixed): Likewise.
	(*cmpfp_i_sse): Likewise.
	(*cmpfp_i_i387): Likewise.
	(*cmpfp_iu_mixed): Likewise.
	(*cmpfp_iu_sse): Likewise.
	(*cmpfp_iu_387): Likewise.
	(*swap<mode>,*swap<mode>_1): Likewise.
	(fixuns_trunc<mode>hi2): Likewise.
	(fix_trunc<mode>si_sse): Likewise.
	(x86_fnstcw_1): Likewise.
	(x86_fldcw_1): Likewise.
	(*floatsi<mode>2_vector_mixed_with_temp): Likewise.
	(*floatsi<mode>2_vector_mixed): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
	(*floatsi<mode>2_vector_sse_with_temp): Likewise.
	(*floatsi<mode>2_vector_sse): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
	(*mul<mode>3_1): Likewise.
	(*mulsi3_1_zext): Likewise.
	(*mulhi3_1): Likewise.
	(*mulqi3_1): Likewise.
	(*<u>mul<mode><dwi>3_1): Likewise.
	(*<u>mulqihi3_1): Likewise.
	(*<s>muldi3_highpart_1): Likewise.
	(*<s>mulsi3_highpart_1): Likewise.
	(*<s>mulsi3_highpart_zext): Likewise.
	(x86_64_shld): Likewise.
	(x86_shld): Likewise.
	(x86_64_shrd): Likewise.
	(x86_shrd): Likewise.
	(sqrtxf2): Likewise.
	(sqrt_extend<mode>xf2_i387): Likewise.
	(*sqrt<mode>2_sse): Likewise.
	* gcc/config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
	(sse_cvtsi2ssq): Likewise.
	(sse_cvtss2si): Likewise.
	(sse_cvtss2si_2): Likewise.
	(sse_cvtss2siq): Likewise.
	(sse_cvtss2siq_2): Likewise.
	(sse_cvttss2si): Likewise.
	(sse_cvttss2siq): Likewise.
	(sse2_cvtpi2pd): Likewise.
	(sse2_cvttpd2pi): Likewise.
	(sse2_cvtsi2sd): Likewise.
	(sse2_cvtsi2sdq): Likewise.
	(sse2_cvtsd2si): Likewise.
	(sse2_cvtsd2si_2): Likewise.
	(sse2_cvtsd2siq): Likewise.
	(sse2_cvtsd2siq_2): Likewise.
	(sse2_cvttsd2si): Likewise.
	(sse2_cvttsd2siq): Likewise.
	(*sse2_cvtpd2dq): Likewise.
	(*sse2_cvttpd2dq): Likewise.
	(sse2_cvtsd2ss): Likewise.
	(sse2_cvtss2sd): Likewise.
	(*sse2_cvtpd2ps): Likewise.
	(sse2_cvtps2pd): Likewise.

From-SVN: r165853
2010-10-22 19:07:52 +00:00
Richard Guenther
07db7d35a9 re PR tree-optimization/46137 (g++.dg/torture/pr45877.C FAILs with -fno-tree-dce)
2010-10-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/46137
	* gimple-fold.c (gimplify_and_update_call_from_tree): Properly
	remove the virtual operands if they are not needed.

	* c-c++-common/torture/pr46137.c: New testcase.

From-SVN: r165852
2010-10-22 19:03:39 +00:00
Changpeng Fang
d8c801fdbe Update processsor_costs table for bdver1
* gcc/config/i386/i386.c (processor_costs bdver1_cost): Update
	insn costs and architectural parameters for bdver1.

From-SVN: r165851
2010-10-22 18:48:33 +00:00
Jason Merrill
59dd34c408 re PR c++/46129 (ICE: in tsubst_copy, at cp/pt.c:11375)
PR c++/46129
	* pt.c (instantiate_class_template): Don't instantiate default
	arguments.

From-SVN: r165850
2010-10-22 14:37:53 -04:00
Jason Merrill
f91352dcc3 re PR c++/46103 ([c++0x] moving from std::array copies the elements)
PR c++/46103
	* init.c (build_vec_init): Handle memberwise move.

From-SVN: r165849
2010-10-22 14:37:41 -04:00
Richard Guenther
4490cae6cb gimple.h (gimple_register_canonical_type): Declare.
2010-10-22  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_register_canonical_type): Declare.
	* gimple.c (gimple_canonical_types): New global hashtable.
	(struct gimple_type_leader_entry_s): New type.
	(gimple_type_leader): New global cache.
	(gimple_lookup_type_leader): New function.
	(gtc_visit): Query the proper cache.
	(gimple_types_compatible_p): Likewise.
	(gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
	(gimple_canonical_type_eq): New function.
	(gimple_register_canonical_type): Likewise.
	(print_gimple_types_stats): Adjust for gimple_canonical_types.
	(free_gimple_type_tables): Likewise.  Free gimple_type_leader.
	* tree-ssa.c (useless_type_conversion_p): Do not dispatch to
	gimple_types_compatible_p for LTO.

	lto/
	* lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
	the new gimple_register_canonical_type.

From-SVN: r165848
2010-10-22 17:50:19 +00:00
Uros Bizjak
5ab2c5cb69 re PR target/46098 (ICE: in extract_insn, at recog.c:2100 with -msse3 -ffloat-store and __builtin_ia32_loadupd())
PR target/46098
	* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
	Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
	(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
	(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
	(<sse>_movu<ssemodesuffix>): New expander.
	(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
	(avx_movdqu<avxmodesuffix>): New expander.
	(*sse2_movdqu): Rename from sse2_movdqu.
	(sse2_movdqu): New expander.

testsuite/ChangeLog:

	PR target/46098
	* gcc.target/i386/pr46098.c: New test.

From-SVN: r165845
2010-10-22 18:12:57 +02:00
Joseph Myers
4e8859d2ad * gcc.pot: Regenerate.
From-SVN: r165838
2010-10-22 16:30:08 +01:00
Joseph Myers
bf02e3269b * EXCLUDES: Add read-md.c.
From-SVN: r165837
2010-10-22 16:24:31 +01:00
Joseph Myers
965e7f22cb * exgettext: Only handle Warn when followed by '('.
From-SVN: r165835
2010-10-22 15:58:26 +01:00
Arnaud Charlet
c7532b2de4 [multiple changes]
2010-10-22  Ben Brosgol  <brosgol@adacore.com>

	* gnat_rm.texi: Add chapter on Ada 2012 support.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb: Minor reformatting.

2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb: Mark missing case of nested package when expanding
	stubs.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* par-ch10.adb: Discard incomplete with_clause.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Enable_Range_Check): Remove code suppressing range check
	if static predicate present, not needed.
	* exp_attr.adb (Expand_Pred_Succ): Check Suppress_Assignment_Checks flag
	* exp_ch3.adb (Expand_N_Object_Declaration): Check
	Suppress_Assignment_Checks flag.
	* exp_ch4.adb (Expand_N_In): Make some corrections for proper handling
	of ranges when predicates are present.
	* exp_ch5.adb (Expand_Predicated_Loop): New procedure
	(Expand_N_Assignment_Statement): Check Suppress_Assignment_Checks flag
	(Expand_N_Loop_Statement): Handle loops over predicated types
	* sem_case.adb (Analyze_Choices): Remove extra blank in error message.
	* sem_ch13.adb (Build_Predicate_Function.Add_Call): Suppress info
	message for inheritance if within a generic instance, not useful there!
	(Build_Static_Predicate): Optimize test in predicate function
	based on static ranges determined.
	* sem_ch5.adb (Analyze_Iteration_Scheme): Error for loop through
	subtype with non-static predicate.
	* sinfo.ads, sinfo.adb (Suppress_Assignment_Checks): New flag.

From-SVN: r165834
2010-10-22 16:51:40 +02:00
Joseph Myers
41787e1db8 * cpplib.pot: Regenerate.
From-SVN: r165833
2010-10-22 15:50:24 +01:00
Richard Guenther
d8ba5b19db re PR middle-end/45720 (Revision 164367 miscompiled SPEC CPU 2K)
2010-10-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45720
	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
	Handle negative step.
	(vect_enhance_data_refs_alignment): Likewise.
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
	(vect_create_cond_for_align_checks): Likewise.
	(vect_create_cond_for_alias_checks): Likewise.

	* gcc.dg/torture/pr45720.c: New testcase.

From-SVN: r165832
2010-10-22 14:44:48 +00:00
Arnaud Charlet
9fc2854dec [multiple changes]
2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* uname.adb (Get_Unit_Name.Add_Node_Name): If encountering an error
	node in the unit name, propagate Program_Error to guard against
	cascaded errors.

2010-10-22  Javier Miranda  <miranda@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): Do not generate a subtype for
	selected components of dispatch table wrappers.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Make_Initialize_Protection): A protected type that
	implements an interface must be treated as if it has entries, to
	support dispatching select statements.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, sem_ch3.adb: Minor reformatting.

From-SVN: r165831
2010-10-22 16:44:16 +02:00
Arnaud Charlet
f915704fd6 [multiple changes]
2010-10-22  Javier Miranda  <miranda@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate.Add): If the type of the
	aggregate has a non standard representation the attributes 'Val and
	'Pos expand into function calls and the resulting expression is
	considered non-safe for reevaluation by the backend. Relocate it into
	a constant temporary to indicate to the backend that it is side
	effects free.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Concurrent_Derived_Type): Create declaration for
	derived corresponding record type only when expansion is enabled.

From-SVN: r165830
2010-10-22 16:39:44 +02:00
Robert Dewar
ed00f4727b sem_case.adb, [...] (Bad_Predicated_Subtype_Use): Change order of parameters.
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_case.adb, sem_attr.adb (Bad_Predicated_Subtype_Use): Change order
	of parameters.
	* sem_ch13.adb (Build_Predicate_Function): Don't give inheritance
	messages for generic actual subtypes.
	* sem_ch9.adb, sem_res.adb, sem_util.adb, sem_util.ads, sem_ch3.adb
	(Bad_Predicated_Subtype_Use): Use this procedure.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb: Minor reformatting.

From-SVN: r165829
2010-10-22 16:35:39 +02:00
Robert Dewar
86200f6646 a-except-2005.adb (Rmsg_18): New message text.
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* a-except-2005.adb (Rmsg_18): New message text.
	* a-except.adb (Rmsg_18): New message text.
	* atree.adb (List25): New function
	(Set_List25): New procedure
	* atree.ads (List25): New function
	(Set_List25): New procedure
	* einfo.adb (Static_Predicate): Is now a list
	(OK_To_Reference): Present in all entities
	* einfo.ads (Static_Predicate): Is now a list
	(OK_To_Reference): Applies to all entities
	* exp_ch13.adb (Build_Predicate_Function): Moved to Sem_Ch13
	* sem_attr.adb (Bad_Attribute_For_Predicate): Call
	Bad_Predicated_Subtype_Use.
	* sem_case.ads, sem_case.adb: Major surgery to deal with predicated
	subtype case.
	* sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to
	Sem_Ch13.
	(Build_Static_Predicate): New procedure handles static predicates.
	* sem_ch3.adb (Analyze_Subtype_Declaration): Delay freeze on subtype
	with no constraint if ancestor subtype has predicates.
	(Analyze_Variant_Part): New calling sequence for Analyze_Choices
	* sem_ch4.adb (Junk_Operand): Don't complain about OK_To_Reference
	entity.
	(Analyze_Case_Expression): New calling sequence for Analyze_Choices
	* sem_ch5.adb (Analyze_Case_Statement): New calling sequence for
	Analyze_Choices.
	* sem_util.ads, sem_util.adb (Bad_Predicated_Subtype_Use): New procedure
	* types.ads (PE_Bad_Predicated_Generic_Type): Replaces
	PE_Bad_Attribute_For_Predicate.
	* atree.h: Add definition of List25.

From-SVN: r165828
2010-10-22 15:58:49 +02:00
Arnaud Charlet
497b37aded [multiple changes]
2010-10-22  Jerome Lambourg  <lambourg@adacore.com>

	* gnatlink.adb (Process_Binder_File): Remove CLI-specific code, now
	moved to dotnet-ld.
	(Gnatlink): Remove CLI-specific code, moved to dotnet-ld
	* bindgen.adb (Gen_Object_Files_Options): Do not issue -L switches with
	the .NET compiler, useless and unsupported.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads (Get_Num_Lit_From_Pos): Fix errors in documentation,
	this returns a Node_Id for a reference to the entity, not the entity
	itself!

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): use Insert_Actions when
	bounds require a temporary.

From-SVN: r165827
2010-10-22 15:51:35 +02:00
Robert Dewar
45010db959 sem_ch4.adb: Minor reformatting.
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch4.adb: Minor reformatting.
	* sinfo.ads: Minor comment fixes for Ada 2012 syntax.

From-SVN: r165826
2010-10-22 15:45:45 +02:00
Ira Rosen
57416708a7 re PR tree-optimization/46126 (Revision 165777 failed to build 254.gap in SPEC CPU 2K)
PR tree-optimization/46126
	* tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
	vectorizable_shift in case of basic block vectorization.

From-SVN: r165825
2010-10-22 12:48:15 +00:00
Joseph Myers
3020190e3e target.h (enum opt_levels, [...]): New.
* target.h (enum opt_levels, struct default_options): New.
	* target.def (handle_ofast): Remove hook.
	(target_option.optimization): Change to
	target_option.optimization_table.
	* doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	(CAN_DEBUG_WITHOUT_FP): Remove.
	* doc/tm.texi: Regenerate.
	* opts.c (maybe_default_option, maybe_default_options,
	default_options_table): New.
	(default_options_optimization): Take extra parameters.  Don't
	assert that global_options and global_options_set are in use.  Use
	maybe_default_options.
	(decode_options): Pass extra parameters to
	default_options_optimization.
	* common.opt (falign-loops): Use value 0 with Var.
	(frerun-cse-after-loop, ftree-ter): Remove Init.
	* system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
	TARGET_OPTION_OPTIMIZATION): Remove.
	* targhooks.c (empty_optimization_table): New.
	* targhooks.h (empty_optimization_table): Declare.
	* toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
	* config/alpha/alpha.c (alpha_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/arm/arm.c (arm_option_optimization: Change to
	arm_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/avr/avr.c (avr_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/cris/cris.c (cris_option_optimization): Change to
	cris_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/crx/crx.c (crx_option_optimization): Change to
	crx_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/fr30/fr30.c (fr30_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/frv/frv.c (frv_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/h8300/h8300.c (h8300_option_optimization): Change to
	h8300_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/i386/i386.c (ix86_option_optimization): Change to
	ix86_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
	as initializer.
	* config/ia64/ia64.c (ia64_option_optimization): Change to
	ia64_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
	initializer.
	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/lm32/lm32.c (lm32_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/m32r/m32r.c (m32r_option_optimization): Change to
	m32r_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
	CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mcore/mcore.c (mcore_option_optimization): Change to
	mcore_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mep/mep.c (mep_option_optimization): Change to
	mep_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/microblaze/microblaze.c
	(microblaze_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mips/mips.c (mips_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mmix/mmix.c (mmix_option_optimization): Change to
	mmix_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pa/pa.c (pa_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pdp11/pdp11.c (pdp11_option_optimization): Change to
	pdp11_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/picochip/picochip.c (picochip_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rs6000/rs6000.c (rs6000_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rx/rx.c (rx_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/s390/s390.c (s390_option_optimization): Change to
	s390_option_optimization_table.
	(s390_option_override): Update comment.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/score/score.c (score_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/sh/sh.c (sh_option_optimization): Change to
	sh_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	(sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
	(sh_option_override, expand_block_move, multcosts, find_barrier,
	barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
	* config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
	(LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
	STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
	instead of TARGET_SMALLCODE.
	* config/sh/sh.opt (mspace): Make into an alias for -Os.
	* config/sparc/sparc.c (sparc_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/v850/v850.c (v850_option_optimization): Change to
	v850_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/xtensa/xtensa.c (xtensa_option_optimization): Change to
	xtensa_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.

From-SVN: r165823
2010-10-22 13:14:45 +01:00
Arnaud Charlet
26df19ce4f [multiple changes]
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* par-ch5.adb: Minor reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* a-except.adb, a-except-2005.adb: Add new Rcheck entry.
	* exp_ch13.adb (Add_Call): Make sure subtype is marked with
	Has_Predicates set to True if it inherits predicates.
	* sem_attr.adb: Handle 'First/'Last/'Range for predicated types
	* types.ads (PE_Bad_Attribute_For_Predicate): New reason code
	* types.h: Add new Rcheck entry.
	* einfo.ads, einfo.adb (Static_Predicate): New field.
	Minor code reorganization (file float routines in proper section)
	Fix bad field name in comments.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Subtypes_Statically_Compatible): Check null exclusion
	case.

2010-10-22  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Get_Config_Switches): Detect if there is at least one
	declaration of IDE'Compiler_Command for one of the language in the main
	project.
	(Do_Autoconf): If there were at least one Compiler_Command declared and
	no target, invoke gprconfig with --target=all instead of the normalized
	host name.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb: Update syntax in comments for Ada 2012.
	* sinfo.ads: Update syntax in comments for Ada 2012
	* par-ch3.adb (Check_Restricted_Expression): Remove "in Ada 2012 mode"
	from msg.

From-SVN: r165822
2010-10-22 12:41:17 +02:00
Iain Sandoe
0937fb69fe CFStrings for Darwin
gcc/testsuite:
	Based on the CFString implementation in FSF apple/trunk branch.
	
	* lib/objc-dg.exp (objc-dg-runtest): Merge flags and additional flags
	so that the latter can be used in dg-skip and dg-xfail clauses.
	* lib/obj-c++-dg.exp (obj-c++-dg-runtest): Likewise.
	* obj-c++.dg/template-4.mm: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1.
	* obj-c++.dg/const-str-7.mm: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1, move to torture/strings/.
	* obj-c++.dg/const-str-4.mm: Likewise.
	* obj-c++.dg/const-str-3.mm: Likewise.
	* obj-c++.dg/const-str-8.mm: Likewise.
	* obj-c++.dg/const-str-9.mm: Likewise.
	* obj-c++.dg/const-str-10.mm: Likewise.
	* obj-c++.dg/const-str-10.mm: Likewise.
	* obj-c++.dg/const-str-1.mm: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1, move to strings/.
	* obj-c++.dg/const-str-2.mm: Likewise.
	* obj-c++.dg/const-str-5.mm: Likewise.
	* obj-c++.dg/const-str-6.mm: Likewise.
	* obj-c++.dg/const-str-12.mm: Likewise.
	* obj-c++.dg/strings/strings.exp: New.
	* obj-c++.dg/strings/const-cfstring-2.mm: New.
	* obj-c++.dg/strings/const-cfstring-5.mm: New.
	* obj-c++.dg/torture/strings/strings.exp: New.
	* obj-c++.dg/torture/strings/string1.mm: New.
	* obj-c++.dg/torture/strings/const-cfstring-1.mm: New.
	* obj-c++.dg/torture/strings/const-cfstring-3.mm: New.
	* obj-c++.dg/torture/strings/const-cfstring-4.mm: New.
	
	* objc/execute/string1.m: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1, move to objc.dg/torture/strings/.
	* objc/execute/string2.m: Likewise.
	* objc/execute/string3.m: Likewise.
	* objc/execute/string3.m: Likewise.
	* objc.dg/foreach-2.m: Don't use CFStrings on Darwin.
	* objc.dg/foreach-4.m: Likewise.
	* objc.dg/foreach-5.m: Likewise.
	* objc.dg/const-str-3.m: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1, move to objc.dg/torture/strings/.
	* objc.dg/const-str-4.m: Likewise.
	* objc.dg/const-str-7.m: Likewise.
	* objc.dg/const-str-8.m: Likewise.
	* objc.dg/const-str-9.m: Likewise.
	* objc.dg/const-str-10.m: Likewise.
	* objc.dg/const-str-11.m: Likewise.
	* objc.dg/const-str-1.m: Don't use CFStrings on Darwin. Update test
	to use dg-additional-files for Object1, move to objc.dg/strings/.
	* objc.dg/const-str-2.m: Likewise.
	* objc.dg/const-str-5.m: Likewise.
	* objc.dg/const-str-6.m: Likewise.
	* objc.dg/const-str-12.m: Likewise.
	* objc.dg/const-str-12b.m: Likewise.
	* objc.dg/strings/strings.exp: New.
	* objc.dg/strings/const-cfstring-2.m: New.
	* objc.dg/strings/const-cfstring-5.m: New.
	* objc.dg/torture/strings/strings.exp: New.
	* objc.dg/torture/strings/const-cfstring-1.m: New.
	* objc.dg/torture/strings/const-cfstring-3.m: New.
	* objc.dg/torture/strings/const-cfstring-4.m: New.

From-SVN: r165821
2010-10-22 10:30:29 +00:00
Iain Sandoe
2670598830 CFStrings for Darwin.
gcc:

	Based on the CFString implementation in FSF apple/trunk branch.
	
	* target.def (objc_construct_string): New Hook.
	* doc/tm.texi (objc_construct_string): Document.
	* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
	* config/t-darwin: Amend build rules for darwin.o.
	* config/darwin.opt: Add cfstrings flags.
	* config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
	(darwin_objc_construct_string): New.
	* config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
	* config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
	* config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
	(darwin_fold_builtin): Likewise.
	(darwin_build_constant_cfstring): Likewise.
	(darwin_objc_construct_string): Likewise.
	(darwin_cfstring_p): Likewise.
	(darwin_enter_string_into_cfstring_table): Likewise.
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
	* config/darwin.c (darwin_running_cxx): New var. 
	(machopic_select_section): Return cfstring_constant_object_section.
	(darwin_override_options): Set darwin_running_cxx.
	(add_builtin_field_decl): New.
	(darwin_init_cfstring_builtins): New.
	(darwin_build_constant_cfstring): New.
	(darwin_fold_builtin): New.
	(cfstring_hash): New.
	(cfstring_eq): New.
	(darwin_enter_string_into_cfstring_table): New.
	* config/darwin-sections.def (cfstring_constant_object_section): New.
	* config/darwin.h (TARGET_FOLD_BUILTIN): Define.
	(TARGET_OBJC_CONSTRUCT_STRING): Define.

gcc/objc:

	Based on the CFString implementation in FSF apple/trunk branch.
	
	* objc/objc-act.c (objc_build_string_object): Handle CFStrings.

From-SVN: r165820
2010-10-22 10:28:57 +00:00
Gary Dismukes
5e5db3b4b4 sem_ch3.adb (Check_Or_Process_Discriminants): In Ada 2012, allow limited tagged types to have defaulted discriminants.
2010-10-22  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Check_Or_Process_Discriminants): In Ada 2012, allow
	limited tagged types to have defaulted discriminants. Customize the
	error message for the Ada 2012 case.
	(Process_Discriminants): In Ada 2012, allow limited tagged types to have
	defaulted discriminants. Customize the error message for the Ada 2012
	case.
	* sem_ch6.adb (Create_Extra_Formals): Suppress creation of the extra
	formal for out formals of discriminated types in the case where the
	underlying type is a limited tagged type.
	* exp_attr.adb (Expand_N_Attribute_Reference, case
	Attribute_Constrained): Return True for 'Constrained when the
	underlying type of the prefix is a limited tagged type.

From-SVN: r165819
2010-10-22 12:28:52 +02:00
Arnaud Charlet
a043e7356e [multiple changes]
2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Complete_Private_Subtype): The full view of the subtype
	may already have a rep item chain inherited from the full view of the
	base type, so do not overwrite it when propagating rep items from the
	partial view of the subtype.
	* sem_ch3.adb: Minor code reorganization.  Minor reformatting.

2010-10-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi (gnatmetric): Remove description of debug option.

2010-10-22  Tristan Gingold  <gingold@adacore.com>

	* adaint.c (__gnat_number_of_cpus): Add implementation for VMS.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* par-ch5.adb: Set properly starting sloc of loop parameter.

From-SVN: r165818
2010-10-22 12:26:01 +02:00
Arnaud Charlet
229db35122 [multiple changes]
2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (May_Be_Lvalue): An actual in a function call can be an
	lvalue in Ada2012, if the function has in-out parameters.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* cstand.adb, einfo.adb, exp_attr.adb, sem_prag.adb, sem_vfpt.adb,
	sem_ch10.adb: Minor reformatting.

2010-10-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Remove most of the content of gnatcheck chapter.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: Handle indexed P'old.

From-SVN: r165817
2010-10-22 12:19:58 +02:00
Geert Bosch
23c799b158 cstand.adb (Build_Float_Type): Set Float_Rep according to platform.
2010-10-22  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Build_Float_Type): Set Float_Rep according to platform.
	* einfo.ads (Float_Rep): New attribute.
	(Float_Rep_Kind): Move from body. Add comments.
	* einfo.adb (Float_Rep_Kind): Move to spec
	(Float_Rep): Now a real field instead of local function.
	(Set_Float_Rep): New procedure to set floating point representation
	(Set_Vax_Float): Remove.
	(Write_Entity_Flags): Remove Vax_Float flag.
	(Write_Field10_Name): Add E_Floating_Point_Type case for Float_Rep.
	* exp_attr.adb (Attribute_Valid): Use case statement for representation
	specific processing.
	* sem_ch3.adb (Build_Derived_Numeric_Type,
	Floating_Point_Type_Declaration): Set Float_Rep instead of Vax_Float
	attribute.
	* sem_util.ads, sem_util.adb (Is_AAMP_Float): Remove.
	* sem_vfpt.adb (Set_D_Float, Set_F_Float, Set_G_Float, Set_IEEE_Long,
	Set_IEEE_Short): Set Float_Rep instead of Vax_Float attribute.

From-SVN: r165816
2010-10-22 12:15:36 +02:00
Arnaud Charlet
b4ca2d2c08 [multiple changes]
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sprint.adb: Minor reformatting.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Do required predicate
	checks.
	* sem_ch3.adb (Complete_Private_Subtype): Propagate predicates to full
	view.
	* sem_ch6.adb (Invariants_Or_Predicates_Present): New name for
	Invariants_Present.
	(Process_PPCs): Handle predicates generating post conditions
	* sem_util.adb (Is_Partially_Initialized_Type): Add
	Include_Null parameter.
	* sem_util.ads (Is_Partially_Initialized_Type): Add
	Include_Null parameter.

2010-10-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi (gnatelim): Add description for '--ignore' option

2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb (Check_First_Subtype): Specialize error messages for
	case where argument is not a type.

From-SVN: r165815
2010-10-22 12:09:51 +02:00
Robert Dewar
00c7151cdf exp_ch5.adb, [...]: Minor reformatting.
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, par-ch4.adb, par-ch5.adb, sem_ch5.adb, sinfo.ads: Minor
	reformatting.

From-SVN: r165814
2010-10-22 12:04:20 +02:00
Arnaud Charlet
c0f136cd17 [multiple changes]
2010-10-22  Arnaud Charlet  <charlet@adacore.com>

	* a-locale.adb: Minor code clean up.

2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb: Minor code reorganization and factoring.

From-SVN: r165813
2010-10-22 12:02:10 +02:00
Arnaud Charlet
c56a9ba447 [multiple changes]
2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb, sem_ch5.adb, sinfo.ads, snames.ads-tmpl, par-ch5.adb:
	Minor reformatting.

2010-10-22  Geert Bosch  <bosch@adacore.com>

	* stand.ads: Fix typo in comment.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: Enable in-out parameter for functions.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Quantified_Expression): Handle properly loop
	iterators that are transformed into container iterators after analysis.
	* exp_ch4.adb (Expand_N_Quantified_Expression): Handle properly both
	iterator forms before rewriting as a loop.

2010-10-22  Brett Porter  <porter@adacore.com>

	* a-locale.adb, a-locale.ads, locales.c: New files.
	* Makefile.rtl: Add a-locale
	* gcc-interface/Makefile.in: Add locales.c

From-SVN: r165812
2010-10-22 12:00:18 +02:00
Arnaud Charlet
57d62f0cb7 [multiple changes]
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb
	(Is_Generic_Formal): Moved from Sem_Util to Sem_Aux.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): New subprogram, implements new
	iterator forms over arrays and containers, in loops and quantified
	expressions.
	* exp_util.adb (Insert_Actions): include N_Iterator_Specification.
	* par-ch4.adb (P_Quantified_Expression): Handle iterator specifications.
	* par-ch5.adb (P_Iterator_Specification): New subprogram. Modify
	P_Iteration_Scheme to handle both loop forms.
	* sem.adb: Handle N_Iterator_Specification.
	* sem_ch5.adb, sem_ch5.ads (Analyze_Iterator_Specification): New
	subprogram.
	* sinfo.adb, sinfo.ads: New node N_Iterator_Specification.
	N_Iteration_Scheme can now include an Iterator_Specification. Ditto
	for N_Quantified_Expression.
	* snames.ads-tmpl: Add names Cursor, Element, Element_Type, No_Element,
	and Previous, to support iterators over predefined containers.
	* sprint.adb: Handle N_Iterator_Specification.

From-SVN: r165811
2010-10-22 11:36:41 +02:00
Thomas Quinot
c3ad80f000 2010-10-22 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb, sem_ch12.adb, sem_util.adb, sem_util.ads
	(Is_Generic_Formal): Move from body of Sem_Ch12 to Sem_Util.
	(Check_Arg_Is_Local_Name): Fix check in the case of a pragma appearing
	immediately after a library unit.
	(Analyze_Pragma, case Preelaborable_Initialization): Pragma may apply to
	a formal derived type.

From-SVN: r165810
2010-10-22 11:32:30 +02:00
Geert Bosch
d32e3ceeb2 Make-lang.in: Remove ttypef.ads
2010-10-22  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/Make-lang.in: Remove ttypef.ads
	* checks.adb: Use Machine_Mantissa_Value and Machine_Radix_Value instead
	of Machine_Mantissa and Machine_Radix.
	* cstand.adb (P_Float_Range): Directly print the Type_Low_Bound and
	Type_High_Bound of the type, instead of choosing constants from Ttypef.
	(Set_Float_Bounds): Compute the bounds based on Machine_Radix_Value,
	Machine_Emax_Value and Machine_Mantissa_Value instead of special-casing
	each type.
	* einfo.ads (Machine_Emax_Value, Machine_Emin_Value,
	Machine_Mantissa_Value, Machine_Radix_Value, Model_Emin_Value,
	Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value,
	Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Add new
	synthesized floating point attributes.
	* einfo.adb (Float_Rep): Determine the kind of floating point
	representation used for a given type.
	(Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value,
	Machine_Radix_Value): Implement based on Float_Rep_Kind of a type and
	the number of digits in the type.
	(Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value,
	Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value):
	Implement new synthesized floating point attributes based on the various
	machine attributes.
	* eval_fat.ads: Remove Machine_Mantissa and Machine_Radix.
	* eval_fat.adb (Machine_Mantissa, Machine_Radix): Remove. Use the
	Machine_Mantissa_Value and Machine_Radix_Value functions instead.
	* exp_vfpt.adb (VAXFF_Digits, VAXDF_Digits, VAXFG_Digits): Define local
	constants, instead of using constants from Ttypef.
	* gnat_rm.texi: Reword comments referencing Ttypef.
	* sem_attr.ads: Reword comment referencing Ttypef.
	* sem_attr.adb (Float_Attribute_Universal_Integer,
	Float_Attribute_Universal_Real): Remove.
	(Attribute_Machine_Emax, Attribute_Machine_Emin,
	Attribute_Machine_Mantissa, Attribute_Model_Epsilon,
	Attribute_Model_Mantissa, Attribute_Model_Small, Attribute_Safe_Emax,
	Attribute_Safe_First, Attribute_Safe_Last, Model_Small_Value): Use
	attributes in Einfo instead of Float_Attribute_Universal_Real and
	Float_Attribute_Universal_Integer and all explicit constants.
	* sem_util.ads, sem_util.adb (Real_Convert): Remove.
	* sem_vfpt.adb (VAXDF_Digits, VAXFF_Digits, VAXGF_Digits, IEEEL_Digits,
	IEEES_Digits): New local constants, in order to remove dependency on
	Ttypef.
	* tbuild.ads (Make_Float_Literal): New function.
	* tbuild.adb (Make_Float_Literal): New function to create a new
	N_Real_Literal, constructing it as simple as possible for best
	output of constants in -gnatS.
	* ttypef.ads: Remove.

From-SVN: r165808
2010-10-22 11:28:24 +02:00
Robert Dewar
8110ee3b63 checks.adb (Apply_Predicate_Check): Remove attempt at optimization when subtype is the same...
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Predicate_Check): Remove attempt at optimization
	when subtype is the same, caused legitimate checks to be missed.
	* exp_ch13.adb (Build_Predicate_Function): Use Nearest_Ancestor to get
	inheritance from right entity.
	* freeze.adb (Freeze_Entity): Use Nearest_Ancestor to freeze in the
	derived type case if the ancestor type has predicates.
	* sem_aux.ads, sem_aux.adb (Nearest_Ancestor): New function.
	* sem_prag.adb (Check_Enabled): Minor code reorganization.

From-SVN: r165807
2010-10-22 11:19:51 +02:00
Arnaud Charlet
ca8e13e855 * gcc-interface/utils.c, gcc-interface/gigi.h: Minor reformatting.
From-SVN: r165806
2010-10-22 11:16:39 +02:00
Arnaud Charlet
ea0342360d [multiple changes]
2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads (Declaration_Node): Clarify documentation, in particular
	regarding what is returned for subprogram entities.

2010-10-22  Arnaud Charlet  <charlet@adacore.com>

	* exp_attr.adb (Make_Range_Test): Generate a Range node instead of
	explicit comparisons, generates simpler expanded code.
	* a-except-2005.adb (Rcheck_06_Ext): New.
	* gcc-interface/trans.c (gigi, gnat_to_gnu): Handle validity checks
	like range checks.
	* gcc-interface/Make-lang.in: Update dependencies.

2010-10-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Error for subtype wi predicate
	for index type
	(Constrain_Index): Error of subtype wi predicate in index constraint
	* sem_ch9.adb (Analyze_Entry_Declaration): Error of subtype wi
	predicate in entry family.
	* sem_res.adb (Resolve_Slice): Error of type wi predicate in slice.

2010-10-22  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (Collect_Parents): New subprogram.
	(Original_Corresponding_Operation): New subprogram.
	(Visible_Ancestors): New subprogram.
	* sem_ch6.adb (New_Overloaded_Entity): Handle new case of dispatching
	operation that overrides a hidden inherited primitive.
	* sem_disp.adb (Find_Hidden_Overridden_Primitive): New subprogram.
	(Check_Dispatching_Operation): if the new dispatching operation
	does not override a visible primtive then check if it overrides
	some hidden inherited primitive.

2010-10-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): If the parent_unit_name in a with
	clause is a child unit that denotes a renaming, replace the
	parent_unit_name with a reference to the renamed unit, because the
	prefix is irrelevant to subsequent visibility..

From-SVN: r165805
2010-10-22 11:14:01 +02:00
Arnaud Charlet
2d4e055322 [multiple changes]
2010-10-22  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Has_Predicates): Flag is now on all entities
	(simplifies code).
	* exp_ch13.adb (Build_Predicate_Function): Output info msgs for
	inheritance.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Make sure we have a
	freeze node for entities for which a predicate is specified.
	(Analyze_Aspect_Specifications): Avoid duplicate calls
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Remove attempt to avoid
	duplicate calls to Analye_Aspect_Specifications.

2010-10-22  Thomas Quinot  <quinot@adacore.com>

	* a-exextr.adb, atree.ads, freeze.adb: Minor reformatting.

From-SVN: r165804
2010-10-22 10:51:09 +02:00
Nicola Pero
50ea58617e objc-act.c (get_objc_string_decl): Use a switch instead of a chain of ifs.
2010-10-21  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-act.c (get_objc_string_decl): Use a switch instead of a
        chain of ifs.  Use gcc_unreachable instead of abort.
        (add_objc_string): Same change.
        (generate_protocol_list): Same change - twice.
        (synth_id_with_class_suffix): Same change.
        (build_keyword_selector): Same change - twice.
        (objc_build_message_expr): Same change.
        (objc_build_selector_expr): Same change.
        (check_methods): Same change - and added missing gcc_unreachable
        for default case.
        (check_methods_accessible): Same change - twice, and added missing
        gcc_unreachable for default case in one of them.
        (start_class): Same change - and added missing gcc_unreachable for
        default case.
        (continue_class): Same change.
        (objc_gen_property_data): Same change.
        (finish_class): Same change.
        (encode_type_qualifiers): Added missing gcc_unreachable.
        (encode_type): Small code tidy up to reduce duplicated code.  Use
        gcc_unreachable instead of abort - twice.
        (encode_gnu_bitfield): Use a switch instead of a chain of ifs -
        twice.  Added missing gcc_unreachable for default case - twice.
        (dump_interface): Use a switch instead of a chain of ifs.
        (handle_impent): Same change.

From-SVN: r165803
2010-10-22 08:41:27 +00:00
Marcus Shawcroft
05b7a48a2b synchronize.c: Permit dmb or mcr in assembler scan.
2010-10-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* gcc.target/arm/synchronize.c: Permit dmb or mcr in assembler scan.

From-SVN: r165802
2010-10-22 07:36:08 +00:00
Nathan Froyd
0fd2eac224 alpha.c (alpha_build_builtin_va_list): Use TYPE_STUB_DECL instead of TREE_CHAIN.
* config/alpha/alpha.c (alpha_build_builtin_va_list): Use
	TYPE_STUB_DECL instead of TREE_CHAIN.
	* config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
	* config/s390/s390.c (s390_build_builtin_va_list): Likewise.
	* config/sh/sh.c (sh_build_builtin_va_list): Likewise.
	* config/spu/spu.c (spu_build_builtin_va_list): Likewise.
	* config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.

From-SVN: r165800
2010-10-22 01:33:39 +00:00
Jie Zhang
62519f7fed expr.c (emit_group_load_1): Update calls to extract_bit_field.
* expr.c (emit_group_load_1): Update calls to extract_bit_field.
	(copy_blkmode_from_reg): Likewise.
	(read_complex_part): Likewise.
	(expand_expr_real_1): Calculate packedp and pass it to
	extract_bit_field.
	* expr.h (extract_bit_field): Update declaration.
	* calls.c (store_unaligned_arguments_into_pseudos): Update call
	to extract_bit_field.
	* expmed.c (extract_fixed_bit_field): Update calls to
	extract_fixed_bit_field.
	(store_split_bit_field): Likewise.
	(extract_bit_field_1): Add new argument packedp.
	(extract_bit_field): Add new argument packedp.
	(extract_fixed_bit_field): Add new argument packedp and let
	packed attribute override volatile.
	* stmt.c (expand_return): Update call to extract_bit_field.

From-SVN: r165799
2010-10-22 00:40:15 +00:00
GCC Administrator
f40872465c Daily bump.
From-SVN: r165798
2010-10-22 00:18:25 +00:00
Paolo Carlini
10d4899cd0 re PR c++/46117 (ICE: SIGSEGV in add_function_candidate (call.c:1630) on invalid typename usage)
/cp
2010-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/46117
	* call.c (add_function_candidate): Don't use TREE_VALUE on null
	parmnode.

/testsuite
2010-10-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/46117
	* g++.dg/parse/crash57.C: New.

From-SVN: r165794
2010-10-21 21:51:50 +00:00
Uros Bizjak
498f5fc9b7 * Add ChangeLog changes.
From-SVN: r165793
2010-10-21 23:48:39 +02:00
Nathan Froyd
0aa8828790 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
From-SVN: r165792
2010-10-21 21:44:03 +00:00
Nathan Froyd
cefb375afd ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead of gcc_checking_assert.
* ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
	of gcc_checking_assert.
	* sel-sched.c (code_motion_process_successors): Likewise.

From-SVN: r165790
2010-10-21 21:39:13 +00:00
Eric Botcazou
50a36e4261 cfgcleanup.c (try_forward_edges): Do not throw away previous steps when stopping because of a different locus on...
* cfgcleanup.c (try_forward_edges): Do not throw away previous steps
	when stopping because of a different locus on edge or insn.
	(try_optimize_cfg): Add comment.
	* cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
	block is a forwarder block, propagate locus on the edge.
	(cfg_layout_merge_blocks): Likewise.

From-SVN: r165789
2010-10-21 21:38:03 +00:00
Uros Bizjak
233a46c834 re PR target/45946 (ICE: in extract_insn, at recog.c:2127 when using _Decimal128 with -Os -fno-omit-frame-pointer)
PR target/45946
	* config/i386/i386.md (*pushti2): New insn pattern.
	(pushti2 splitter): New insn splitter.
	(*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
	DWI mode iterator.

testsuite/ChangeLog:

	PR target/45946
	* gcc.target/i386/pr45946.c: New test.

From-SVN: r165787
2010-10-21 22:42:09 +02:00