+2009-12-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/extend.texi (Function Attributes, Extended Asm):
+ Replace TABs with spaces.
+ * doc/md.texi (Standard Names): Likewise.
+ * doc/plugins.texi (Plugins): Likewise.
+
+ * doc/c-tree.texi (Expression trees): Use @itemx for all but
+ the first item for merged items.
+ * doc/extend.texi (Variable Attributes): Likewise.
+ * doc/install.texi (Configuration): Likewise.
+ * doc/invoke.texi (RS/6000 and PowerPC Options, RX Options):
+ Likewise.
+
+2009-12-15 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (free_lang_data_in_binfo): Do not free BINFO_OFFSET
+ and BINFO_VPTR_FIELD.
+ (free_lang_data_in_type): Do not free TYPE_STUB_DECL if we
+ generate debug information.
+ (free_lang_data_in_decl): Do not free DECL_SIZE_UNIT,
+ DECL_SIZE, DECL_FIELD_OFFSET and DECL_FCONTEXT.
+ (free_lang_data): Do not disable debuginfo.
+ * lto-streamer-out.c (write_symbol_vec): Deal with
+ non-constant DECL_SIZE.
+ (pack_ts_base_value_fields): Write types with false
+ TREE_ASM_WRITTEN.
+ (lto_output_ts_type_tree_pointers): Stream TYPE_STUB_DECL.
+ * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Stream
+ TYPE_STUB_DECL.
+ * dwarf2out.c (add_pure_or_virtual_attribute): Check for
+ DECL_CONTEXT.
+ (gen_type_die_for_member): Test for TYPE_STUB_DECL.
+ * opts.c (decode_options): Do not disable var-tracking for lto.
+ * doc/invoke.texi (-flto): Document -flto vs. -g experimental
+ status.
+ (-fwhopr): Document experimental status.
+
+2009-12-15 Aldy Hernandez <aldyh@redhat.com>
+
+ PR graphite/42185
+ * graphite-sese-to-poly.c (is_reduction_operation_p): Assert that
+ we are a GIMPLE_ASSIGN. Do not calculate rhs code twice.
+ (follow_ssa_with_commutative_ops): Return NULL on non assignment.
+
+2009-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/rs6000/rs6000.md (probe_stack): Use an enclosing SET.
+
+2009-12-15 Richard Guenther <rguenther@suse.de>
+
+ * gimple.h (compare_field_offset): Declare.
+ * gimple.c (compare_field_offset): Export.
+ * lto-streamer-in.c (input_gimple_stmt): Use compare_field_offset.
+
+2009-12-15 Richard Guenther <rguenther@suse.de>
+
+ * lto-cgraph.c (lto_output_node): Also stream the alias
+ for regular aliases.
+ (input_node): Likewise.
+
+2009-12-15 Paolo Bonzini <bonzini@gnu.org>
+ Shujing Zhao <pearly.zhao@oracle.com>
+
+ * intl.c (get_spaces): New.
+ * intl.h (get_spaces): New.
+
+2009-12-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/42369
+ * config/i386/i386.c (ix86_expand_special_args_builtin): Avoid
+ using switch with CODE_FOR_lwp_lwp* cases.
+
+ * config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use
+ DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID).
+
+2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous
+ assertion and useless code.
+ <TARGET_MEM_REF>: Likewise.
+
+2009-12-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/41473
+ * dwarf2out.c (AT_loc_list_ptr): New.
+ (resolve_addr): Remove unresolved attributes and loc_list entries.
+
+ PR debug/41473
+ * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty
+ locations.
+ (new_loc_list): Drop gensym arg. Move generation of ll_symbol...
+ (gen_llsym): ... here. New function.
+ (add_loc_descr_to_loc_list): Removed.
+ (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs.
+ (single_element_loc_list): Removed.
+ (dw_loc_list): Don't create entries without a location. Don't
+ special-case the first node of the list, only single nodes.
+ (single_element_loc_list_p): Simplify.
+ (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty.
+ (add_location_or_const_value_attribute): Test var loc for NULL.
+ (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list,
+ call gen_llsym if needed.
+
+2009-12-14 Jakub Jelinek <jakub@redhat.com>
+
+ * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
+ cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
+ prototypes.
+ * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
+ cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
+ functions.
+ * except.h (set_nothrow_function_flags): Remove prototype.
+ * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag.
+ Make static.
+ * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag,
+ cgraph_set_readonly_flag, cgraph_set_pure_flag
+ and cgraph_set_looping_const_or_pure_flag.
+ (local_pure_const): Likewise.
+
+2009-12-14 Jakub Jelinek <jakub@redhat.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ * config/i386/i386-builtin-types.def (PVOID): Declared.
+ (VOID_FTYPE_PVOID): Declared.
+ (PVOID_FTYPE_VOID): Declared.
+ (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed.
+ (VOID_FTYPE_USHORT_UINT_USHORT): Removed.
+ * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32,
+ IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32,
+ IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16):
+ Removed.
+ (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New.
+ (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb,
+ __builtin_ia32_slwpcb, __builtin_ia32_lwpval32,
+ __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and
+ __builtin_ia32_lwpins64.
+ (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID.
+ Do not handle VOID_FTYPE_USHORT_UINT_USHORT and
+ UCHAR_FTYPE_USHORT_UINT_USHORT. Warn when the third operand is
+ not an immediate. Also handle builtin functions with 3 arguments.
+ (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and
+ IX86_BUILTIN_SLWPCB.
+ * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC):
+ Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC.
+ (memory attribute): Handle lwp.
+ (lwp*): Rewrite all the insn patterns for LWP.
+ * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64,
+ __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed.
+ (__llwpcb, __slwpcb): New.
+
+2009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
+
+ * dominance.c (set_immediate_dominator): Don't mark as inline.
+
+2009-12-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default.
+ * doc/md.texi (check_stack): Clarify.
+ (probe_stack): Likewise.
+ * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant.
+ (probe_stack): New insn.
+
+2009-12-14 Ben Elliston <bje@au.ibm.com>
+
+ * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
+ BUILT_IN_NORMAL or BUILT_IN_MD.
+
+2009-12-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
+ * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
+ * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
+ * system.h (STACK_CHECK_PROBE_LOAD): Poison.
+
+2009-12-13 Michael Matz <matz@suse.de>
+
+ PR tree-optimization/42027
+ * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
+ TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
+ falling through.
+
+2009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
+
+ PR target/23726
+ * config/avr/predicates.md (pseudo_register_operand): New predicate
+ for pseudos.
+ * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
+ to allow div/mod optimization.
+ (udivmodqi4): Ditto.
+ (divmodhi4): Ditto.
+ (udivmodhi4): Ditto.
+ (divmodsi4): Ditto.
+ (udivmodsi4): Ditto.
+
+2009-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/42357
+ * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
+
+2009-12-12 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (need_assembler_name_p): Abstract decls do not need
+ an assembler name.
+ * dwarf2out.c (dwarf2out_abstract_function): Preserve
+ DECL_ABSTRACT properly.
+
+2009-12-11 Richard Guenther <rguenther@suse.de>
+
+ * lto-streamer-in.c (lto_input_tree_ref): Do not register
+ DEBUG_EXPR_DECLs with the varpool.
+
+2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
+ (sparc64_frob_update_context): New function.
+
+2009-12-11 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41658
+ PR lto/41657
+ * lto-streamer-out.c (write_global_stream): Do not make decls
+ weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
+ Make sure to mark all decls that we have written.
+
+2009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+
+ PR target/36047
+
+ * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
+ not used by glibc/uclibc and does not work with large binaries.
+
+2009-12-11 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41662
+ * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
+ handling here.
+ (input_eh_regions): Adjust.
+ (lto_input_ts_function_decl_tree_pointers): Initialize EH
+ if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
+
+2009-12-11 Duncan Sands <baldrick@free.fr>
+
+ * passes.c (make_pass_instance): Allocate and copy the right amount of
+ memory for ipa passes, which are not the same size as other passes.
+
+2009-12-11 Joern Rennecke <amylaar@spamcop.net>
+
+ * plugin.c (get_named_event_id): Fix hash table rebuild to include
+ dynamically allocated events.
+
+2009-12-11 Richard Guenther <rguenther@suse.de>
+
+ PR lto/42320
+ * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
+ detect non-prevailing decls.
+
+2009-12-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/42317
+ * cgraph.h (struct cgraph_node): Add same_comdat_group field.
+ * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
+ circular list.
+ (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
+ node->same_comdat_group.
+ * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
+ mark all its same_comdat_group nodes as also reachable.
+ (cgraph_externally_visible_p): Return true even if any of
+ same_comdat_group nodes has address taken.
+ * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
+ (output_cgraph): Ensure other same_comdat_group nodes are also
+ included.
+ (input_node): Stream in same_comdat_group.
+ (input_cgraph_1): Fix up same_comdat_group fields from references
+ to pointers.
+ * cgraphunit.c (cgraph_analyze_functions): Mark all other
+ same_comdat_group nodes as reachable.
+ (cgraph_mark_functions_to_output): For each node->process process
+ also other same_comdat_group nodes.
+ * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
+ with same_comdat_group non-NULL.
+ (cgraph_mark_inline_edge): Likewise.
+
+2009-12-10 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/42228
+ PR middle-end/42110
+ * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
+ parameter; update edge if it already exists.
+ (cgraph_remove_node): Handle correctly cases where we are removing
+ node having clones.
+ * cgraph.h (cgraph_create_edge_including_clones): Declare.
+ (verify_cgraph_node): Add missing error_found = true code.
+ (cgraph_materialize_all_clones): Remove call edges of dead nodes.
+ * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
+ clone; fix double linked list removal.
+ * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
+ call; fix frequency of newly created edge.
+
+2009-12-10 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ PR rtl-opt/42216
+ * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
+ HOST_BITS_PER_WIDE_INT.
+ (verify_reg_in_set): New function, broken out of verify_reg_tracked.
+ (verify_reg_tracked): Use it.
+ (scan_rtx_reg): When seeing a use involving a superset of the
+ registers in an existing chain, enlarge that chain. Otherwise,
+ allow subsets and set fail_current_block for all other kinds of
+ overlap.
+ (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
+ Do not modify operands when the bit with the corresponding number
+ is set in that bitmap.
+ (build_def_use): When we see matching operands with different
+ modes, don't set fail_current_block, but keep track of such
+ operands in a bitmap if their registers aren't already tracked
+ in an open chain. Pass this bitmap to all hide_operands calls.
+
+2009-12-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/42337
+ * tree-ssa-pre.c (seen_during_translate): Remove.
+ (phi_translate_1): Collapse into ...
+ (phi_translate): ... this. Remove seen parameter and
+ adjust recursive calls.
+
+2009-12-10 Richard Guenther <rguenther@suse.de>
+ Allan Sandfeld Jensen <linux@carewolf.com>
+
+ * tree-vectorizer.c (vectorize_loops): Properly guard
+ vectorizer verboseness.
+
+2009-12-10 Ben Elliston <bje@au.ibm.com>
+
+ * fwprop.c (free_load_extend): Initialise `use'.
+
+2009-12-09 David Edelsohn <edelsohn@gnu.org>
+
+ * builtins.c (do_mpc_ckconv): Pass the component type to
+ real_from_mpfr().
+
+2009-12-09 Xinliang David Li <davidxl@google.com>
+
+ PR tree-optimization/42337
+ * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
+
+2009-12-09 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
+ mulv2sf3, divv2sf3): New expanders.
+ * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
+ spe_evdivws): Rename to use standard GCC names.
+ * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
+ mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
+ * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
+ names for renamed patterns.
+
+2009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
+
+2009-12-09 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
+ ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
+ isn't cached.
+ * configure: Regenerated.
+
+2009-12-08 Richard Henderson <rth@redhat.com>
+
+ * combine.c (setup_incoming_promotions): Fix sign-extend of
+ zero-extend case; tidy conditions.
+
+2009-12-08 Michael Matz <matz@suse.de>
+
+ PR middle-end/38474
+ * function.c (free_temp_slots): Only walk the temp slot
+ addresses and combine slots if we actually changes something.
+ (pop_temp_slots): Ditto.
+
+2009-12-08 Olga Golovanevsky <olga@il.ibm.com>
+
+ PR middle-end/41843
+ * ipa-struct-reorg.c (compare_fields): New function.
+ (find_field_in_struct_1): Use compare_fields function.
+ (is_equal_types): Likewise.
+
+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.
(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
+ * 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.