Commit Graph

112839 Commits

Author SHA1 Message Date
Joseph Myers
e7604cc480 thr-cse-1.c: For i?86-*-mingw*, check for multiple calls.
* gcc.dg/tls/thr-cse-1.c: For i?86-*-mingw*, check for multiple
	calls.

From-SVN: r180546
2011-10-26 23:15:57 +01:00
Joseph Myers
5f02a5e574 run-id-1.c: Pass -Wl,--stack,12582912 option for Windows targets.
* gcc.dg/graphite/run-id-1.c: Pass -Wl,--stack,12582912 option for
	Windows targets.

From-SVN: r180545
2011-10-26 23:14:43 +01:00
Joseph Myers
5bf2f56385 pr37843-4.c: Allow for leading underscores on symbol names.
* gcc.target/i386/pr37843-4.c: Allow for leading underscores on
	symbol names.

From-SVN: r180544
2011-10-26 22:52:08 +01:00
Joseph Myers
286a21cee5 * gcc.target/i386/pad-4.c: Skip for Windows targets.
From-SVN: r180543
2011-10-26 22:51:35 +01:00
David S. Miller
bf84f42d61 Canonicalize sparc movcc patterns such that operand 0 always appears in operand 4.
* config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
	* config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
	(*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
	(*mov<I:mode>_cc_reg_sp64): Likewise.
	(*movsf_cc_v9): Likewise.
	(*movsf_cc_reg_sp64): Likewise.
	(*movdf_cc_v9): Likewise.
	(*movdf_cc_reg_sp64): Likewise.
	(*movtf_cc_hq_v9): Likewise.
	(*movtf_cc_reg_hq_sp64): Likewise.
	(*movtf_cc_v9): Likewise.
	(*movtf_cc_reg_sp64): Likewise.
	* config/sparc/sparc.c (sparc_expand_conditional_move): New function.
	(sparc_print_operand): Delete 'c' and 'd' handling, no longer used.

From-SVN: r180542
2011-10-26 14:14:56 -07:00
Eric Botcazou
1586f8a371 decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local variable.
* gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local
	variable.  Always create the elaboration variable, if any, as constant.

From-SVN: r180541
2011-10-26 21:05:10 +00:00
Eric Botcazou
e1e5852c9f decl.c (gnat_to_gnu_entity): Try to make a packable type for fields of union types as well.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to
	make a packable type for fields of union types as well.
	<is_type>: Use RECORD_OR_UNION_TYPE_P predicate.
	(gnat_to_gnu_component_type): Try to make a packable type for fields
	of union types as well.
	(make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate.
	(maybe_pad_type): Try to make a packable type for fields of union types
	as well.
	(gnat_to_gnu_field): Likewise.
	(is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate.
	(set_rm_size): Likewise.
	(rm_size): Likewise.
	* gcc-interface/misc.c (gnat_type_max_size): Likewise.
	* gcc-interface/trans.c (add_decl_expr): Likewise.
	* gcc-interface/utils.c (finish_record_type): Likewise.
	* gcc-interface/utils2.c (build_simple_component_ref): Likewise.

From-SVN: r180540
2011-10-26 20:45:09 +00:00
Eric Botcazou
0025cb6381 decl.c (gnat_to_gnu_field): Always check components declared as atomic.
* gcc-interface/decl.c (gnat_to_gnu_field): Always check components
	declared as atomic.  Move around conditionally executed code.

From-SVN: r180539
2011-10-26 20:32:17 +00:00
Jason Merrill
24847495f3 * typeck.c (check_literal_operator_args): Avoid building types.
From-SVN: r180538
2011-10-26 15:31:26 -04:00
Jason Merrill
1ca3916f56 build_string comments
From-SVN: r180537
2011-10-26 15:31:16 -04:00
Ed Smith-Rowland
3ce4f9e4d2 Implement C++11 user-defined literals.
libcpp/
	* expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
	cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
	cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
	cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
	(cpp_classify_number): Classify unrecognized tokens as user-defined
	literals.
	* include/cpplib.h: Add new tokens for user-defined literals.
	* init.c: Add new preprocessor flag (cxx11).
	* lex.c: (lex_string, lex_raw_string): Handle user-defined literals
	including concatenation and promotion with suffixes.
c-family/
	* c-common.c (build_userdef_literal): New.
	* c-common.def: New tree code.
	* c-common.h (tree_userdef_literal): New tree struct and accessors.
	* c-lex.c (interpret_float): Add suffix parm.
	(c_lex_with_flags): Build literal tokens.
cp/
	* cp-objcp-common.c: (cp_tree_size) Return size of USERDEF_LITERAL tree.
	* cp-tree.h: (UDLIT_OP_*, UDLIT_OPER_P): Literal operator
	name tools. New tree code for user-defined literals.
	* cxx-pretty-print.h: (pp_cxx_userdef_literal) New.
	* cxx-pretty-print.c: (pp_cxx_userdef_literal) New.
	(pp_cxx_primary_expression, pp_cxx_expression): Use it.
	* decl.c: (cp_tree_node_structure): Return new tree code.
	(duplicate_decls): Check for raw vs. template operator conflicts.
	(grokfndecl, grokdeclarator): New checks for literal operators.
	* error.c: (dump_expr): Warn about user-defined literals
	in C++98 mode. (dump_function_name): Pretty printing.
	* mangle.c: (write_literal_operator_name): New.
	(write_unqualified_id, write_unqualified_name): Use it.
	* parser.c: (cp_parser_operator): Handle operator"".
	(cp_parser_userdef_char_literal, cp_parser_userdef_numeric_literal,
	cp_parser_userdef_string_literal): New.
	(cp_parser_primary_expression): Handle new user-defined literal tokens
	with new functions.
	* semantics.c: (potential_constant_expression_1): Add
	user-defined literals.
	* typeck.c (check_raw_literal_operator,
	check_literal_operator_args): New.

From-SVN: r180536
2011-10-26 15:30:59 -04:00
Paolo Carlini
7f808cadda 2011-10-26 Paolo Carlini <paolo.carlini@oracle.com>
* Tweak last ChangeLog entry.

From-SVN: r180532
2011-10-26 18:04:57 +00:00
Paolo Carlini
c5ce25ce93 re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and default template arguments)
2011-10-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (cp_build_addr_expr_1): Use BASELINK_P.
	* class.c (instantiate_type): Likewise.
	* pt.c (convert_nontype_argument_function, uses_template_parms,
	tsubst_copy, resolve_nondeduced_context, type_dependent_expression_p):
	Likewise.
	* semantics.c (finish_decltype_type): Likewise.
	* decl2.c (mark_used): Likewise.
	* name-lookup.c (arg_assoc): Likewise.

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

	PR c++/50870
	* typeck.c (non_reference): Pass NULL_TREE through.

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

	PR c++/50870
	* g++.dg/cpp0x/decltype34.C: New.

From-SVN: r180531
2011-10-26 17:59:36 +00:00
Tom de Vries
e3c1bb6126 HIcmp.c: Fix unaligned pointer.
2011-10-26  Tom de Vries <tom@codesourcery.com>

	* gcc.c-torture/unsorted/HIcmp.c: Fix unaligned pointer.
	* gcc.c-torture/unsorted/HIset.c: Same.
	* gcc.c-torture/unsorted/SIcmp.c: Same.
	* gcc.c-torture/unsorted/SIset.c: Same.
	* gcc.c-torture/unsorted/SFset.c: Same.
	* gcc.c-torture/unsorted/UHIcmp.c: Same.
	* gcc.c-torture/unsorted/USIcmp.c: Same.
	* gcc.c-torture/unsorted/DFcmp.c: Same.

From-SVN: r180528
2011-10-26 15:04:59 +00:00
Eric Botcazou
d9d09ca2d6 reload.c (reload_inner_reg_of_subreg): Change type of return value and type of OUTPUT parameter to bool and adjust.
* reload.c (reload_inner_reg_of_subreg): Change type of return value
	and type of OUTPUT parameter to bool and adjust.  Document MODE and
	OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
	and improve associated comment.
	(push_reload): Clarify and update comments about reloading of subregs.
	Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
	for the reloading of subregs in the out case as well.

From-SVN: r180526
2011-10-26 13:54:13 +00:00
Alexandre Oliva
bfd5f9f59d re PR debug/50826 (bootstrap on 64 bit pa broken by r180194, ICE in mem_loc_descriptor)
PR debug/50826
* var-tracking.c (rtx_debug_expr_p): New.
(use_type): Don't use debug exprs to track non-VTA variables.

From-SVN: r180525
2011-10-26 13:47:48 +00:00
Jeff Law
1cc17820c3 invoke.texi (sink-frequency-threshold): Document.
* doc/invoke.texi (sink-frequency-threshold): Document.
	* tree-ssa-sink.c: Include params.h.
	(select_best_block): New function.
	(statement_sink_location): Use it.
	* params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.

From-SVN: r180524
2011-10-26 07:26:50 -06:00
Iain Sandoe
b20577eae4 re PR target/48108 (lto should be containerized in a single mach-o section on darwin)
gcc:

	PR target/48108
	* config/darwin.c (top level): Amend comments concerning LTO output.
	(lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
	(LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
	(LTO_NAMES_SECTION): Rename.
	(darwin_asm_named_section): Record LTO section counts and switches
	in a vec of darwin_lto_section_e.
	(darwin_file_start): Remove unused code.
	(darwin_file_end): Put an LTO section termination label.  Handle
	output of the wrapped LTO sections, index and names table.

libiberty:

	PR target/48108
	* simple-object-mach-o.c  (GNU_WRAPPER_SECTS, GNU_WRAPPER_INDEX,
	GNU_WRAPPER_NAMES): New macros.
	(simple_object_mach_o_segment): Handle wrapper scheme.
	(simple_object_mach_o_write_section_header): Allow the segment name
	to be supplied.
	(simple_object_mach_o_write_segment): Handle wrapper scheme.  Ensure
	that the top-level segment name in the load command is empty.
	(simple_object_mach_o_write_to_file): Determine the number of
	sections during segment output, use that in writing the header.

From-SVN: r180523
2011-10-26 12:37:59 +00:00
Alan Modra
d44b26bdf4 rs6000.c (rs6000_make_savres_rtx): Delete unneeded declaration.
* config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
	declaration.
	(rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
	(rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
	simple_return in pattern, emit instruction, and set jump_label.
	(rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
	simple_return rather than return.
	(emit_cfa_restores): New function.
	(rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
	Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
	when using out-of-line gpr restore.  Add missing LR and FP regs
	cfa_restores for out-of-line fpr restore.  Consolidate code setting
	up cfa_restores.  Formatting.  Use LR_REGNO define.
	(rs6000_output_mi_thunk): Use simple_return rather than return.
	* config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
	(return_internal*): Likewise.
	(any_return, return_pred, return_str): New iterators.
	(return, conditional return insns): Provide both return and
	simple_return variants.
	* config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
	(REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
	Move r11 and r0 later to suit shrink-wrapping.

From-SVN: r180522
2011-10-26 22:29:41 +10:30
Richard Guenther
4559db79d8 lto-wrapper.c (run_gcc): Properly init/free obstack.
2011-10-26  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (run_gcc): Properly init/free obstack.

From-SVN: r180521
2011-10-26 11:48:09 +00:00
Jakub Jelinek
e43451aaaf i386.md (UNSPEC_VSIBADDR): New.
* config/i386/i386.md (UNSPEC_VSIBADDR): New.
	* config/i386/predicates.md (vsib_address_operand,
	vsib_mem_operator): New predicates.
	* config/i386/i386.c (ix86_print_operand_address): Handle
	UNSPEC_VSIBADDR addresses.
	* config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
	avx2_gatherdi<mode>256): Adjust expanders to use MEM with
	UNSPEC_VSIBADDR address.
	(*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
	Adjust insns to use MEM with UNSPEC_VSIBADDR address.

	* gcc.target/i386/avx2-i32gatherd-1.c: Adjust scan-assembler regex
	to work also with -masm=intel and additionally test the xmm vs. ymm
	register type combination on mask/dest and in vsib.
	* gcc.target/i386/avx2-i32gatherd256-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherd256-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherd-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherpd-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherpd256-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherpd256-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherpd-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherps-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherps256-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherps256-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherps-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherq-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherq256-1.c: Likewise.
	* gcc.target/i386/avx2-i32gatherq256-3.c: Likewise.
	* gcc.target/i386/avx2-i32gatherq-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherd-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherd256-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherd256-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherd-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherpd-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherpd256-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherpd256-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherpd-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherps-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherps256-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherps256-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherps-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherq-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherq256-1.c: Likewise.
	* gcc.target/i386/avx2-i64gatherq256-3.c: Likewise.
	* gcc.target/i386/avx2-i64gatherq-3.c: Likewise.

From-SVN: r180520
2011-10-26 11:46:45 +02:00
Tom de Vries
6c137ca0a2 re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-26  Tom de Vries  <tom@codesourcery.com>

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

From-SVN: r180519
2011-10-26 09:33:56 +00:00
Tom de Vries
9e1d5f491f re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-26  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50763
	* tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
	phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.

From-SVN: r180518
2011-10-26 09:33:49 +00:00
Richard Guenther
f31c001887 re PR driver/41844 (lto1: warning: unknown register name: line-length-none)
2011-10-26  Richard Guenther  <rguenther@suse.de>

	PR lto/41844
	* Makefile.in (lto-wrapper): Depend on and link against
	opts-common.o.
	(lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
	* lto-wrapper.c (get_options_from_collect_gcc_options): New function.
	(run_gcc): Use it.  Filter out language specific options.

From-SVN: r180517
2011-10-26 09:30:29 +00:00
Andreas Tobler
fd44464875 freebsd64.h (LINK_SPEC): Emit the same warning as the 32-bit target does.
2011-10-26  Andreas Tobler  <andreast@fgznet.ch>

	* config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
	32-bit target does.

From-SVN: r180468
2011-10-26 08:59:47 +02:00
Paolo Carlini
0a9ef9723d 2011-10-25 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typo in last ChangeLog entry.

From-SVN: r180467
2011-10-26 00:55:15 +00:00
Paolo Carlini
f891a4ac5a re PR driver/46617 (String concatenation fools extraction for translation.)
2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR translation/46617
	* gcc.c (main): Fix fatal_error string for translation.

From-SVN: r180466
2011-10-26 00:50:11 +00:00
Joseph Myers
1be82918f1 ms_c90-printf-1.c, [...]: Update expected messages.
* gcc.dg/format/ms_c90-printf-1.c, gcc.dg/format/ms_c90-scanf-1.c:
	Update expected messages.

From-SVN: r180465
2011-10-26 01:36:44 +01:00
GCC Administrator
e6bccf3124 Daily bump.
From-SVN: r180464
2011-10-26 00:18:51 +00:00
Ian Lance Taylor
8d686507c0 tree-eh.c (do_return_redirection): Remove return_value_p parameter.
* tree-eh.c (do_return_redirection): Remove return_value_p
	parameter.  Change all callers.
	(lower_try_finally_nofallthru): Remove local return_val.
	(lower_try_finally_onedest): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.

From-SVN: r180459
2011-10-25 22:59:40 +00:00
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