Commit Graph

101484 Commits

Author SHA1 Message Date
Kai Tietz
3e26ba50da Add missing e-mail address.
From-SVN: r161771
2010-07-03 12:30:52 +02:00
Eric Botcazou
40d1f6afc1 decl.c (gnat_to_gnu_entity): Branch to common code handling the alignment of discrete types.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>:
	Branch to common code handling the alignment of discrete types.
	<E_Signed_Integer_Type>: Likewise.
	<E_Modular_Integer_Type>: Likewise.

From-SVN: r161770
2010-07-03 09:54:13 +00:00
Iain Sandoe
cb5eb94e1c re PR testsuite/44518 (objc++ encode-2.mm and encode-3.mm fail on several platforms)
2010-07-03  Iain Sandoe  <iains@gcc.gnu.org>
	    Mikael Pettersson  <mikpe@it.uu.se>

        PR testsuite/44518
	* obj-c++.dg/encode-2.mm: Produce object and save temps.
	Make signed-ness of chars explicit.  Scan the object for
	strings that are split by some target assemblers.
	* obj-c++.dg/encode-3.mm: Make the signed-ness of chars
	explicit.


Co-Authored-By: Mikael Pettersson <mikpe@it.uu.se>

From-SVN: r161769
2010-07-03 08:15:59 +00:00
Eric Botcazou
e2cb8da267 Fix long lines
From-SVN: r161768
2010-07-03 06:23:09 +00:00
Hans-Peter Nilsson
d9e7913ca2 * gfortran.dg/char_bounds_check_fail_1.f90: Correct dg-output string.
From-SVN: r161767
2010-07-03 06:07:59 +00:00
Le-Chun Wu
3f59fa1c96 invoke.texi: Update documentation of -Wshadow.
PR/44128
       * gcc/doc/invoke.texi: Update documentation of -Wshadow.
       * gcc/cp/name-lookup.c (pushdecl_maybe_friend): Warn when a local
       decl (variable or type) shadows another type.
       * gcc/testsuite/g++.dg/warn/Wshadow-7.C: New test.

From-SVN: r161765
2010-07-03 01:10:06 +00:00
Daniel Jacobowitz
73160ba9dc arm.c (arm_canonicalize_comparison): Canonicalize DImode comparisons.
2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
	comparisons.  Adjust to take both operands.
	(arm_select_cc_mode): Handle DImode comparisons.
	(arm_gen_compare_reg): Generate a scratch register for DImode
	comparisons which require one.  Use xor for Thumb equality checks.
	(arm_const_double_by_immediates): New.
	(arm_print_operand): Allow 'Q' and 'R' for constants.
	(get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
	* config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
	arm_canonicalize_comparison.
	* config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
	* config/arm/arm-protos.h (arm_canonicalize_comparison): Update
	prototype.
	(arm_const_double_by_immediates): Declare.
	* config/arm/constraints.md (Di): New constraint.
	* config/arm/predicates.md (arm_immediate_di_operand)
	(arm_di_operand, cmpdi_operand): New.
	* config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
	(*arm_cmpdi_insn, *arm_cmpdi_unsigned)
	(*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
	(cstoredi4): Handle non-Cirrus also.

	gcc/testsuite/
	* gcc.c-torture/execute/20100416-1.c: New test case.


Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r161764
2010-07-02 21:00:37 -04:00
Julian Brown
400cfcf50e re PR target/43703 (Unexpected floating point precision loss due to ARM NEON autovectorization)
2010-07-02  Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	PR target/43703

	gcc/
	* config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
	(smax<mode>3): Disable for NEON float modes when
	flag_unsafe_math_optimizations is false.
	* config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
	(*mul<mode>3_neon)
	(mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
	(reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
	for NEON float modes when flag_unsafe_math_optimizations is false.
	(quad_halves_<code>v4sf): Only enable if flag_unsafe_math_optimizations
	is true.
	* doc/invoke.texi (ARM Options): Add note about floating point
	vectorization requiring -funsafe-math-optimizations.

	gcc/testsuite/
	* gcc.dg/vect/vect.exp: Add -ffast-math for NEON.
	* gcc.dg/vect/vect-reduc-6.c: Add XFAIL for NEON.



Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r161763
2010-07-02 20:46:51 -04:00
Sandra Loosemore
bab53516d0 neon.md (UNSPEC_VABA): Delete.
2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	gcc/
	* config/arm/neon.md (UNSPEC_VABA): Delete.
	(UNSPEC_VABAL): Delete.
	(UNSPEC_VABS): Delete.
	(UNSPEC_VMUL_N): Delete.
	(adddi3_neon): New.
	(subdi3_neon): New.
	(mul<mode>3add<mode>_neon): Make the pattern named.
	(mul<mode>3neg<mode>add<mode>_neon): Likewise.
	(neon_vadd<mode>): Replace with define_expand, and move the remaining
	unspec parts...
	(neon_vadd<mode>_unspec): ...to this.
	(neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
	(neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
	(neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
	(neon_vaba<mode>): Rewrite in terms of vabd.
	(neon_vabal<mode>): Rewrite in terms of vabdl.
	(neon_vabs<mode>): Rewrite without unspec.
	* config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
	(*arm_subdi3): Likewise.
	* config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
	No_op attribute to disable assembly output checks.
	* config/arm/arm_neon.h: Regenerated.
	* doc/arm-neon-intrinsics.texi: Regenerated.

	gcc/testsuite/
	* gcc.target/arm/neon/vadds64.c: Regenerated.
	* gcc.target/arm/neon/vaddu64.c: Regenerated.
	* gcc.target/arm/neon/vsubs64.c: Regenerated.
	* gcc.target/arm/neon/vsubu64.c: Regenerated.
	* gcc.target/arm/neon-vmla-1.c: Add -ffast-math to options.
	* gcc.target/arm/neon-vmls-1.c: Likewise.
	* gcc.target/arm/neon-vsubs64.c: New execution test.
	* gcc.target/arm/neon-vsubu64.c: New execution test.
	* gcc.target/arm/neon-vadds64.c: New execution test.
	* gcc.target/arm/neon-vaddu64.c: New execution test.

Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r161762
2010-07-02 20:31:43 -04:00
GCC Administrator
b614e5669e Daily bump.
From-SVN: r161760
2010-07-03 00:18:48 +00:00
Jan Hubicka
556e9ba028 ipa-split.c (split_function): For aggregate values set return_slot_opt...
* ipa-split.c (split_function): For aggregate values set return_slot_opt;
	when passing DECL_BY_REFERENCE produce *<retval> = fncall.part ()
	(execute_split_functions): Do not care about DECL_BY_REFERENCE.

From-SVN: r161756
2010-07-02 23:38:19 +00:00
Sandra Loosemore
b3b7bbce43 neon.md (UNSPEC_VAND): Delete.
2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/neon.md (UNSPEC_VAND): Delete.
	(UNSPEC_VBIC): Delete.
	(UNSPEC_VCLZ): Delete.
	(UNSPEC_VCNT): Delete.
	(UNSPEC_VEOR): Delete.
	(UNSPEC_VORN): Delete.
	(UNSPEC_VORR): Delete.
	(iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
	core registers too.
	(anddi3_neon): Likewise.
	(orndi3_neon): Likewise.
	(bicdi3_neon): Likewise.
	(xordi3_neon): Likewise.
	(neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
	rid of unspec and handle unused operand.
	(neon_vcnt<mode>): Similarly, with popcount<mode>2.
	* config/arm/predicates.md (imm_for_neon_logic_operand):
	Require TARGET_NEON.
	(imm_for_neon_inv_logic_operand): Likewise.
	* config/arm/arm.md (define_split for logical_binary_operator): 
	Disable for NEON registers.
	(anddi3): Add new define_expand, and rename the insn.  Disable
	this insn for NEON, where anddi3_neon now applies.
	(*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
	(iordi3): As for anddi3.
	(xordi3): Likewise.
	* config/arm/neon.ml (Vand): Split DImode variants and mark them
	as No_op to disable testing for exact instruction match.
	(Vorr): Likewise.
	(Veor): Likewise.
	(Vbic): Likewise.
	(Vorn): Likewise.
	* config/arm/arm_neon.h: Regenerated.
	* doc/arm-neon-intrinsics.texi: Regenerated.

	gcc/testsuite/
	* gcc.target/arm/neon-vands64.c: New.
	* gcc.target/arm/neon-vandu64.c: New.
	* gcc.target/arm/neon-vbics64.c: New.
	* gcc.target/arm/neon-vbicu64.c: New.
	* gcc.target/arm/neon-veors64.c: New.
	* gcc.target/arm/neon-veoru64.c: New.
	* gcc.target/arm/neon-vorns64.c: New.
	* gcc.target/arm/neon-vornu64.c: New.
	* gcc.target/arm/neon-vorrs64.c: New.
	* gcc.target/arm/neon-vorru64.c: New.
	* gcc.target/arm/neon/vands64.c: Regenerated.
	* gcc.target/arm/neon/vandu64.c: Regenerated.
	* gcc.target/arm/neon/vbics64.c: Regenerated.
	* gcc.target/arm/neon/vbicu64.c: Regenerated.
	* gcc.target/arm/neon/veors64.c: Regenerated.
	* gcc.target/arm/neon/veoru64.c: Regenerated.
	* gcc.target/arm/neon/vorns64.c: Regenerated.
	* gcc.target/arm/neon/vornu64.c: Regenerated.
	* gcc.target/arm/neon/vorrs64.c: Regenerated.
	* gcc.target/arm/neon/vorru64.c: Regenerated.

From-SVN: r161755
2010-07-02 19:16:35 -04:00
Eric Botcazou
f4a4b582ca Minor fixes
From-SVN: r161751
2010-07-02 21:38:40 +00:00
Eric Botcazou
260c8ba389 expr.h (emit_stack_probe): Declare.
* expr.h (emit_stack_probe): Declare.
	* explow.c (emit_stack_probe): Make global.
	(anti_adjust_stack_and_probe): Fix comments.
	* config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
	* config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/sparc/sparc.c: Include except.h.
	(sparc_emit_probe_stack_range): New function.
	(output_probe_stack_range): Likewise.
	(sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
	built-in stack checking is enabled.
	* config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
	* config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
	(probe_stack_range): New insn.

From-SVN: r161749
2010-07-02 21:25:28 +00:00
Jerry DeLisle
8c54dc55ef runtime_warning_1.f90: Remove extra dg line.
2010-07-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/runtime_warning_1.f90: Remove extra dg line.

From-SVN: r161747
2010-07-02 20:57:08 +00:00
Richard Guenther
e4f1aef136 re PR target/43958 (FAIL: gcc.dg/ipa/ipa-pta-10.c scan-ipa-dump pta "ESCAPED = { }")
PR target/43958
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
	for argument alignment.

From-SVN: r161746
2010-07-02 20:51:58 +00:00
Jerry DeLisle
1b9d45ed41 runtime_warning_1.f90: Fix dg syntax.
2010-07-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* gfortran.dg/runtime_warning_1.f90: Fix dg syntax.
	* gfortran.dg/intent_out_5.f90: Same.
	* gfortran.dg/ltrans-7.f90: Same.
	* gfortran.dg/char_bounds_check_fail_1.f90: Same.

From-SVN: r161745
2010-07-02 20:51:50 +00:00
Jan Hubicka
2094f1fcd6 ipa-split.c (verify_non_ssa_vars): Break out from ......
* ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS walk
	backwards from entry_bb to check only those basic block of header
	that might lead to execution of split part.
	(consider_split) ... here.
	(find_return_bb): Allow assignment in return BB.
	(find_retval): New.
	(split_function): Fix name of cloned function; take care of updating return
	value in return_bb containing move.

	* gcc.dg/tree-ssa/ipa-split-5.c: New function.

From-SVN: r161744
2010-07-02 20:45:00 +00:00
Iain Sandoe
c21ae2bfce Object1.h: Correct Line endings.
* objc-obj-c++-shared/Object1.h: Correct Line endings.

From-SVN: r161743
2010-07-02 20:34:27 +00:00
Jakub Jelinek
416f380b0d re PR c++/44780 (Bogus set-but-not-used variable warning)
PR c++/44780
	* typeck.c (convert_for_assignment): When converting a convertible
	vector type or objc++ types, call mark_rvalue_use.
	* typeck2.c (build_m_component_ref): Use return values from
	mark_rvalue_use or mark_lvalue_use.
	* class.c (build_base_path): Likewise.
	* call.c (build_conditional_expr): Likewise.

	* c-c++-common/Wunused-var-12.c: New test.

From-SVN: r161742
2010-07-02 22:22:32 +02:00
Andreas Schwab
2dc8bd762e re PR target/44771 (m68k_expand_prologue: variable set but not used)
PR target/44771
* config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
used variable insn.

From-SVN: r161741
2010-07-02 20:15:59 +00:00
Mikael Morin
ff5b6492be re PR fortran/44662 (unitialized memory on testcases abstract_type_6.f03 and typebound_call_4.f03)
2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/44662
	* decl.c (match_procedure_in_type): Clear structure before using.
	(gfc_match_generic): Ditto.

From-SVN: r161739
2010-07-02 20:01:05 +00:00
Nathan Froyd
dfd6ece2cb trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
* trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
	* trans-types.c (gfc_add_field_to_struct_1): New function, most
	of which comes from...
	(gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
	(gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
	building fields.
	(gfc_get_array_descriptor_base): Likewise.
	(gfc_get_mixed_entry_union): Likewise.
	(gfc_get_derived_type): Add extra chain parameter for
	gfc_add_field_to_struct.
	* trans-stmt.c (gfc_trans_character_select): Likewise.
	* trans-io.c (gfc_build_st_parameter): Likewise.

From-SVN: r161738
2010-07-02 19:53:24 +00:00
Eric Botcazou
0acba2b4cc implicit-zee.c (combine_reaching_defs): Fix long lines.
* implicit-zee.c (combine_reaching_defs): Fix long lines.
	(is_set_with_extension_DI): Delete.
	(struct zero_extend_info): New structure.
	(add_removable_zero_extend ): New function.
	(find_removable_zero_extends): Use note_stores to find SETs.
	(find_and_remove_ze): Fix long line, remove superfluous parentheses.

From-SVN: r161736
2010-07-02 19:25:30 +00:00
Tobias Burnus
7a0208b791 re PR libfortran/43298 (fortran library does not read in NaN -Inf or Inf)
2010-06-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43298
        * list_read.c (parse_real): Do not pass (..) on for NAN(..).
        * read.c (convert_real): Fix comment about NAN/INF.

From-SVN: r161735
2010-07-02 21:07:30 +02:00
Jakub Jelinek
f0ee5e3e2a Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
* Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
	* Makefile.in: Regenerated.

From-SVN: r161731
2010-07-02 18:52:38 +02:00
Sebastian Pop
f3e3b4762b Script to check patches violating the GNU style.
2010-07-02  Sebastian Pop  <sebastian.pop@amd.com>

	* check_GNU_style.sh: New.

From-SVN: r161729
2010-07-02 16:34:55 +00:00
Changpeng Fang
14e444c392 Reduce the cost in miss rate computation.
2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
	is_miss_rate_acceptable. Pull total_positions computation
	out of the loops.  Early return if miss_positions exceeds
	the acceptable threshold.
	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
	is_miss_rate_acceptable after renaming of compute_miss_rate.

From-SVN: r161728
2010-07-02 16:34:38 +00:00
Changpeng Fang
a245c04bcc PR 44576: miss rate computation improvement for prefetching loop arrays.
2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>

	PR middle-end/44576
	* tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
	of 1000) for miss rate if the address diference is greater than or
	equal to the cache line size (the two reference will never hit the
	same cache line).

From-SVN: r161727
2010-07-02 16:34:29 +00:00
Bernd Schmidt
e4c6a07ab5 re PR tree-optimization/42172 (inefficient bit fields assignments)
PR target/42172
	* config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
	and ZERO_EXTEND.
	(arm_rtx_costs_1): Likewise.
	(arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
	* config/arm/arm.md (is_arch6): New attribute.
	(zero_extendhisi2, zero_extendqisi2, extendhisi2,
	extendqisi2): Tighten the code somewhat, avoiding invalid
	RTL to occur in the expander patterns.
	(thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
	(thumb1_zero_extendhisi2_v6): Delete.
	(thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
	(thumb1_extendhisi2_v6): Delete.
	(thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
	(thumb1_extendqisi2_v6): Delete.
	(zero_extendhisi2 for register input splitter): New.
	(zero_extendqisi2 for register input splitter): New.
	(thumb1_extendhisi2 for register input splitter): New.
	(extendhisi2 for register input splitter): New.
	(extendqisi2 for register input splitter): New.
	(TARGET_THUMB1 extendqisi2 for memory input splitter): New.
	(arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
	and add support for a register alternative requiring a split.
	(thumb1_zero_extendqisi2): Likewise.
	(arm_zero_extendqisi2): Likewise.
	(arm_extendhisi2): Likewise.
	(arm_extendqisi2): Likewise.

testsuite/
	PR target/42172
	* gcc.target/arm/pr42172-1.c: New test.

From-SVN: r161726
2010-07-02 16:25:59 +00:00
Bernd Schmidt
18e8200f70 re PR rtl-optimization/42835 (Missed merging common code sequence at the end of two basic blocks)
PR target/42835
	* config/arm/arm-modes.def (CC_NOTB): New mode.
	* config/arm/arm.c (get_arm_condition_code): Handle it.
	* config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
	* config/arm/arm.md (subsi3_compare0_c): New pattern.
	(compare_scc): Now a define_and_split.  Add a number of extra
	splitters before it.

testsuite/
	PR target/42835
	* gcc.target/arm/pr42835.c: New test.

From-SVN: r161725
2010-07-02 16:22:33 +00:00
Rainer Orth
faeb4ee3aa configure.ac (gfortran_use_symver): Only check for Sun-style symbol versioning on Solaris 2.
libgfortran:
	* configure.ac (gfortran_use_symver): Only check for Sun-style symbol
	versioning on Solaris 2.
	* configure: Regenerate.

	libssp:
	* configure.ac (ssp_use_symver): Only check for Sun-style symbol
	versioning on Solaris 2.
	* configure: Regenerate.

From-SVN: r161724
2010-07-02 16:17:04 +00:00
Paolo Carlini
1fa29c8462 crash101.C: Remove stray // from dg-error comment.
2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/template/crash101.C: Remove stray // from dg-error comment.

From-SVN: r161722
2010-07-02 15:17:10 +00:00
Sandra Loosemore
a277dd9b1a arm.c (neon_vdup_constant): Expand into canonical RTL instead of an unspec.
2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
	instead of an unspec.
	(neon_expand_vector_init): Likewise.
	* config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
	(UNSPEC_VDUP_LANE): Delete.
	(UNSPEC VDUP_N): Delete.
	(UNSPEC_VGET_HIGH): Delete.
	(UNSPEC_VGET_LANE): Delete.
	(UNSPEC_VGET_LOW): Delete.
	(UNSPEC_VMVN): Delete.
	(UNSPEC_VSET_LANE): Delete.
	(V_double_vector_mode): New.
	(vec_set<mode>_internal): Make code emitted match that for the
	corresponding intrinsics.
	(vec_setv2di_internal): Likewise.
	(neon_vget_lanedi): Rewrite to expand into emit_move_insn.
	(neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
	(neon_vset_lane<mode>): Combine double and quad patterns and
	expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
	(neon_vset_lanedi): Rewrite to expand into emit_move_insn.
	(neon_vdup_n<mode>): Rewrite RTL without unspec.
	(neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
	(neon_vdup_nv2di): Rewrite RTL without unspec and merge with
	with neon_vdup_lanev2di, adjusting the pattern from the latter
	to be predicable for consistency.
	(neon_vdup_lane<mode>_internal): New.
	(neon_vdup_lane<mode>): Turn into a define_expand and rewrite
	to avoid using an unspec.
	(neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
	(neon_vdup_lanev2di): Turn into a define_expand.
	(neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
	(neon_vget_high<mode>): Replace with....
	(neon_vget_highv16qi): New pattern using canonical RTL.
	(neon_vget_highv8hi): Likewise.
	(neon_vget_highv4si): Likewise.
	(neon_vget_highv4sf): Likewise.
	(neon_vget_highv2di): Likewise.
	(neon_vget_low<mode>): Replace with....
	(neon_vget_lowv16qi): New pattern using canonical RTL.
	(neon_vget_lowv8hi): Likewise.
	(neon_vget_lowv4si): Likewise.
	(neon_vget_lowv4sf): Likewise.
	(neon_vget_lowv2di): Likewise.

	* config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
	test for this emitting vmov.
	(Vset_lane): Likewise.
	(Vdup_n): Likewise.
	(Vmov_n): Likewise.

	* doc/arm-neon-intrinsics.texi: Regenerated.

	gcc/testsuite/
	* gcc.target/arm/neon/vdup_ns64.c: Regenerated.
	* gcc.target/arm/neon/vdup_nu64.c: Regenerated.
	* gcc.target/arm/neon/vdupQ_ns64.c: Regenerated.
	* gcc.target/arm/neon/vdupQ_nu64.c: Regenerated.
	* gcc.target/arm/neon/vmov_ns64.c: Regenerated.
	* gcc.target/arm/neon/vmov_nu64.c: Regenerated.
	* gcc.target/arm/neon/vmovQ_ns64.c: Regenerated.
	* gcc.target/arm/neon/vmovQ_nu64.c: Regenerated.
	* gcc.target/arm/neon/vget_lanes64.c: Regenerated.
	* gcc.target/arm/neon/vget_laneu64.c: Regenerated.
	* gcc.target/arm/neon/vset_lanes64.c: Regenerated.
	* gcc.target/arm/neon/vset_laneu64.c: Regenerated.
	* gcc.target/arm/neon-vdup_ns64.c: New.
	* gcc.target/arm/neon-vdup_nu64.c: New.
	* gcc.target/arm/neon-vdupQ_ns64.c: New.
	* gcc.target/arm/neon-vdupQ_nu64.c: New.
	* gcc.target/arm/neon-vdupQ_lanes64.c: New.
	* gcc.target/arm/neon-vdupQ_laneu64.c: New.
	* gcc.target/arm/neon-vmov_ns64.c: New.
	* gcc.target/arm/neon-vmov_nu64.c: New.
	* gcc.target/arm/neon-vmovQ_ns64.c: New.
	* gcc.target/arm/neon-vmovQ_nu64.c: New.
	* gcc.target/arm/neon-vget_lanes64.c: New.
	* gcc.target/arm/neon-vget_laneu64.c: New.
	* gcc.target/arm/neon-vset_lanes64.c: New.
	* gcc.target/arm/neon-vset_laneu64.c: New.

From-SVN: r161720
2010-07-02 10:48:04 -04:00
Sandra Loosemore
8c98c2a6cc neon.md (vec_extractv2di): Correct error in register numbering to reconcile with neon_vget_lanev2di.
2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/arm/neon.md (vec_extractv2di): Correct error in register
	numbering to reconcile with neon_vget_lanev2di.

From-SVN: r161719
2010-07-02 10:43:26 -04:00
Richard Guenther
90fa9e17bf tree-ssa-structalias.c (pt_solution_set_var): New function.
2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (pt_solution_set_var): New function.
	* tree-ssa-alias.h (pt_solution_set_var): Declare.
	* tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
	points-to information.

From-SVN: r161716
2010-07-02 13:25:23 +00:00
Christian Borntraeger
c3ac3ddf84 s390.c (override_options): Adopt prefetching at -O3 to handle flag_prefetch_loop_arrays as a tristate.
2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
 
	* config/s390/s390.c (override_options): Adopt prefetching
	at -O3 to handle flag_prefetch_loop_arrays as a tristate.

From-SVN: r161709
2010-07-02 12:43:00 +00:00
Jan Hubicka
b144ba9d4d df-problems.c (df_kill_notes): Do not collect dead notes.
* df-problems.c (df_kill_notes): Do not collect dead  notes.
	(df_set_note): Just call add_reg_note.
	(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_create_unused_note): Do not deal with lists of old notes.
	(df_note_bb_compute): Likewise.

From-SVN: r161708
2010-07-02 12:30:38 +00:00
Richard Guenther
fca821b51c tree-ssa-structalias.c (find_func_aliases): Handle pointer alignment via BIT_AND_EXPR.
2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Handle
	pointer alignment via BIT_AND_EXPR.
	* tree-vrp.c (extract_range_from_binary_expr): Likewise.

From-SVN: r161707
2010-07-02 12:28:54 +00:00
Rainer Orth
8198d54181 acinclude.m4 (symvers_renaming): Define HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT instead of...
2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* acinclude.m4 (symvers_renaming): Define
	HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT instead of
	_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
	Fix syntax error.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r161706
2010-07-02 12:09:29 +00:00
Richard Guenther
1936833358 tree-data-ref.c (initialize_data_dependence_relation): Handle mismatching number of dimensions properly.
2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (initialize_data_dependence_relation): Handle
	mismatching number of dimensions properly.

	* g++.dg/torture/20100702-1.C: New testcase.

From-SVN: r161705
2010-07-02 12:05:59 +00:00
Eric Botcazou
2334baf490 misc.c (gnat_handle_option): Do not populate gnat_argv.
* gcc-interface/misc.c (gnat_handle_option): Do not populate gnat_argv.
	(gnat_handle_option): Allocate only one element for gnat_argv.
	(gnat_init): Do not populate gnat_argv.

From-SVN: r161704
2010-07-02 11:52:30 +00:00
Ulrich Weigand
1a4fc49d7f re PR target/44707 (operand requires impossible reload)
ChangeLog:

	PR target/44707
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
	(lo_sum (high ...) ...) patterns generated by earlier passes.

testsuite/ChangeLog:

	PR target/44707
	* gcc.c-torture/compile/pr44707.c: New test.

From-SVN: r161703
2010-07-02 11:48:30 +00:00
Matthias Klose
d1f736a2d7 - Revert two chunks from libstdc++-v3/python/libstdcxx/v6/printers.py,
left over from testing.

From-SVN: r161702
2010-07-02 10:55:51 +00:00
Rainer Orth
1e0859a29e Missed in last commit.
From-SVN: r161701
2010-07-02 10:26:12 +00:00
Rainer Orth
ca6d1176f7 configure.ac: Check for Sun symbol versioning.
* configure.ac: Check for Sun symbol versioning.
	Check for memmove.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* Makefile.am [LIBSSP_USE_SYMVER]: Protect version_arg,
	version_dep with LIBSSP_USE_SYMVER_GNU.
	[LIBSSP_USE_SYMVER_SUN]: Handle Sun symbol versioning.
	* Makefile.in: Regenerate.

	* ssp.map: Reformat.

	* memmove-chk.c: Change guard to HAVE_MEMMOVE.

From-SVN: r161699
2010-07-02 10:15:09 +00:00
Paolo Carlini
baf7c318bb re PR c++/44039 (ICE: Segmentation fault on error recovery)
/cp
2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44039
	* pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
	returns NULL_TREE.

/testsuite
2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44039
	* g++.dg/template/crash101.C: New.

From-SVN: r161698
2010-07-02 10:13:21 +00:00
Rainer Orth
49ea7a0ef9 configure.ac: Check for Sun symbol versioning.
* configure.ac: Check for Sun symbol versioning.
	* configure: Regenerate.

	* Makefile.am [LIBGFOR_USE_SYMVER]: Protect version_arg with
	LIBGFOR_USE_SYMVER_GNU.
	Add version_dep.
	[LIBGFOR_USE_SYMVER_SUN]: Handle Sun symbol versioning.
	[!LIBGFOR_USE_SYMVER]: Add version_dep.
	(libgfortran_la_DEPENDENCIES): Set to $(version_dep).
	* Makefile.in: Regenerate.

From-SVN: r161697
2010-07-02 10:12:34 +00:00
Rainer Orth
c18dc5ccea gc++filt.m4: New file.
config:
	* gc++filt.m4: New file.

	contrib:
	* make_sunver.pl: New file.

	libstdc++v3:
	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Handle sun style.
	Require GCC_PROG_GNU_CXXFILT.
	(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define
	unless targetting solaris2*.
	Include ../config/gc++filt.m4.
	* configure.host (i?86-*-solaris2*): Set abi_baseline_pair.
	(sparc-*-solaris2*): Likewise.
	* src/Makefile.am [ENABLE_SYMVERS_SUN] (version_dep, version_arg):
	New variables.
	(libstdc++-symbols.ver-sun): New target.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Likewise.
	* doc/Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* po/Makefile.in: Likewise.
	* python/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* src/atomic.cc: Only define/use _GLIBCXX_ASM_SYMVER if
	_GLIBCXX_HAVE_SYMVER_RENAMING_RUNTIME_SUPPORT.
	* src/compatibility.cc: Likewise.
	* testsuite/Makefile.am (baseline_subdir): Define.
	(baseline_symbols): Use it.
	(new-abi-baseline): Likewise.
	* testsuite/Makefile.in: Regenerate.

	* config/abi/pre/gnu.ver (GLIBCXX_3.4.5): Enclose duplicates in
	#ifdef HAVE_SYMVER_RENAMING_RUNTIME_SUPPORT.
	(GLIBCXX_3.4.6): Likewise.

	* doc/xml/manual/configure.xml (--enable-symvers): Document sun
	style.

	* doc/xml/manual/abi.xml: Fix grammar.
	(Symbol versioning on the libstdc++.so binary): Fix mapfile path.
	(Incremental bumping of a library pre-defined macro): Fix
	c++config path.
	(Incremental bumping of a library pre-defined macro,
	_GLIBCPP_VERSION): Likewise.
	(Matching each specific C++ compiler release to a specific set of
	C++ include files): Fix acinclude.m4 path.
	(Prerequisites): Allow for Sun linker on Solaris 2.5+.
	Use proper link to Configuring.
	Fix acinclude.m4 path.
	(Checking Active): Allow for additional symbol versioning styles.
	Provide Solaris 2 example with pvs -r.
	(Bibliography): Update Linker and Libraries Guide, C++ Migration
	Guide entries.

	gcc:
	* doc/install.texi (Prerequisites): Document Perl requirement on
	Solaris 2.
	(Specific, *-*-solaris2*): Document GNU c++filt requirement.

From-SVN: r161696
2010-07-02 10:05:49 +00:00
Richard Guenther
7dd536f1bc re PR middle-end/44777 (ICE: SIGSEGV with -fprofile-use in gcc.c-torture/execute/comp-goto-2.c)
2010-07-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44777
	* tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.

From-SVN: r161694
2010-07-02 09:57:12 +00:00