OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 73b15a8..ff41ceb 100644 (file)
@@ -1,3 +1,441 @@
+2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
+       status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+       * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
+       options for Cygwin DLL libstdc++ support wrappers.
+       (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
+       according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
+       (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
+       whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
+       (LINK_SPEC): Include CXX_WRAP_SPEC.
+       * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
+       (i386_find_on_wrapper_list): Check if a function is found on the list
+       of libstdc++ wrapper options.
+       (i386_pe_file_end): If we are importing a wrapped function, also emit
+       an external declaration for the real version.
+       * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
+       Cygwin targets. Update copyright year.
+
+2009-11-30  Steve Ellcey  <sje@cup.hp.com>
+           Jakub Jelinek <jakub@redhat.com>
+
+       * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
+       before forcing mode.
+
+2009-11-30  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/sh/sh.c (sh_promote_prototypes): Make static.
+       (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
+       functions.
+       (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
+       * config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
+       sh_function_value_regno_p.
+       (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
+       * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
+       (sh_promote_prototypes) : Remove.
+
+2009-11-30  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
+       reloads to LO_REGS.
+
+2009-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
+       (bdesc_special_args): Update insn codes.
+       (avx_vpermilp_parallel): Correct range check.
+       (ix86_rtx_costs): Handle vector permutation rtx codes.
+       (struct expand_vec_perm_d): Move earlier.
+       (get_mode_wider_vector): New.
+       (expand_vec_perm_broadcast_1): New.
+       (ix86_expand_vector_init_duplicate): Use it.  Tidy AVX modes.
+       (expand_vec_perm_broadcast): New.
+       (ix86_expand_vec_perm_builtin_1): Use it.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/predicates.md (avx_vbroadcast_operand): New.
+       * config/i386/sse.md (AVX256MODE24P): New.
+       (ssescalarmodesuffix2s): New.
+       (avxhalfvecmode, avxscalarmode): Fill out to all modes.
+       (avxmodesuffixf2c): Add V8SI, V4DI.
+       (vec_dupv4sf): New expander.
+       (*vec_dupv4sf_avx): Add vbroadcastss alternative.
+       (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
+       V4SF and V4SI.  Move C alternatives to front.  Add insertps and
+       pinsrd alternatives.
+       (*vec_set<mode>_0_sse2): Split out from ...
+       (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
+       (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
+       destination; use ix86_vec_interleave_v2df_operator_ok, instead of
+       ix86_fixup_binary_operands.
+       (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
+       (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
+       (*avx_movddup, *sse3_movddup): Remove.  New splitter from
+       vec_select form to vec_duplicate form.
+       (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
+       ix86_vec_interleave_v2df_operator_ok.
+       (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ... 
+       (*avx_unpcklpd256): ... here.
+       (*vec_dupv4si_avx): New.
+       (*vec_dupv2di_avx): Add movddup alternative.
+       (*vec_dupv2di_sse3): New.
+       (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
+       avx_vbroadcastss256; represent with vec_duplicate instead of 
+       nested vec_concat operations.
+       (avx_vbroadcastf128_<mode>): Rename from
+       avx_vbroadcastf128_p<avxmodesuffixf2c>256.
+       (*avx_vperm_broadcast_v4sf): New.
+       (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
+
+2009-11-30  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/42196
+       * tree-sra.c (struct access): New field grp_different_types.
+       (dump_access): Dump grp_different_types.
+       (compare_access_positions): Prefer scalars and vectors over other
+       scalar types.
+       (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
+       (sra_modify_expr): Use the original also when dealing with a complex
+        or vector group accessed as multiple types.
+
+2009-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (avx_vperm2f128_parallel): New.
+       * config/i386/i386-protos.h: Declare it.
+       * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
+       avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
+       * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
+       (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
+       (*avx_vperm2f128<mode>_nozero): New.
+
+2009-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
+       (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
+       * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
+       V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
+       (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
+       (bdesc_args): Add them.
+       (ix86_expand_builtin): Expand them.
+       (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
+
+2009-11-30  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/42206
+       * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
+
+2009-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * ipa-reference.c (propagate): Only dump bitmaps if computed.
+
+2009-11-30  Olga Golovanevsky  <olga@il.ibm.com>
+
+       PR middle-end/39806
+       * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
+       (new_var_hash): Likewise.
+       (is_in_new_vars_htab): Likewise.
+       (add_to_new_vars_htab): Likewise.
+
+2009-11-30  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-stmts.c (vectorizable_assignment): Support
+       multiple types.
+
+2009-11-30  Richard Guenther  <rguenther@suse.de>
+
+       * doc/contrib.texi (Contributors): Add myself.
+
+2009-11-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (free_lang_data): Do not set debug_info_level to
+       none if terse.
+
+2009-11-30  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/42119
+       PR fortran/38530
+       * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
+       of CONST_DECLs.
+
+2009-11-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
+       variable UID order.
+
+2009-11-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
+       * tree-pass.h (TDF_NOUID): Likewise.
+       * print-rtl.c: Include tree-pass.h.
+       (print_mem_expr): Pass dump_flags.
+       (print_rtx): Likewise.
+       * print-tree.c: Include tree-pass.h.
+       (print_node_brief): Handle TDF_NOUID.
+       (print_node): Likewise.
+       * tree-pretty-print.c (dump_decl_name): Likewise.
+       (dump_generic_node): Likewise.
+       * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
+       dependency.
+
+2009-11-30  Nick Clifton  <nickc@redhat.com>
+
+       * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
+       * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
+       stormy16-lib2-count-leading-zeros.c.
+       * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
+       __stormy16_count_leading_zeros() into this function.
+       (__ctzhi2): Use __builtin_clz.
+       (__ffshi2): Likewise.
+
+2009-11-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (DF_MODES): Simplify.
+       (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
+       (TF_MODES, OF_MODES): Adjust for above change.
+       (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
+       *  config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
+
+2009-11-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR rtl-optimization/41812
+       * fwprop.c (local_md, local_lr): New globals.
+       (process_defs, process_uses): Remove local_md argument.  Never
+       consider dead pseudos to have singleton def-use chains.
+       (single_def_use_enter_block): Perform LR simulation.
+       (build_single_def_use_links): Remove local_md local variable.
+       Add DF_NOTE.  Allocate local_lr.
+       (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
+       * df-problems.c (df_md_scratch): New.
+       (df_md_alloc, df_md_free): Allocate/free it.
+       (df_md_local_compute): Only include live registers in init.
+       (df_md_transfer_function): Prune the in-set computed by
+       the confluence function, and the gen-set too.
+
+2009-11-30  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/40086
+       * reorg.c (relax_delay_slots): When looking for redundant insn at
+       the branch target, use next_real_insn, not next_active_insn.
+
+2009-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * doc/install.texi: Update minimum MPC version to 0.8.
+
+2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
+       HONOR_SIGNED_ZEROS final condition.
+       (fnmsubsf4_powerpc_1): Same.
+       (fnmadddf4_fpr_1): Same.
+       (fnmsubdf4_fpr_1): Same.
+
+2009-11-29  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/42193
+       * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
+       to 1 in case of basic block SLP.
+       (vectorizable_load): Likewise.
+
+2009-11-28  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (same_body_alias_1): Break out of
+       (same_body_alias): ... here; remove comdat check; it is handled
+       in cp already.
+       (cgraph_add_thunk): New.
+       (dump_cgraph_node): Dump aliases and thunks.
+       * cgraph.h (cgraph_thunk_info): New structure.
+       (struct cgraph_node): Add thunk info.
+       (cgraph_add_thunk): New.
+       * cgraphunit.c (cgraph_emit_thunks): Remove.
+       (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
+       (assemble_thunk): New function.
+       (cgraph_expand_function): Handle thunks.
+       (thunk_adjust): New.
+       (init_lowered_empty_function): New.
+       * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
+       * lto-cgraph.c (lto_output_node): Stream thunk info.
+       (input_node): Likewise.
+       * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
+       * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
+       (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
+       * i386.c (x86_output_mi_thunk): Make output prettier.
+
+2009-11-28  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/42183
+       * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
+       address taken.  Merge the addressable state of the NRV
+       variable and the result instead of copying it.
+
+2009-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
+       malloc_fname variable.
+       (check_allocation_function): Remove unused gsi and bb_level_0
+       variables.
+       (transform_access_sites): Remove unused d_type_size and d_type_size_k
+       variables.
+       * omega.c (resurrect_subs): Remove unused n variable.
+       (omega_solve_geq): Remove unused neweqns variable.
+       * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
+       * tree-inline.c (declare_return_variable): Remove USE_P argument,
+       return use instead of var.
+       (remap_decl, remap_block): Remove unused fn variable.
+       (expand_call_inline): Remove unused retvar variable, adjust
+       declare_return_variable caller.
+       (optimize_inline_calls): Remove unused prev_fn variable.
+       * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
+       variable.
+       (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
+       variables.
+       * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
+       properly.
+       * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
+       variable.
+       (vect_create_epilog_for_reduction): Remove unused bytesize variable.
+       * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
+       parameter.  Remove unused par_stmt variable.
+       (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
+       (expand_omp_sections): Remove unused l1 variable.
+       (lower_omp_for): Remove unused ilist variable.
+       * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
+       Remove unused has_upstream_mem_write_p variable.
+       * recog.c (decode_asm_operands): Remove unused noperands variable.
+       * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
+       size2 variable.
+       * libgcov.c (__gcov_merge_delta): Remove unused last variable.
+       * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
+       base_nm variable.
+       (gen_conditions_for_pow): Remove unused ec variable.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
+       variable.
+       * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
+       fndecl variable.
+       * tree-ssa-sink.c (statement_sink_location): Remove unused code
+       variable.
+       * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
+       variables.
+       * tree-complex.c (create_one_component_var): Remove unused inner_type
+       variable.
+       * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
+       unnecessarily when GEN_*CALL omits that argument.
+       * regrename.c (regrename_optimize): Remove unused regs_seen variable.
+       (build_def_use): Remove unused icode variable.
+       * ipa-pure-const.c (check_call): Remove unused callee and avail
+       variables.
+       * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
+       * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
+       variable.
+       (vect_pattern_recog): Remove unused stmt variable.
+       * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
+       new_regions variable.
+       * postreload.c (reload_cse_simplify_operands): Remove unused mode
+       variable.
+       * tree-parloops.c (create_call_for_reduction_1): Remove unused
+       addr_type variable.
+       (create_parallel_loop): Remove unused res variable.
+       (gen_parallel_loop): Remove unused nloop variable.
+       * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
+       * value-prof.c (gimple_mod_subtract_transform,
+       gimple_stringops_transform): Remove unused value variable.
+       (gimple_stringops_values_to_profile): Remove unused fcode variable.
+       * tree-vrp.c (register_new_assert_for): Remove unused found variable.
+       (vrp_visit_switch_stmt): Remove unused n variable.
+       * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
+       variable.
+       (vectorizable_operation): Remove unused shift_p variable.
+       (vectorizable_store): Remove unused first_stmt_vinfo variable.
+       * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
+       variable.
+       (vect_permute_store_chain): Remove unused scalar_dest variable.
+       (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
+       variable.
+       * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
+       local_info variable.
+       * tree-optimize.c (tree_rest_of_compilation): Remove unused node
+       variable.
+       * optabs.c (expand_binop): Remove unused equiv_value variable.
+       (emit_libcall_block): Remove unused prev variable.
+       (init_optabs): Remove unused int_mode variable.
+       * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
+       variable.
+       (do_structure_copy): Remove unused lhsbase and rhsbase variables.
+       (find_func_aliases): Remove unused rhstype variable.
+       (ipa_pta_execute): Remove unused varid variable.
+
+2009-11-28  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
+
+       * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add. 
+
+2009-11-28  David Binderman  <dcb314@hotmail.com>
+
+       * ira-color.c (put_allocno_into_bucket): Remove set but not used
+       local variable hard_regs_num.
+       * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
+       * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
+       * lower-subreg.c (decompose_multiword_subregs): Remove next.
+
+2009-11-27  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/42006
+       * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
+       instead of create_tmp_var.  Set DECL_GIMPLE_REG_P to one manually
+       for vector and complex types.
+       (get_adjustment_for_base): Describe return value in the comment.
+
+2009-11-27  Nick Clifton  <nickc@redhat.com>
+
+       * longlong.h (count_leading_zeros): Define macro for stormy16
+       target.
+       (COUNT_LEADING_ZEROS_0): Likewise.      
+       * config/stormy16/stormy16-lib2.c: Arrange for separate
+       compilation of each function.
+       (__ffshi2): New function.
+       (__stormy16_count_leading_zeros): New function.
+       * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
+       compile each function into its own object file.
+       (stormy16-lib2-ashlsi3.c): New stub file.
+       (stormy16-lib2-ashrsi3.c): New stub file.
+       (stormy16-lib2-clzhi2.c): New stub file.
+       (stormy16-lib2-count-leading-zeros.c): New stub file.
+       (stormy16-lib2-ctzhi2.c): New stub file.
+       (stormy16-lib2-divsi3.c): New stub file.
+       (stormy16-lib2-ffshi2.c): New stub file.
+       (stormy16-lib2-lshrsi3.c): New stub file.
+       (stormy16-lib2-modsi3.c): New stub file.
+       (stormy16-lib2-parityhi2.c): New stub file.
+       (stormy16-lib2-popcounthi2.c): New stub file.
+       (stormy16-lib2-udivmodsi4.c): New stub file.
+       (stormy16-lib2-udivsi3.c): New stub file.
+       (stormy16-lib2-umodsi3.c): New stub file.
+
+2009-11-27  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (vec_interleave_highv16qi,
+       vec_interleave_lowv16qi, vec_interleave_highv8hi,
+       vec_interleave_lowv8hi, vec_interleave_highv4si,
+       vec_interleave_lowv4si, vec_interleave_highv2di,
+       vec_interleave_lowv2di, vec_interleave_highv4sf,
+       vec_interleave_lowv4sf, vec_interleave_highv2df,
+       vec_interleave_lowv2df): Remove expanders.
+       (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
+       sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
+       sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
+       Rename to their proper vec_interleave equivalent.  Update all users
+       to the new name.
+       * config/i386/i386.c, config/i386/i386.md: Update all users.
+
+2009-11-27  Michael Matz  <matz@suse.de>
+
+       PR rtl-optimization/42084
+       * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
+       use it to stop walking.
+       (expand_gimple_cond): Adjust call to above.
+
 2009-11-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        PR target/41810