Commit Graph

112809 Commits

Author SHA1 Message Date
H.J. Lu
d7115452b2 Remove *mmx_maskmovq_rex.
2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
	remove "&& !TARGET_64BIT"
	(*mmx_maskmovq_rex): Removed.

From-SVN: r180458
2011-10-25 15:54:48 -07:00
Eric Botcazou
95d17cbf6d re PR rtl-optimization/46603 (gcc.dg/vect/slp-multitypes-2.c execution failure)
PR rtl-optimization/46603
	* reload.c (push_reload): In the out case, reload the subreg as well
	as the reg if it has word mode.

From-SVN: r180457
2011-10-25 22:26:20 +00:00
Eric Botcazou
6ea685b857 dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily suppress debug info for the parent type.
* dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
	suppress debug info for the parent type.

From-SVN: r180456
2011-10-25 22:14:26 +00:00
Eric Botcazou
55504c7cb6 * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
From-SVN: r180455
2011-10-25 21:56:48 +00:00
Jonathan Wakely
0fd72195bc condition_variable (condition_variable_any): Remove unused native_handle_type typedef.
* include/std/condition_variable (condition_variable_any): Remove
	unused native_handle_type typedef.
	* src/condition_variable.cc (condition_variable): Add missing noexcept
	specifications.
	* 30_threads/condition_variable_any/requirements/typedefs.cc: Remove.

From-SVN: r180454
2011-10-25 22:44:12 +01:00
Richard Henderson
152a50a993 i386: Delete the vec_extract_even/odd patterns.
These can be generated by vec_perm_const now.  We could keep the
patterns around, as technically it may be less work, but this
exercises a code path needed by less primary platforms.

        * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
        (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.

From-SVN: r180453
2011-10-25 14:30:26 -07:00
Richard Henderson
45815441c3 rs6000: Remove some vec_extract_even/odd expanders.
The ones that expand to VPERM can be handled by generic code.
The even v4si and v4sf expanders remain until vector.md can be
updated to not invoke them directly.

        * config/rs6000/altivec.md (vec_extract_evenv8hi,
        vec_extract_evenv16qi, vec_extract_oddv4si,
        vec_extract_oddv4sf): Remove.

From-SVN: r180452
2011-10-25 14:30:16 -07:00
Richard Henderson
c3a5818eb2 spu: Remove vec_extract_even/odd and vec_interleave expanders.
* config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
        vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
        vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
        vec_interleave_highv4sf, vec_interleave_lowv4sf,
        vec_interleave_highv4si, vec_interleave_lowv4si,
        vec_interleave_highv8hi, vec_interleave_lowv8hi,
        vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.

From-SVN: r180451
2011-10-25 14:30:04 -07:00
Richard Henderson
a6b3dfde4c Implement interleave via permutation.
* expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
        [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
        [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
        * optabs.c (expand_binop): Implement vec_interleave_high_optab,
        vec_interleave_low_optab, vec_extract_even_optab,
        vec_extract_odd_optab with expand_vec_perm.
        (can_vec_perm_for_code_p): New.
        * optabs.h: Update.
        * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
        fallback via can_vec_perm_for_code_p.
        (vect_strided_load_supported): Likewise.
        * tree-vect-generic.c (expand_vector_operations_1): Never lower
        VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
        VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.

From-SVN: r180450
2011-10-25 14:29:56 -07:00
Richard Henderson
22e4dee74f Change vec_perm checking and expansion level.
The can_vec_perm_p interface changed to use a C integer array.  This
allows easy re-use from the rtl level and the gimple level within
the vectorizer.  It allows both to determine if a given permutation
is (un-)supported without having to create tree/rtl garbage.

The expand_vec_perm interface changed to use rtl.  This allows easy
re-use from the rtl level, so that expand_vec_perm can be used in the
fallback implementation of other optabs.

        * target.def (vec_perm_const_ok): Change parameters to mode and
        array of indicies.
        * doc/tm.texi: Rebuild.
        * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
        parameters to mode and array of indicies.
        * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
        * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
        Change parameters to mode and array of indicies.
        (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
        (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
        parameters to mode and rtx inputs.  Try lowering to QImode
        vec_perm_const before trying fully variable permutation.
        * optabs.h: Update decls.
        * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
        VECTOR_CST to pass to can_vec_perm_p.
        * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
        from int pointer to unsigned char pointer.
        (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
        * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.

From-SVN: r180449
2011-10-25 14:29:48 -07:00
Richard Henderson
c3962b13f7 Fix typos in the names of vec_extract & vec_interleave tree codes.
From-SVN: r180448
2011-10-25 14:29:40 -07:00
Jonathan Wakely
5d020aa222 re PR libstdc++/50862 (deadlock in std::condition_variable_any)
PR libstdc++/50862
	* include/std/condition_variable (condition_variable_any::wait): Fix
	deadlock and ensure _Lock::lock() is called on exit.
	(condition_variable_any::native_handle): Remove, as per LWG 1500.
	* testsuite/30_threads/condition_variable_any/50862.cc: New.

From-SVN: r180446
2011-10-25 21:56:43 +01:00
Mike Stump
0c094ab301 re PR lto/48851 (lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format])
PR target/48851
	* inclhack.def (void_null): New bypass.
	* fixincl.x: Regenerate.

From-SVN: r180445
2011-10-25 20:07:19 +00:00
Mike Stump
601b6520e3 * reload.c (regno_clobbered_p): Fix typo.
From-SVN: r180444
2011-10-25 19:50:14 +00:00
Jason Merrill
14a3430e4f re PR c++/50866 (ICE in verify_gimple_stmt, at tree-cfg.c:4175)
PR c++/50866
	PR c++/41449
	* semantics.c (maybe_cleanup_point_expr_void): No longer static.
	* typeck2.c (split_nonconstant_init_1): Use it.
	* cp-tree.h: Declare it.
	* decl.c (wrap_cleanups_r): Stop at CLEANUP_POINT_EXPR.

From-SVN: r180442
2011-10-25 14:24:28 -04:00
Jason Merrill
0c59fd2fd2 re PR c++/49996 (Internal error in verify_gimple_stmt: initializing struct in new-initializer)
PR c++/49996
	* tree.c (stabilize_init): Stabilize scalar elements of a
	CONSTRUCTOR, too.

From-SVN: r180441
2011-10-25 14:24:19 -04:00
Ian Lance Taylor
04cc7d7c13 Solaris/Irix compatibility patches.
From-SVN: r180440
2011-10-25 18:06:32 +00:00
Ian Lance Taylor
f9367b7c70 Fix Solaris build.
From Rainer Orth.

From-SVN: r180439
2011-10-25 17:45:55 +00:00
Ian Lance Taylor
f29ce5f5f1 Implement predeclared delete function.
From-SVN: r180438
2011-10-25 17:21:07 +00:00
Ian Lance Taylor
09367c0d60 Don't permit close of receive-only channel.
Better panic on attempt to close nil channel.

From-SVN: r180437
2011-10-25 16:35:24 +00:00
Bernd Schmidt
0d53e34681 pr-support.c (pop_compact_frame, pop_frame): Correct logic for doubleword pops.
* config/c6x/pr-support.c (pop_compact_frame, pop_frame): Correct
	logic for doubleword pops.

From-SVN: r180435
2011-10-25 15:45:08 +00:00
Bernd Schmidt
5b2d9d9084 pr-support.c (__gnu_unwind_24bit): Correct logic for the case where B3 isn't the return register.
* config/c6x/pr-support.c (__gnu_unwind_24bit): Correct logic for the
	case where B3 isn't the return register.

From-SVN: r180434
2011-10-25 15:44:03 +00:00
Joseph Myers
793ff12bf2 * ja.po: Update.
From-SVN: r180432
2011-10-25 16:37:28 +01:00
Paolo Carlini
df9ee5c829 re PR c++/50858 (segfault at ../../gcc/libiberty/hashtab.c:981)
/cp
2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50858
	* typeck.c (composite_pointer_type_r): Check return value of
	composite_pointer_type_r for error_mark_node.

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

	PR c++/50858
	* g++.dg/overload/operator5.C: New.

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

	PR c++/50861
	* pt.c (tsubst_copy_and_build): Check return value of
	tsubst_copy_and_build for error_mark_node.

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

	PR c++/50861
	* g++.dg/template/crash108.C: New.

From-SVN: r180430
2011-10-25 13:48:10 +00:00
Kirill Yukhin
4bc5143271 * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r180429
2011-10-25 09:39:49 +00:00
Dodji Seketeli
3bb0c8dbb0 Fix lookup of macro maps
* line-map.c (linemap_macro_map_lookup): Fix logic.

From-SVN: r180427
2011-10-25 10:59:07 +02:00
Dodji Seketeli
84756fd40a Support expansion of reserved locations wrapped in virtual locations
libcpp/

	* include/line-map.h (linemap_expand_location): Take a line table
	parameter.  Update comment.
	(linemap_resolve_location): Update comment.
	(linemap_expand_location_full): Remove.
	* line-map.c (linemap_resolve_location):  Handle reserved
	locations; return a NULL map in those cases.
	(linemap_expand_location): If location is reserved, return a
	zeroed expanded location.  Update comment.  Take a line table to
	assert that the function takes non-virtual locations only.
	(linemap_expand_location_full): remove.
	(linemap_dump_location): Handle the fact that
	linemap_resolve_location can return NULL line maps when the
	location resolves to a reserved location.

gcc/
	* input.c (expand_location): Rewrite using
	linemap_resolve_location and linemap_expand_location.  Add a
	comment.

From-SVN: r180426
2011-10-25 10:58:54 +02:00
David S. Miller
ae5f5715d6 Delete remaining references to sparc little-endian support.
* config/sparc/little-endian.opt: Delete.
	* config.gcc: Remove references to config/sparc/little-endian.opt
	* doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
	* config/sparc/linux64.h: Delete references to -mlittle-endian.
	* config/sparc/netbsd-elf.h: Likewise.
	* config/sparc/openbsd64.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sp64-elf.h: Likewise and delete overrides for
	BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
	* config/sparc/sparc.c (dump_target_flag_bits): Remove reference
	to MASK_LITTLE_ENDIAN.
	* config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.

From-SVN: r180425
2011-10-25 01:57:25 -07:00
Jakub Jelinek
ab0ef70693 re PR tree-optimization/50596 (Problems in vectorization of condition expression)
PR tree-optimization/50596
	* tree-vect-stmts.c (vect_mark_relevant): Only use
	FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
	(vectorizable_store): If is_pattern_stmt_p look through
	VIEW_CONVERT_EXPR on lhs.
	* tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
	Use unsigned type instead of signed.
	(vect_recog_bool_pattern): Optimize also stores into bool memory in
	addition to casts from bool to integral types.
	(vect_mark_pattern_stmts): If pattern_stmt already has vinfo
	created, don't create it again.

	* gcc.dg/vect/vect-cond-10.c: New test.

From-SVN: r180424
2011-10-25 10:02:08 +02:00
Kai Tietz
db85437893 i386.c (ix86_frame_pointer_required): Require frame-pointer, if setjmp is used for 32-bit ms-abi.
* config/i386/i386.c (ix86_frame_pointer_required): Require
        frame-pointer, if setjmp is used for 32-bit ms-abi.

From-SVN: r180423
2011-10-25 09:32:31 +02:00
Ian Lance Taylor
cbe98a41a5 Implement new order of assignment rules.
In "i, x[i] = 1, 2" the assigment to x[i] must use the value
of i from before the assignment statement.

From-SVN: r180421
2011-10-25 05:37:48 +00:00
Andreas Tobler
cbffbd59d6 t-freebsd: Add wildcard.
2011-10-25  Andreas Tobler  <andreast@fgznet.ch>

	* config/rs6000/t-freebsd: Add wildcard.

From-SVN: r180420
2011-10-25 07:13:12 +02:00
Joey Ye
1e8eb1b79a pr42575.c: Remove architecture option.
2011-10-25  Joey Ye  <joey.ye@arm.com>

	* gcc.target/arm/pr42575.c: Remove architecture option.

From-SVN: r180419
2011-10-25 03:33:31 +00:00
David S. Miller
a160b43cf1 Add some sparc VIS3 move test cases.
gcc/testsuite/

	* gcc.target/sparc/vis3move-1.c: New test.
	* gcc.target/sparc/vis3move-2.c: New test.
	* gcc.target/sparc/vis3move-3.c: New test.

From-SVN: r180418
2011-10-24 20:22:15 -07:00
GCC Administrator
c04a30b4c0 Daily bump.
From-SVN: r180417
2011-10-25 00:19:13 +00:00
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