1. 26 Oct, 2011 29 commits
    • thr-cse-1.c: For i?86-*-mingw*, check for multiple calls. · e7604cc4
      	* gcc.dg/tls/thr-cse-1.c: For i?86-*-mingw*, check for multiple
      	calls.
      
      From-SVN: r180546
      Joseph Myers committed
    • run-id-1.c: Pass -Wl,--stack,12582912 option for Windows targets. · 5f02a5e5
      	* gcc.dg/graphite/run-id-1.c: Pass -Wl,--stack,12582912 option for
      	Windows targets.
      
      From-SVN: r180545
      Joseph Myers committed
    • pr37843-4.c: Allow for leading underscores on symbol names. · 5bf2f563
      	* gcc.target/i386/pr37843-4.c: Allow for leading underscores on
      	symbol names.
      
      From-SVN: r180544
      Joseph Myers committed
    • * gcc.target/i386/pad-4.c: Skip for Windows targets. · 286a21ce
      From-SVN: r180543
      Joseph Myers committed
    • Canonicalize sparc movcc patterns such that operand 0 always appears in operand 4. · bf84f42d
      	* 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
      David S. Miller committed
    • decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local variable. · 1586f8a3
      	* 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
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Try to make a packable type for fields of union types as well. · e1e5852c
      	* 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
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_field): Always check components declared as atomic. · 0025cb63
      	* gcc-interface/decl.c (gnat_to_gnu_field): Always check components
      	declared as atomic.  Move around conditionally executed code.
      
      From-SVN: r180539
      Eric Botcazou committed
    • build_string comments · 1ca3916f
      From-SVN: r180537
      Jason Merrill committed
    • Implement C++11 user-defined literals. · 3ce4f9e4
      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
      Ed Smith-Rowland committed
    • 2011-10-26 Paolo Carlini <paolo.carlini@oracle.com> · 7f808cad
      	* Tweak last ChangeLog entry.
      
      From-SVN: r180532
      Paolo Carlini committed
    • re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and… · c5ce25ce
      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
      Paolo Carlini committed
    • HIcmp.c: Fix unaligned pointer. · e3c1bb61
      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
      Tom de Vries committed
    • reload.c (reload_inner_reg_of_subreg): Change type of return value and type of… · d9d09ca2
      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
      Eric Botcazou committed
    • re PR debug/50826 (bootstrap on 64 bit pa broken by r180194, ICE in mem_loc_descriptor) · bfd5f9f5
      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
      Alexandre Oliva committed
    • invoke.texi (sink-frequency-threshold): Document. · 1cc17820
      	* 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
      Jeff Law committed
    • re PR target/48108 (lto should be containerized in a single mach-o section on darwin) · b20577ea
      
      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
      Iain Sandoe committed
    • rs6000.c (rs6000_make_savres_rtx): Delete unneeded declaration. · d44b26bd
      	* 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
      Alan Modra committed
    • lto-wrapper.c (run_gcc): Properly init/free obstack. · 4559db79
      2011-10-26  Richard Guenther  <rguenther@suse.de>
      
      	* lto-wrapper.c (run_gcc): Properly init/free obstack.
      
      From-SVN: r180521
      Richard Guenther committed
    • i386.md (UNSPEC_VSIBADDR): New. · e43451aa
      	* 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
      Jakub Jelinek committed
    • re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge) · 6c137ca0
      2011-10-26  Tom de Vries  <tom@codesourcery.com>
      
      	PR tree-optimization/50763
      	* gcc.dg/pr50763-2.c: New test.
      
      From-SVN: r180519
      Tom de Vries committed
    • re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge) · 9e1d5f49
      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
      Tom de Vries committed
    • re PR driver/41844 (lto1: warning: unknown register name: line-length-none) · f31c0018
      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
      Richard Guenther committed
    • freebsd64.h (LINK_SPEC): Emit the same warning as the 32-bit target does. · fd444648
      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
      Andreas Tobler committed
    • 2011-10-25 Paolo Carlini <paolo.carlini@oracle.com> · 0a9ef972
      	
      	* Fix typo in last ChangeLog entry.
      
      From-SVN: r180467
      Paolo Carlini committed
    • re PR driver/46617 (String concatenation fools extraction for translation.) · f891a4ac
      2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR translation/46617
      	* gcc.c (main): Fix fatal_error string for translation.
      
      From-SVN: r180466
      Paolo Carlini committed
    • ms_c90-printf-1.c, [...]: Update expected messages. · 1be82918
      	* gcc.dg/format/ms_c90-printf-1.c, gcc.dg/format/ms_c90-scanf-1.c:
      	Update expected messages.
      
      From-SVN: r180465
      Joseph Myers committed
    • Daily bump. · e6bccf31
      From-SVN: r180464
      GCC Administrator committed
  2. 25 Oct, 2011 11 commits
    • tree-eh.c (do_return_redirection): Remove return_value_p parameter. · 8d686507
      	* 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
      Ian Lance Taylor committed
    • Remove *mmx_maskmovq_rex. · d7115452
      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
      H.J. Lu committed
    • re PR rtl-optimization/46603 (gcc.dg/vect/slp-multitypes-2.c execution failure) · 95d17cbf
      	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
      Eric Botcazou committed
    • dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily suppress debug… · 6ea685b8
      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
      Eric Botcazou committed
    • * config/ia64/ia64.c (ia64_profile_hook): Fix thinko. · 55504c7c
      From-SVN: r180455
      Eric Botcazou committed
    • condition_variable (condition_variable_any): Remove unused native_handle_type typedef. · 0fd72195
      	* 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
      Jonathan Wakely committed
    • i386: Delete the vec_extract_even/odd patterns. · 152a50a9
      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
      Richard Henderson committed
    • rs6000: Remove some vec_extract_even/odd expanders. · 45815441
      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
      Richard Henderson committed
    • spu: Remove vec_extract_even/odd and vec_interleave expanders. · c3a5818e
              * 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
      Richard Henderson committed
    • Implement interleave via permutation. · a6b3dfde
              * 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
      Richard Henderson committed
    • Change vec_perm checking and expansion level. · 22e4dee7
      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
      Richard Henderson committed