Commit Graph

112774 Commits

Author SHA1 Message Date
Jonathan Wakely
b81e920eac re PR libstdc++/49894 ([C++0x] Uniform initialization in constructor)
PR libstdc++/49894
	* include/std/mutex (__mutex_base,__recursive_mutex_base): Define new
	base classes to manage construction/destruction of native mutexes,
	using NSDMI when INIT macros are defined.
	(mutex,recursive_mutex,timed_mutex,recursive_timed_mutex): Derive from
	new base classes.
	* include/std/condition_variable (condition_variable): Use NSDMI when
	INIT macro is defined. Use noexcept.
	* src/condition_variable.cc (condition_variable): Explicitly-default
	constructor/destructor when using NSDMI. Use noexcept.
	(condition_variable_any): Likewise.

From-SVN: r180411
2011-10-25 00:26:25 +01:00
David S. Miller
cca3f03dfe Segregate sparc FP/VEC constant constraints.
* config/sparc/sparc.md: Only use F, G, and C constraints in FP
	insns.  Only use D, Y, and Z constraints in vector insns.

From-SVN: r180410
2011-10-24 16:04:40 -07:00
Michael Meissner
ce835863ba Remove extra newline added in October 11 change
From-SVN: r180408
2011-10-24 22:28:53 +00:00
David S. Miller
1b43bc82f7 Consolidate some sparc insn patterns using "enabled".
* config/sparc/sparc.md (cpu_feature, enabled): New attributes.
	(*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
	called *movsi_insn.
	(*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
	into *movdi_insn_sp32.
	(*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
	one pattern called *movdi_insn_sp64.
	(*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
	Consolidate into one pattern called *movsf_insn.
	(*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
	*movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
	into *movdf_insn_sp32.
	(*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
	*movdf_insn_sp64_no_fpu): Consolidate into one pattern called
	*movdf_insn_sp64.
	(*zero_extendsidi2_insn_sp64_novis3,
	*zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
	called *zero_extendsidi2_insn_sp64.
	(*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
	Consolidate into one pattern named *sign_extendsidi2_insn.
	(*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
	Consolidate into one pattern named *mov<VM32:mode>_insn.
	(*mov<VM64:mode>_insn_sp64_novis3,
	*mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
	named *mov<VM64:mode>_insn_sp64.
	(*mov<VM64:mode>_insn_sp32_novis3,
	*mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
	named *mov<VM64:mode>_insn_sp32.

From-SVN: r180407
2011-10-24 14:53:38 -07:00
Teresa Johnson
3c5bc77d7f MAINTAINERS (Write After Approval): Add myself.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r180405
2011-10-24 21:26:47 +00:00
Andreas Krebbel
93a90db6b0 tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
	(zero_length_string): Change assertion to accept strinfo without
	length but with stmt instead.
	Set the endptr pointer also if starting a new chain.
	(adjust_related_strinfos): Ignore strinfos marked for delayed
	length computation.
	(handle_builtin_strcpy): Mark earlier strinfo elements also for
	delayed length computation.

2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.dg/strlenopt-22.c: New testcase.
	* gcc.dg/strlenopt-4.c: Change scan value for s390(x).

From-SVN: r180402
2011-10-24 20:14:35 +00:00
Ian Lance Taylor
980889d814 Error if naked return when result variables are shadowed.
From-SVN: r180401
2011-10-24 19:44:18 +00:00
Jonathan Wakely
d41c3b8947 49668.cc: Add missing dg-require.
* testsuite/30_threads/async/49668.cc: Add missing dg-require.
	* testsuite/30_threads/packaged_task/49668.cc: Likewise.

From-SVN: r180400
2011-10-24 20:11:31 +01:00
Uros Bizjak
d00fe66276 sse-5.c (dg-options): Add -mno-sse.
* gcc.target/i386/sse-5.c (dg-options): Add -mno-sse.
	Remove -march=i386.
	(dg-skip-if): Remove.
	* gcc.target/i386/funcspec-1.c: Ditto.
	* gcc.target/i386/funcspec-3.c (dg-options): Add -mno-sse3.

From-SVN: r180397
2011-10-24 20:04:37 +02:00
Georg-Johann Lay
3f6a1bb12d re PR target/50820 ([avr] Use EIND consistently)
PR target/50820
	Port from 4.6 branch r180379
	* doc/invoke.texi (AVR Options): New subsubsection to explain EIND
	handling and indirect jump/calls on devices > 128k.

From-SVN: r180388
2011-10-24 14:49:47 +00:00
Anatoly Sokolov
3d33d151c1 re PR target/49824 ([avr] Missing documentation for OS_task and OS_main attributes)
PR target/49824
	* doc/extend.texi (Declaring Attributes of Functions):
	Document OS_main and OS_task attributes.
	(Specifying Attributes of Variables): Move up
	subsection "AVR Variable Attributes" as of alphabetical order.


Co-Authored-By: Georg-Johann Lay <avr@gjlay.de>

From-SVN: r180385
2011-10-24 14:45:51 +00:00
Richard Guenther
7b7b1813da tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants to vector element type.
2011-10-24  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
	to vector element type.
	(vectorizable_assignment): Bail out for non-mode-precision operations.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store): Handle non-mode-precision stores.
	(vectorizable_load): Handle non-mode-precision loads.
	(get_vectype_for_scalar_type_and_size): Return a vector type
	for non-mode-precision integers.
	* tree-vect-loop.c (vectorizable_reduction): Bail out for
	non-mode-precision reductions.

	* gcc.dg/vect/vect-bool-1.c: New testcase.

From-SVN: r180384
2011-10-24 14:24:36 +00:00
Julian Brown
695074beca m68k.c (notice_update_cc): Tighten condition for setting CC_REVERSED for FP comparisons.
gcc/
	* config/m68k/m68k.c (notice_update_cc): Tighten condition for
	setting CC_REVERSED for FP comparisons.

From-SVN: r180383
2011-10-24 13:47:09 +00:00
Richard Guenther
0a500dd3ac re PR tree-optimization/50838 (ice in refs_may_alias_p_1 with -O3)
2011-10-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50838
	* tree-data-ref.c (dr_analyze_indices): Properly canonicalize
	a MEM_REF base if we change it.

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

From-SVN: r180381
2011-10-24 12:31:01 +00:00
Arnaud Charlet
30e1709cc9 Fix date.
From-SVN: r180380
2011-10-24 14:28:46 +02:00
Bernd Schmidt
eec8a31a73 re PR rtl-optimization/50833 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2243 with -fshrink-wrap)
PR rtl-optimization/50833
	* function.c (thread_prologue_and_epilogue_insns): Expect the
	return insn optimization only if optimize.

From-SVN: r180377
2011-10-24 11:46:04 +00:00
Bernd Schmidt
9f02e6a5b5 re PR bootstrap/50836 (bootstrap fails due to error: no previous prototype for 'find_all_hard_reg_sets')
PR bootstrap/50836
	* rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".

From-SVN: r180376
2011-10-24 11:03:12 +00:00
Arnaud Charlet
b3c336413b [multiple changes]
2011-10-24  Robert Dewar  <dewar@adacore.com>

	* sem.adb (Initialize): Fix bug that blew up if called a second
	time.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c,
	tb-ivms.c, tb-gcc.c: Update headers to GPL 3.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma
	name in error msg.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat_rm.texi Add an entry for restriction No_Finalization.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Insert_Freeze_Node_For_Instance):  If the
	current instance is within the one that contains the generic,
	the freeze node for the current one must appear in the current
	declarative part. Ditto if the current instance is within another
	package instance. In both of these cases the freeze node of the
	previous instance is not relevant.

2011-10-24  Gary Dismukes  <dismukes@adacore.com>

	* switch-m.adb (Normalize_Compiler_Switches): Add recognition
	of AAMP-specific switches -univ and -aamp_target.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* a-tienau.adb (Put): Deal properly with limited line length.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb, sem_ch12.adb: Minor reformatting.

From-SVN: r180375
2011-10-24 12:31:29 +02:00
Tristan Gingold
8263e17a8c Makefile.in: Use GNU ld switches to generate map files on AIX.
2011-10-16  Tristan Gingold  <gingold@adacore.com>

        * gcc-interface/Makefile.in: Use GNU ld switches to generate map files
        on AIX.

From-SVN: r180374
2011-10-24 12:01:42 +02:00
Arnaud Charlet
12b4d33822 [multiple changes]
2011-10-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Earlier): make available globally. If both
	nodes have the same sloc, the freeze node that does not come
	from source is the later one.
	(True_Parent): Make available globally.
	(Previous_Instance): Subsidiary of
	Insert_Freeze_Node_For_Instance, to check whether the generic
	parent of the current instance is declared within a previous
	instance in the same unit or declarative  part, in which case the
	freeze nodes of both instances must appear in order to prevent
	elaboration problems in gigi.
	* sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a
	freeze point, and the freeze node of a preceding instantiation
	must be inserted before it.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* checks.ads, checks.adb: Add handling of Synchronization_Check
	* debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable
	atomic sync).
	* exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required
	flag Minor code reorganization.
	* opt.ads (Warn_On_Atomic_Synchronization): New switch.
	* par-prag.adb: Add dummy entries for pragma
	Disable/Enable_Atomic_Synchronization.
	* sem_prag.adb (Process_Suppress_Unsuppress): Handle
	case of Atomic_Synchronization specially (not suppressed
	by All_Checks, cannot be set from Source).
	(Pragma Disable/Enable_Atomic_Synchronization): Add processing.
	* sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag
	* snames.ads-tmpl: Add entry for Atomic_Synchronization Add
	entry for pragma Disable/Enable_Atomic_Synchronization
	* switch-c.adb: The -gnatp switch does not disable
	Atomic_Synchronization Add -gnatep switch to disable
	Atomic_Synchronization.
	* types.ads: Add entry for Synchronization_Check
	* usage.adb: Add line for -gnated switch
	* warnsw.adb: Settings for Warn_On_Atomic_Synchronization

From-SVN: r180373
2011-10-24 11:51:42 +02:00
Arnaud Charlet
08ce7bb81d [multiple changes]
2011-10-24  Geert Bosch  <bosch@adacore.com>

	* s-gearop.adb (Back_Substitute): Avoid overflow if matrix
	bounds start at Integer'First.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb, s-gearop.adb: Minor reformatting

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings
	* warnsw.ads: Add comments to Set_GNAT_Mode_Warnings

From-SVN: r180372
2011-10-24 11:41:42 +02:00
Georg-Johann Lay
d2111e2f14 avr.c: Break long lines.
* config/avr/avr.c: Break long lines.
	Define target hooks on the fly if applicable.
	(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
	overridden later.
	(targetm): Move definition to end of file.
	(avr_can_eliminate): Make static on the fly.
	(avr_frame_pointer_required_p): Ditto.
	(avr_hard_regno_scratch_ok): Ditto.
	(avr_builtin_setjmp_frame_value): Make static on the fly.
	Indent according to coding rules.
	(avr_case_values_threshold): Ditto.
	(avr_attribute_table): Move down.

From-SVN: r180371
2011-10-24 09:39:09 +00:00
Arnaud Charlet
292689c213 [multiple changes]
2011-10-24  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb (Process_Expression_Variable_Decl): No special
	handling for Project_Path unless it is an attribute.

2011-10-24  Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Check_Hidden_Primitives): New subprogram.
	(Install_Hidden_Primitives): New subprogram.
	(Restore_Hidden_Primitives): New subprogram.
	(Analyze_Formal_Package_Declaration,
	Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
	Invoke Check_Hidden_Primitives after every call to
	Analyze_Associations, and invoke Restore_Hidden_Primitives to
	restore their visibility after processing the instantiation.
	(Instantiate_Package_Body): Install visible primitives before
	analyzing the instantiation and uninstall them to restore their
	visibility when the instantiation has been analyzed.
	* sem_util.ads, sem_util.adb (Add_Suffix): New subprogram
	(Remove_Suffix): New subprogram
	* sem_ch3.adb (Derive_Subprogram): When handling
	a derived subprogram for the instantiation of a formal derived
	tagged type, inherit the dispatching attributes from the actual
	subprogram (not from the parent type).

From-SVN: r180370
2011-10-24 11:28:21 +02:00
Arnaud Charlet
db4b3c499d [multiple changes]
2011-10-24  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Document explicit use of XDECGNAT library.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Build_Assignment): Add local constant N_Loc and
	update its uses.
	(Build_Discriminant_Assignments): Add local variable D_Loc and update
	its uses.
	(Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and
	Var_Loc and update their uses.
	(Build_Record_Init_Proc): Code reformatting.
	(Increment_Counter): Add formal parameter Loc.
	(Make_Counter): Add formal parameter Loc.

2011-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_disp.adb (Covers_Some_Interface): Fix typo.

2011-10-24  Matthew Heaney  <heaney@adacore.com>

	* a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority):
	Predicate had wrong sense.

2011-10-24  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):
	Translate arguments in positional notation into pragma argument
	association arguments for the generated pragma.

2011-10-24  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch5.adb: Fix minor typo.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Is_Visible_Component): Refine predicate for
	the case of a component reference in an instance body, when the
	enclosing type is private.

From-SVN: r180369
2011-10-24 11:24:35 +02:00
Arnaud Charlet
86f0e17adc 2011-10-24 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi: For gnatelim, move the note about using the GNAT
	driver for getting the project support into gnatelim section.

2011-10-24  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor correction to documentation on address
	clause.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

	* s-finmas.adb (Attach): Synchronize and call the unprotected version.
	(Attach_Unprotected): New routine.
	(Delete_Finalize_Address): Removed.
	(Delete_Finalize_Address_Unprotected): New routine.
	(Detach): Synchronize and call the unprotected version.
	(Detach_Unprotected): Remove locking.
	(Finalize): Add various comment on synchronization. Lock the critical
	region and call the unprotected versions of routines.
	(Finalize_Address): Removed.
	(Finalize_Address_Unprotected): New routine.
	(Set_Finalize_Address): Synchronize and call
	the unprotected version.
	(Set_Finalize_Address_Unprotected): New routine.
	(Set_Heterogeneous_Finalize_Address): Removed.
	(Set_Heterogeneous_Finalize_Address_Unprotected): New routine.
	(Set_Is_Heterogeneous): Add comment on synchronization and
	locking.
	* s-finmas.ads: Flag Finalization_Started is no longer atomic
	because synchronization uses task locking / unlocking.
	(Attach): Add comment on usage.
	(Attach_Unprotected): New routine.
	(Delete_Finalize_Address): Renamed to
	Delete_Finalize_Address_Unprotected.
	(Detach): Add comment on usage.
	(Detach_Unprotected): New routine.
	(Finalize_Address): Renamed to Finalize_Address_Unprotected.
	(Set_Finalize_Address): Add comment on usage.
	(Set_Finalize_Address_Unprotected): New routine.
	(Set_Heterogeneous_Finalize_Address): Renamed to
	Set_Heterogeneous_Finalize_Address_Unprotected.
	* s-stposu.adb (Allocate_Any_Controlled): Add local variable
	Allocation_Locked. Add various comments on synchronization. Lock
	the critical region and call the unprotected version of
	routines.
	(Deallocate_Any_Controlled): Add various comments on
	synchronization. Lock the critical region and call the unprotected
	version of routines.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
	are universal and must carry the corresponding type.
	* sem_eval.adb (Check_Non_Static_Context): If the type of the
	expression is universal real, as may be the case for a fixed point
	expression with constant operands in the context of a conversion,
	there is nothing to check.
	* s-finmas.adb: Minor reformatting

From-SVN: r180368
2011-10-24 11:19:15 +02:00
Ira Rosen
02b76a8d70 re PR tree-optimization/50730 (SLP vectorization confused by unrelated DRs)
PR tree-optimization/50730
        * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic
        block analysis if encountered unsupported data-ref.

From-SVN: r180367
2011-10-24 09:16:53 +00:00
Ian Lance Taylor
a1ee0aafc7 Implement append([]byte, string...).
From-SVN: r180364
2011-10-24 05:00:34 +00:00
Ian Lance Taylor
703f56e5cb Some minor fixes to the rewritten syscall library.
From-SVN: r180363
2011-10-24 04:57:08 +00:00
David S. Miller
d377a5fbf1 Fix sol2 sparc -mv8 regression.
* config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
	cpu adjustment.
	* config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
	append -mcpu=v9 when -mv8plus is given.

From-SVN: r180362
2011-10-23 21:15:46 -07:00
Ian Lance Taylor
b7190f2fc6 Rename is_open_array_type to is_slice_type.
From-SVN: r180361
2011-10-24 04:06:44 +00:00
David S. Miller
bb12a72a48 Add support for sparc VIS3 fp<-->int moves.
* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
	between float and non-float regs when VIS3.
	* config/sparc/sparc.c (eligible_for_restore_insn): We can't
	use a restore when the source is a float register.
	(sparc_split_regreg_legitimate): When VIS3 allow moves between
	float and integer regs.
	(sparc_register_move_cost): Adjust to account for VIS3 moves.
	(sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
	integer reg to a class containing EXTRA_FP_REGS, constrain to
	FP_REGS.
	(sparc_secondary_reload): On 32-bit with VIS3 when moving between
	float and integer regs we sometimes need a FP_REGS class
	intermediate move to satisfy the reload.  When this happens
	specify an extra cost of 2.
	(*movsi_insn): Rename to have "_novis3" suffix and add !VIS3
	guard.
	(*movdi_insn_sp32_v9): Likewise.
	(*movdi_insn_sp64): Likewise.
	(*movsf_insn): Likewise.
	(*movdf_insn_sp32_v9): Likewise.
	(*movdf_insn_sp64): Likewise.
	(*zero_extendsidi2_insn_sp64): Likewise.
	(*sign_extendsidi2_insn): Likewise.
	(*movsi_insn_vis3): New insn.
	(*movdi_insn_sp32_v9_vis3): New insn.
	(*movdi_insn_sp64_vis3): New insn.
	(*movsf_insn_vis3): New insn.
	(*movdf_insn_sp32_v9_vis3): New insn.
	(*movdf_insn_sp64_vis3): New insn.
	(*zero_extendsidi2_insn_sp64_vis3): New insn.
	(*sign_extendsidi2_insn_vis3): New insn.
	(TFmode reg/reg split): Make sure both REG operands are float.
	(*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
	easy constant to integer reg alternatives.
	(*mov<VM64:mode>_insn_sp64): Likewise.
	(*mov<VM64:mode>_insn_sp32_novis3): Likewise.
	(*mov<VM32:mode>_insn_vis3): New insn.
	(*mov<VM64:mode>_insn_sp64_vis3): New insn.
	(*mov<VM64:mode>_insn_sp32_vis3): New insn.
	(VM64 reg<-->reg split): New spliiter for 32-bit.

From-SVN: r180360
2011-10-23 20:51:47 -07:00
Jonathan Wakely
ec8ab7c4e4 re PR libstdc++/50834 (Documentation about STL thread safety is ambiguous)
PR libstdc++/50834
	* doc/xml/manual/using.xml: Update thread safety docs w.r.t. C++11.

From-SVN: r180359
2011-10-24 01:19:56 +01:00
GCC Administrator
a0d90b97f0 Daily bump.
From-SVN: r180358
2011-10-24 00:17:20 +00:00
David S. Miller
b1fc9f8b8d Factor out common tests in 8-byte reg/reg move splitters on 32-bit sparc.
* config/sparc/sparc.c (sparc_split_regreg_legitimate): New
	function.
	* config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
	Declare it.
	* config/sparc/sparc.md (DImode reg/reg split): Use it.
	(DFmode reg/reg split): Likewise.

From-SVN: r180354
2011-10-23 15:34:07 -07:00
Steven G. Kargl
9c85d38bf4 simplify.c (simplify_transformation_to_array): Fix memory leak.
2011-10-23  Steven G. Kargl  <kargl@gcc.gnu.org>

    * simplify.c (simplify_transformation_to_array): Fix memory leak.

From-SVN: r180353
2011-10-23 22:30:00 +00:00
David S. Miller
1255f800a8 Add missing fzero/fone cases to DImode move on 32-bit v9 sparc.
* config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
	generating fzero and fone instructions.
	(DImode const_int --> reg splitter): Only trigger for integer regs.

From-SVN: r180352
2011-10-23 15:21:51 -07:00
David S. Miller
4d1a883835 Fix sparc so that reload doesn't try to load non-trivial vector consts directly.
* config/sparc/predicates.md (input_operand): Disallow vector
	constants other than 0 and -1.
	* config/sparc/sparc.c (sparc_preferred_reload_class): Return
	NO_REGS for vector constants other than 0 and -1.

From-SVN: r180351
2011-10-23 14:51:16 -07:00
David S. Miller
5a53588ff0 Use a macro instead of a constant to test for sparc integer regnos.
* config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
	SPARC_INT_REG_P): Define.
	(HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
	(REGNO_OK_FOR_INDEX_P): Likewise.
	* config/sparc/sparc.c (gen_df_reg): Likewise.
	(eligible_for_return_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	(sparc_legitimate_address_p): Likewise.
	(emit_save_or_restore_regs): Likewise.
	(registers_ok_for_ldd_peep): Likewise.
	* config/spac/sparc.md (DI mode splitters): Likewise.
	(SF mode const splitters): Likewise.
	(DF mode splitters): Likewise.
	(32-bit DI mode logical op splitters): Likewise.

From-SVN: r180350
2011-10-23 14:50:56 -07:00
Paolo Carlini
0bcf216b2a re PR c++/50841 (bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180349
2011-10-23 21:15:08 +00:00
Paolo Carlini
5f53c2438d re PR c++/50841 (bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50841
	Revert:
	2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180348
2011-10-23 20:59:43 +00:00
Eric Botcazou
be98aaf0bc * gcc-interface/decl.c (create_concat_name): Add explicit cast.
From-SVN: r180347
2011-10-23 20:21:06 +00:00
Uros Bizjak
0d459eaed8 sse.md (avx2_lshl<mode>3): Remove insn pattern.
* config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
	(VI248_256): Remove mode iterator.
	* config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
	instead of gen_avx2_lshlv4di3.
	(bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
	CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.

From-SVN: r180346
2011-10-23 21:48:41 +02:00
Ian Lance Taylor
de27caacfb Implement new syscall package.
Calls to library functions now use entersyscall and
exitsyscall as appropriate.  This is a first step toward
multiplexing goroutines onto threads.

From-SVN: r180345
2011-10-23 19:04:37 +00:00
Uros Bizjak
7b45b87f01 sse.md (sseintprefix): Rename from gthrfirstp.
* config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
	(<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
	pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
	*avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
	iterator.  Use sseintprefix mode attribute.
	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
	pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
	*avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
	iterator.  Use sseintprefix mode attribute.
	(*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
	attributes.
	(*avx2_gatherdi<mode>): Ditto.
	(*avx2_gatherdi<mode>256): Ditto.
	(VI48_AVX2): Remove mode iterator.
	(gthrlastfp): Remove mode attribute.

From-SVN: r180344
2011-10-23 20:43:11 +02:00
Paolo Carlini
263734e172 re PR c++/50810 (c++0x-compat does not warn about narrowing conversions)
/c-family
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
	of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
	Wnarrowing for C++0x and C++98.
	* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
	* decl.c (check_initializer): Likewise.
	* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* g++.dg/cpp0x/warn_cxx0x2.C: New.
	* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50810
	* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

From-SVN: r180343
2011-10-23 18:34:45 +00:00
Tom de Vries
19b6a33daa re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* gcc.dg/pr50763.c: New test.

From-SVN: r180342
2011-10-23 16:06:40 +00:00
Tom de Vries
4cbdcd40fa re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-23  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored out
	of ...
	(same_succ_flush_bbs): Use same_succ_flush_bb.
	(purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
	release_last_vdef and delete_basic_block.
	(unlink_virtual_phi): New function.
	(update_vuses): Add and use vuse1_phi_args argument.  Set var to
	SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that def_stmt2
	is NULL.  Use phi result as phi arg in case vuse1 or vuse2 is NULL_TREE.
	Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code to limit
	replacement of uses.  Propagate phi argument for phis with a single
	argument.
	(replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
	Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add vuse1_phi_args
	as argument to call to update_vuses.  Call release_last_vdef,
	same_succ_flush_bb, delete_basic_block.  Update CDI_DOMINATORS info.
	(tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
	call to free_dominance_info.  Only call calculate_dominance_info once.

From-SVN: r180341
2011-10-23 16:06:32 +00:00
Eric Botcazou
4db183a2d5 re PR tree-optimization/44683 (Optimization bug with copysign builtin)
* fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.

	PR tree-optimization/44683
	* tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
	we can be sure that there are no signed zeros involved.

From-SVN: r180340
2011-10-23 15:57:09 +00:00
Jan Hubicka
d621a5fb6d * ipa-inline.c (estimate_badness): Scale up and handle overflows.
From-SVN: r180336
2011-10-23 14:30:24 +00:00
Uros Bizjak
fe646a69c7 re PR target/50788 (ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256)
PR target/50788
	* config/i386/sse.md (avx2_maskload<ssemodesuffix><avxsizesuffix>):
	Remove (match_dup 0).
	(*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
	(*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
	(*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
	(*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.

testsuite/ChangeLog:

2011-10-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/50788
	* testsuite/gcc.target/i386/pr50788.c: New test.

From-SVN: r180335
2011-10-23 16:18:08 +02:00