OSDN Git Service

PR c/42312
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2c22499..a4d7594 100644 (file)
@@ -1,3 +1,948 @@
+2009-12-07  DJ Delorie  <dj@redhat.com>
+
+       PR c/42312
+       * config/mep/mep.c (mep_expand_prologue): Set
+       really_need_stack_frame after frame_size is set.
+
+2009-12-07  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/42269
+       * combine.c (setup_incoming_promotions): Improve the conditions
+       under which we respect the promotions applied.
+
+2009-12-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
+       * config/sparc/linux64.h (ASM_SPEC): Likewise.
+
+2009-12-07  Richard Henderson  <rth@redhat.com>
+
+       PR debug/42299
+       PR debug/42166
+       * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
+       for ssa names already registered for update.
+
+2009-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/42244
+       * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
+       is a DEBUG_INSN.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
+       options when bit_LWP is set.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/cpuid.h (bit_ABM): New.
+       * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
+       options when bit_ABM is set.
+
+2009-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
+       this array ...
+       (bdesc_args): ... here.
+       * config.gcc (i[34567]86-*-*): Include abmintrin.h.
+       (x86_64-*-*): Likewise.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
+       * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
+       * config/i386/i386-c.c (__POPCNT__): Defined.
+       * config/i386/popcntintrin.h: ...here.  New file.
+       * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
+       Include popcntintrin.h.
+       * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
+       is defined.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
+       Removed.
+       * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
+       * config/i386/sse.md: Remove all XOP splitters.
+       Allow the second and fourth operands of XOP multiply-add insns
+       to be nonimmediate.
+
+2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/sse.md: Remove all FMA4 splitters.
+       Allow the second operand of FMA4 insns to be a nonimmediate.
+       Fix comments punctuation.
+
+2009-12-07  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/constraints.md (Ps, Pt): New constraint letters.
+       * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
+
+2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR other/40302
+       * configure.ac (HAVE_mpc): Don't define.
+       * config.in, configure: Regenerate.
+
+       PR other/40302
+       * builtins.c: Remove HAVE_mpc* checks throughout.
+       * fold-const.c: Likewise.
+       * real.h: Likewise.
+       * toplev.c: Likewise.
+
+2009-12-07  Edmar Wienskoski  <edmar@freescale.com>
+
+       * config.gcc (cpu_is_64bit): Add new core e500mc64.
+       (powerpc*-*-*): Add new core e500mc64.
+       * config/rs6000/e500mc64.md: New file.
+       * config/rs6000/rs6000.c (processor_costs): Add new costs for
+       e500mc64.
+       (rs6000_override_options): Add e500mc64 case to
+       processor_target_table. Altivec and Spe options not allowed with
+       e500mc64. Disable string instructions for e500mc64. Enable branch
+       targets alignment for both e500mc and e500mc64. Initialize
+       rs6000_cost for e500mc64.
+       (rs6000_emit_sISEL): New function.
+       (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
+       (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
+       generation.
+       (rs6000_issue_rate): Set issue rate for e500mc64.
+       (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
+       on architectures with isel.
+       * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
+       * config/rs6000/rs6000.h (processor_type): Add
+       PROCESSOR_PPCE500MC64.
+       (ASM_CPU_SPEC): Add e500mc64.
+       * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
+       Include e500mc64.md.
+       (abssi2_isel): Expand pattern to handle DImode.
+       (nabs<mode>2_isel): New pattern.
+       (absdi2): Change pattern to handle 64 bit isel targets.
+       (absdi2_internal): Exclude ISEL targets.
+       (nabsdi2): Exclude ISEL targets.
+       * doc/invoke.texi: Add e500mc64 to list of cpus.
+
+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (any_or): New code iterator.
+       (any_logic): Rename from plogic code iterator.
+       (logicprefix): Rename from plogicprefix code attribute.
+       (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
+       any_or code iterator.
+       (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
+       any_or code iterator.
+       (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
+       (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
+       (ior and xor splitters): Ditto.
+       * config/i386/mmx.md: Updated for rename.
+       * config/i386/sse.md: Ditto.
+
+2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
+       Remove quotes around condition logic code.
+
+2009-12-06  Richard Henderson  <rth@redhat.com>
+
+       PR debug/42234
+       * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
+       argument earlier.
+
+2009-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * doc/install.texi: Document MPC is required.
+
+2009-12-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (g): Add HImode and QImode.
+       (general_szext_operand): New mode attribute.
+       (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
+       SWI124 mode iterator.
+       (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
+       SWI124 mode iterator.
+       (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
+       SWI248 mode iterator.
+       (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
+       SWI mode iterator.
+       (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
+       SWI mode iterator.
+       (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
+       SWIM mode iterator.
+       (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
+       SWI248 mode iterator.
+       (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
+       SWI mode iterator.
+       (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
+       SWI mode iterator.
+
+2009-12-05  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
+       MASK_FUSED_MADD.
+       * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
+       "'-mfused-madd' was removed".
+       * config/i386/i386.opt (mfused-madd): New.
+       * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
+       * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
+
+2009-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
+       * pa-hpux10.h (LIB_SPEC): Likewise.
+       * pa-hpux11.h (LIB_SPEC): Likewise.
+
+       PR ada/41912
+       * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
+       for signal frames.
+       * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
+
+2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure: Regenerate.
+
+2009-12-05  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
+       for the scratch.
+
+2009-12-04  David Daney  <ddaney@caviumnetworks.com>
+
+       PR rtl-optimization/42164
+       * combine.c (combine_simplify_rtx): Handle truncation of integer
+       constants.
+
+2009-12-04  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-out.c (pack_ts_decl_common_value_fields):
+       Revert previous change.
+       (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
+       * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
+       Likewise.
+
+2009-12-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+       BUILT_IN_MALLOC.
+       (call_may_clobber_ref_p_1): Likewise.
+
+2009-12-04  Matthias Klose  <doko@ubuntu.com>
+           John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/40134
+       * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
+       * config/pa/pa-linux.h (LIB_SPEC): Remove.
+
+2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
+           Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
+       * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
+       * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
+       * config/i386/sse.md (fma4_*): Remove alternative with operand 1
+       matching a memory access.  Do not use ix86_fma4_valid_op_p.
+       (xop_*): Same.
+       Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
+
+2009-12-03  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
+       all operands into registers.
+
+2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
+       parameter.
+       * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
+       * config/i386/sse.md: Same.
+
+2009-12-03  Richard Guenther  <rguenther@suse.de>
+
+       * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
+       instead of DECL_NAME for the entry point.
+
+2009-12-03  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
+       before the lock release.
+
+2009-12-03  Michael Matz  <matz@suse.de>
+
+       PR middle-end/38474
+       * cfgexpand.c (struct stack_var): Add conflicts member.
+       (stack_vars_conflict, stack_vars_conflict_alloc,
+       n_stack_vars_conflict): Remove.
+       (add_stack_var): Initialize conflicts member.
+       (triangular_index, resize_stack_vars_conflict): Remove.
+       (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
+       terms of new member.
+       (union_stack_vars): Only run over the conflicts.
+       (partition_stack_vars): Remove special case.
+       (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
+       don't create self-conflicts.
+       (account_used_vars_for_block): Don't create any conflicts.
+       (fini_vars_expansion): Free bitmaps, don't free or clear removed
+       globals.
+
+2009-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       PR middle-end/42202
+       * regrename.c (live_in_chains): New variable.
+       (verify_reg_tracked): New static function.
+       (scan_rtx_reg): Update live_in_chains.
+       (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
+       we're already tracking the reg.
+       (build_def_use): Likewise.  Initialize live_in_chains.
+
+2009-12-03  Ken Werner  <ken.werner@de.ibm.com>
+
+       * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
+       startup files.
+       * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
+       * config/spu/spu.c (spu_function_profiler): New function.
+       * config/spu/spu.h (FUNCTION_PROFILER): Invoke
+       spu_function_profiler.
+       (NO_PROFILE_COUNTERS): Define.
+       (PROFILE_BEFORE_PROLOGUE): Likewise.
+
+2009-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * ggc-page.c (struct free_object): Pull definition out ...
+       (struct globals): .. from here.
+
+2009-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (div_if_zero_remainder): Honor that sizetypes
+       are sign-extending.  Simplify.
+
+2009-12-02  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/42215
+       * tree-loop-distribution.c (build_size_arg_loc): Tidy.
+       (generate_memset_zero): Convert to sizetype properly.  Tidy.
+
+2009-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-out.c (pack_ts_decl_common_value_fields):
+       Do not pretend we have value exprs.
+
+2009-12-02  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/41491
+       * fold-const.c (try_move_mult_to_index): Do not leak
+       domain types into the IL.
+
+2009-12-02  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/42088
+       * tree.c (free_lang_data): Disable if not using LTO.
+
+2009-12-02  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/42229
+       * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
+
+2009-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       PR middle-end/42224
+       * tree.h (int_or_pointer_precision): Remove.
+       * tree.c (int_or_pointer_precision): Remove.
+       (integer_pow2p): Use TYPE_PRECISION instead.
+       (tree_log2): Likewise.
+       (tree_floor_log2): Likewise.
+       (signed_or_unsigned_type_for): Likewise.
+       * fold-const.c (fit_double_type): Likewise.
+       * varasm.c (initializer_constant_valid_p): Likewise.
+
+2009-12-02  Ira Rosen  <irar@il.ibm.com>
+
+       * doc/invoke.texi (-fdump-tree-slp): Document.
+       (-ftree-vectorizer-verbose): Update.
+       (-ftree-slp-vectorize): Document.
+
+2009-12-02  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
+       no fixed registers are available for interrupt handlers.  Do not
+       fix normal registers.
+       (MUST_SAVE_ACC_REGISTER): New macro.
+       (rx_get_stack_layout): Create a stack frame for fast interrupt
+       handlers, if necessary.  Push extra registers if needed in order
+       to save the accumulator.
+       (rx_expand_prologue): Create a stack frame for fast interrupt
+       handlers, if necessary.
+       (rx_expand_builtin_mvfc): Handle the case where there is no target.
+
+2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/abmintrin.h (__lzcnt16): New.
+       (__lzcnt): New.
+       (__lzcnt64): New.
+       * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
+       * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
+       (bdesc_special_args): Add __builtin_clzs.
+       (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
+
+2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/abmintrin.h (_mm_popcnt_u32): New.
+       (_mm_popcnt_u64): New.
+
+2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * config/i386/abmintrin.h: New.
+       * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
+       * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
+
+2009-12-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (SWI124): Rename from CRC32MODE.
+       (crc32modesuffix): Remove.
+       (crc32modeconstraint): Ditto.
+       (sse4_2_crc32<mode>): Update for renamed mode iterator.  Use
+       imodesuffix instead of crc32modesuffix and <r>m instead of
+       crc32modeconstraint.
+
+2009-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/42234
+       * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
+       contains no statements.
+
+2009-12-01  Grigori Fursin  <grigori.fursin@inria.fr>
+           Joern Rennecke  <amylaar@spamcop.net>
+
+       * cgraphunit.c (plugin.h): Include.
+       (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
+       PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
+       * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
+       (enum plugin_event): Define by including plugin.def.
+       Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
+       (plugin_event_name): Change type to const char **.
+       (get_event_last, get_named_event_id, unregister_callback): Declare.
+       (register_callback): Change type of event argument to int.
+       (highlev-plugin-common.h): New file.
+       * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
+       $(HASHTAB_H)
+       (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
+       (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
+       (s-header-vars): New rule.
+       (install-plugin): Depend on s-header-vars.  Install b-header-vars.
+       * params.c (get_num_compiler_params): New function.
+       * params.h (get_num_compiler_params): Declare.
+       * passes.c (plugin.h): Include.
+       (make_pass_instance): Invoke PLUGIN_NEW_PASS.
+       (do_per_function_toporder, pass_init_dump_file): No longer static.
+       (pass_fini_dump_file): Likewise.
+       (execute_one_pass): Likewise.  Invoke PLUGIN_OVERRIDE_GATE and
+       PLUGIN_PASS_EXECUTION.
+       (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
+       PLUGIN_EARLY_GIMPLE_PASSES_END.
+       * plugin.c (plugin_event_name_init): New array, defined by
+       including plugin.def.
+       (FMT_FOR_PLUGIN_EVENT): Update.
+       (plugin_event_name): Change type to const char ** and initialize
+       to plugin_event_name_init.
+       (event_tab, event_last, event_horizon): New variable.
+       (get_event_last): New function.
+       (plugin_callbacks_init): New array.
+       (plugin_callbacks: Change type to struct callback_info **.
+       Initialize to plugin_callbacks_init.
+       (htab_event_eq, get_named_event_id, unregister_callback): New function.
+       (invoke_plugin_va_callbacks): Likewise.
+       (register_callback): Change type of event argument to int.
+       Handle new events.  Allow dynamic events.
+       (invoke_plugin_callbacks): Likewise.  Return success status.
+       (plugins_active_p): Allow dynamic callbacks.
+       * plugin.def: New file.
+       * plugin.h (invoke_plugin_callbacks): Update prototype.
+       (invoke_plugin_va_callbacks): Declare.
+       * tree-optimize.c (plugin.h): Include.
+       (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
+       PLUGIN_ALL_PASSES_END.
+       * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
+       (pass_fini_dump_file, do_per_function_toporder): Likewise.
+       * doc/plugin.texi: Document new event types.
+
+2009-12-01  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/42237
+       * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
+       in between references into two.
+
+2009-12-01  Richard Guenther  <rguenther@suse.de>
+
+       * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
+       to the block of the call when remapping a type.
+
+2009-12-01  Martin Jambor  <mjambor@suse.cz>
+
+       * cgraph.h (struct cgraph_edge): Reorder fields.  Make loop_nest
+       unsigned short int.
+       * ipa-prop.h (struct ipa_param_call_note): Likewise.
+       * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
+
+2009-12-01  Richard Guenther  <rguenther@suse.de>
+
+       * final.c (rest_of_clean_state): If -fcompare-debug is
+       given dump final insns without UIDs.
+       * tree-ssa-live.c (remove_unused_scope_block_p): Remove
+       after_inlining checks.
+
+2009-11-30  Chao-ying Fu  <fu@mips.com>
+
+       * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
+
+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
+       * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
+       [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
+       __extension__ to allow cast from function pointer to object
+       pointer in C++.
+       * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
+
 2009-11-27  Steven Bosscher  <steven@gcc.gnu.org>
 
        * config/ia64/itanium1.md: Remove.
 
 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
-       * emit-rtl.c (next_active_insn, prev_active_insn): Correct
-       comment.
+       * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
 
 2009-11-27  Jakub Jelinek  <jakub@redhat.com>
 
        (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
        Remove initailization.
        <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
-       
+
 2009-11-25  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.md (consttable_4): Handle (high ...).