OSDN Git Service

2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6f67e85..c4048a5 100644 (file)
@@ -1,3 +1,829 @@
+2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
+
+2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_z10_optimize_cmp): Use
+       next/prev_active_insn to skip DEBUG_INSNs as well.
+
+2009-10-19  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arm/arm.c (output_move_neon): Use DImode in call to
+       adjust_address.
+
+2009-10-19  Matthias Klose  <doko@ubuntu.com>
+
+       PR target/40134
+       * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
+
+2009-10-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM
+       op0.
+
+2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
+
+       PR middle-end/41738
+       * optabs.c (expand_binop): Make mode of shift count expression mode
+       of shift count not target.
+       Remove indent nit.
+
+2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
+       case.  Force using values to replace references within the statement.
+       (convert_local_reference_stmt): Likewise.
+
+2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
+       remove a subsequent GOTO or RETURN statement.
+
+2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>
+
+       * config/avr.md (*movqi): Add zero as equally preferable constraint
+       as general register.
+       (*movhi): Ditto.
+
+2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
+
+2009-10-17  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-in.c (lto_input_location): Try to reuse
+       previous maps.
+
+2009-10-17  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
+       operands in COMPONENT_REFs.
+
+2009-10-17  Anatoly Sokolov  <aesok@post.ru>
+
+       * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
+       if not defined. Change type of second argument to const_rtx.
+       (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
+       macro not defined.
+       * targhooks.h (default_libcall_value): Update prototype.
+       * target.h (struct gcc_target): Change type of second argument of
+       libcall_value to const_rtx.
+       * config/arm/arm.c (arm_libcall_value): Change type of second argument
+       to const_rtx.
+       (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
+       * doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
+
+2009-10-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/40521
+       * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
+       * cgraphunit.c (cgraph_optimize): Call it.
+       * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
+       (dwarf2out_assembly_start): ... here.  New hook.
+       (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
+       * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
+       hook.
+       * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
+       * sdbout.c (sdb_debug_hooks): Likewise.
+       * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
+       (vmsdbgout_assembly_start): New hook.
+
+2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       * rtl.h (RTL_LOCATION): Fix typo.
+
+2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       * print-rtl.c (print_rtx): Print locators in asm_operands
+       and asm_input.
+
+2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/41535
+       * sched-deps.c (depl_on_debug_p): New.
+       (attach_dep_link): Reject debug deps before nondebug deps.
+       (add_to_deps_list): Insert debug deps after nondebug deps.
+       (sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
+       deps.
+       (sd_add_dep): Do not reject debug deps.
+       (add_insn_mem_dependence): Don't count debug deps.
+       (remove_from_deps): Likewise.
+       (sched_analyze_2): Set up mem deps on debug insns.
+       (sched_analyze_insn): Record reg uses for deps on debug insns.
+       * haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
+       try_ready nondebug insn after debug insn.
+       * ddg.c (create_ddg_dep_from_intra_loop_link,
+       create_ddg_dep_no_link): Don't reject debug deps.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
+       (maybe_merge_incomplete_and_complete_type): Likewise.
+       (lto_symtab_merge): Do not call them.  Do not warn for
+       complete vs. incomplete compatible types.
+       (lto_symtab_merge_decls_2): Simplify.
+       * gimple.c (gimple_force_type_merge): Remove.
+       (gimple_types_compatible_p): Make it static.
+       * gimple.h (gimple_force_type_merge): Remove.
+       (gimple_types_compatible_p): Likewise.
+
+2009-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
+       DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/41728
+       * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
+       if fold_stmt did anything.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41715
+       * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
+       (maybe_fixup_handled_component): New function.
+       (input_gimple_stmt): Fixup mismatched decl replacements.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41713
+       * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
+       the same as VAR_DECL.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (iterative_hash_gimple_type): For integer types
+       also hash their minimum and maximum values and the string flag.
+       For array types hash their domain and the string flag.
+
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (gimple_types_compatible_p): Restrict completing
+       types to record or unions.  Simplify completion.
+       Do not merge records or unions with different
+       TYPE_STRUCTURAL_EQUALITY_P tag.
+       (iterative_hash_gimple_type): Restrict non-recursing into
+       pointer targets for records and unions.
+
+2009-10-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/41717
+       * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
+       * dwarf2out.c (mem_loc_descriptor): Don't handle
+       POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
+       punt if it is not lowpart subreg or if inner mode isn't
+       MODE_INT.
+
+2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
+       investigating previous or next insns.
+
+2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-sra.c (build_ref_for_offset_1): Update comment.
+
+2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>
+
+       * config/s390/s390.md (atype): Added missing values.
+
+2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/41702
+       * pa.md (casesi): Use sign extended index in call to
+       gen_casesi64p.
+       (casesi64p): Update pattern to reflect above.
+
+2009-10-15  Steve Ellcey  <sje@cup.hp.com>
+
+       PR rtl-optimization/41697
+       * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
+
+2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/23983
+       * config/rs6000/predicates.md: Update copyright year.
+       * config/rs6000/altivec.md: Ditto.
+       
+       * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
+       (MD_INCLUDES): Add a2.md.
+       
+       * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
+       RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
+       (builtin_classify): New static vector to classify various builtins
+       to get the tree attributes correct.
+       (def_builtin): Set the attributes of builtins based on what the
+       builtin does (i.e. memory operation, floating point, saturation
+       need special attributes, others are pure functions).
+
+       * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
+       the builtins.
+       (enum rs6000_builtins): Include rs6000-builtin.def to define the
+       builtins.  Change the end marker to MAX_RS6000_BUILTINS from
+       RS6000_BUILTIN_COUNT.
+       (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
+       MAX_RS6000_BUILTINS.
+
+       * config/rs6000/rs6000-builtin.def: New file that combines the
+       builtin enumeration name and attributes.
+
+2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/linux.h (ASM_SPEC): Add --32.
+
+2009-10-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
+       and DW_TAG_template_alias.
+       (dwarf_attr_name): Handle DW_AT_main_subprogram,
+       DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
+       DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
+       DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
+       DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
+       and DW_AT_GNU_odr_signature.
+       (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
+       DW_FORM_flag_present and DW_FORM_ref_sig8.
+       (output_signature): Only print name on the first byte.
+       (output_die): Likewise for dw_val_class_data8.
+
+2009-10-15  Alexander Monakov  <amonakov@ispras.ru>
+
+       * doc/invoke.texi: Clarify that most optimizations are not enabled
+       without -O.
+
+2009-10-15  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41668
+       * gimple.c (compare_type_names_p): Handle anonymous names
+       differently based on new mode argument.
+       (gimple_types_compatible_p): For structs also compare the tags.
+       (iterative_hash_type_name): Rename to ...
+       (iterative_hash_name): ... this.  Hash all names.
+       (iterative_hash_gimple_type): Fix hashing the struct tag of
+       pointer targets.  Hash field decl names.
+
+2009-10-15  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41669
+       * gimple.c (gimple_get_alias_set): Avoid recursing on
+       invalid type topology.
+
+2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
+
+2009-10-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
+
+2009-10-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
+       add --with-tune{,-32,-64} configured default for -mtune if explicit
+       -mcpu is used.
+
+2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
+
+       * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds
+       fixed.
+
+2009-10-14  DJ Delorie  <dj@redhat.com>
+       
+       * config/h8300/h8300.c (F): New.
+       (Fpa): New.
+       (h8300_emit_stack_adjustment): Call them.
+       (push): Likewise.
+       (h8300_push_pop): Likewise.
+       (h8300_expand_prologue): Likewise.
+       * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
+       (MUST_USE_SJLJ_EXCEPTIONS): Define.
+       (INCOMING_RETURN_ADDR_RTX): Define.
+       (INCOMING_FRAME_SP_OFFSET): Define.
+       (DWARF_CIE_DATA_ALIGNMENT): Define.
+
+2009-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * stor-layout.c (place_field): Don't emit -Wpadded warnings for
+       fields in builtin structs.
+       (finalize_record_size): Likewise.
+
+2009-10-14  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (gtc_ob): New global.
+       (struct type_pair_d): Replace pointers with type UIDs.
+       (type_pair_hash): Adjust.
+       (type_pair_eq): Likewise.
+       (lookup_type_pair): Likewise.  Allocate from an obstack.
+       (gimple_force_type_merge): Adjust.
+       (gimple_types_compatible_p): Likewise.
+       (free_gimple_type_tables): Free the obstack.
+
+2009-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
+       stmts setting DEBUG_EXPR_DECLs.
+
+       * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
+       Don't crash if mode1 is VOIDmode.
+
+2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
+       * params.h (IRA_LOOP_RESERVED_REGS): New
+       * tree-pass.h (pass_subregs_of_mode_init,
+       pass_subregs_of_mode_finish): Remove.
+       * passes.c (pass_subregs_of_mode_init,
+       pass_subregs_of_mode_finish): Remove.
+       (pass_reginfo_init): Move before loop optimizations.
+       * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
+       * common.opt (fira-loop-pressure): New.
+       * toplev.h (flag_ira_loop_pressure): New.
+       * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New
+       externals.
+       * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
+       Make external and void type functions.
+       (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
+       pass_subregs_of_mode_finish): Remove.
+       * ira-costs.c (init_costs): Call init_subregs_of_mode.
+       * regmove.c: Include ira.h.
+       (regmove_optimize): Call ira_set_pseudo_classes after IRA based
+       register pressure calculation in loops.
+       * loop-invariant.c: Include REGS_H and ira.h.
+       (struct loop_data): New members max_reg_pressure, regs_ref, and
+       regs_live.
+       (struct invariant): New member orig_regno.
+       (curr_loop): New variable.
+       (find_exits): Initialize regs_ref and regs_live.
+       (create_new_invariant): Initialize orig_regno.
+       (get_cover_class_and_nregs): New.
+       (get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
+       array.  Add code for flag_ira_loop_pressure.
+       (gain_for_invariant): Make new_regs an array.  Add code for
+       flag_ira_loop_pressure.
+       (best_gain_for_invariant): Ditto.
+       (set_move_mark): New parameter gain.  Use it for debugging output.
+       (find_invariants_to_move): Make regs_needed and new_regs an array.
+       Add code for flag_ira_loop_pressure.
+       (move_invariant_reg): Set up orig_regno.
+       (move_invariants): Set up reg classes for pseudos for
+       flag_ira_loop_pressure.
+       (free_loop_data): Clear regs_ref and regs_live.
+       (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
+       get_regno_cover_class, change_pressure, mark_regno_live,
+       mark_regno_death, mark_reg_store, mark_reg_clobber,
+       mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
+       (move_loop_invariants): Calculate pressure.  Initialize curr_loop.
+       * ira.c (ira): Call ira_set_pseudo_classes after IRA based
+       register pressure calculation in loops if new regs were added.
+       Call finish_subregs_of_mode.
+       * opts.c (decode_options): Set up flag_ira_loop_pressure.
+       * Makefile.in (loop-invariant.o): Add ira.h.
+       (regmove.o): Ditto.
+       * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
+       Describe.
+       * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
+       
+2009-10-14  Richard Guenther  <rguenther@suse.de>
+
+       * lto-symtab.c (lto_symtab_compatible): Fold in ...
+       (lto_symtab_merge): ... here.  Rewrite both to take the
+       prevailing and a to-be-merged entry and to queue diagnostics
+       properly.
+       (lto_symtab_resolve_replaceable_p): New predicate for
+       symbol resolution.
+       (lto_symtab_resolve_can_prevail_p): Likewise.
+       (lto_symtab_resolve_symbols): Rewrite.  Fold in code that
+       handles merging commons by choosing the largest decl.  Fold
+       in code that gives ODR errors.
+       (lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
+       diagnostics here.
+       (lto_symtab_merge_decls_1): Re-structure.  Deal with the
+       case of no prevailing decl here.  Diagnose mismatches
+       in object types here.  Drop all but the prevailing decls.
+       (lto_symtab_prevailing_decl): Return the single prevailing decl.
+       * lto-streamer-in.c (lto_input_tree_ref): Deal with
+       VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.
+
+2009-10-14  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41521
+       * lto-streamer-in.c (input_bb): Replace debug stmts with
+       nops instead of dropping them.
+
+2009-10-14  Nick Clifton  <nickc@redhat.com>
+
+       * gcc/doc/extended.texi: Replace the dash character with
+       @minus{} in situations where it is being used as a minus
+       symbol.
+       * gcc/doc/tm.texi: Likewise.
+       * gcc/doc/md.texi: Likewise.
+
+2009-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR preprocessor/41543
+       * input.h (BUILTINS_LOCATION): Change to 1 from 2.
+       Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
+       * tree.c: Include intl.h.
+       (expand_location): Handle BUILTINS_LOCATION.
+       * Makefile.in (tree.o): Depend on intl.h.
+
+       PR debug/41695
+       * dwarf2out.c (dwarf2out_var_location): Always clear
+       last_postcall_label when changing last_label.
+
+2009-10-14  Pascal Obry  <obry@adacore.com>
+
+       * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
+       (process_command): Handle -E as done with -c and -S.  Do not add
+       the target executable suffix to the output file when -E is used.
+       (main): Adjust error message accordingly.
+
+2009-10-14  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/41343
+       PR debug/41447
+       PR debug/41264
+       PR debug/41338
+       * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
+       decl with rtl.
+       (tree_code_size): Likewise.
+
+2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin_1): Support complex "arc" functions.
+       * real.h (HAVE_mpc_arc): Define.
+
+2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
+       (struct builtin_description): Add fndecl field.
+       (bdesc): Remove const qualifier.  Update initializer.
+       (sh_media_init_builtins): Remove const qualifier for d.  Record
+       the result of add_builtin_function to the fndecl field.
+       (sh_builtin_decl): New.
+       (sh_media_builtin_decl): New.
+
+2009-10-14  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/38948
+       * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
+       requests between special registers.
+
+2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
+
+2009-10-13  Richard Henderson  <rth@redhat.com>
+
+       PR tree-optimization/41377
+       * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
+       (cleanup_empty_eh_merge_phis): New change_region parameter;
+       pass it on to redirect_eh_edge_1.  Update callers.
+       (cleanup_empty_eh_unsplit): Don't require an existing EH label
+       at the destination block.
+
+2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * passes.c (register_pass): Replaced gcc_unreachable by
+       fatal_error on failure. Mentions plugins in comments & messages.
+
+2009-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/41693
+       * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
+       * sched-vis.c (print_value): Use it.
+       * cselib.c (cselib_hash_rtx): Likewise.
+       * print-rtl.c (print_rtx): Likewise.
+       * cfgexpand.c (expand_debug_rtx): Likewise.
+       * var-tracking.c (vt_expand_loc_callback): Likewise.
+
+2009-10-13  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41565
+       * opts.c (handle_option): Split out code to handle setting
+       the options flag var ...
+       (set_option): ... here.
+       * opts.h (set_option): Declare.
+       * lto-opts.c (register_user_option_p): Include -fexceptions
+       and all position independent code variants.
+       (handle_common_option): Remove.
+       (lto_reissue_options): Use set_option.
+
+2009-10-13  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/41661
+       * ipa-prop.c (compute_complex_pass_through): Allow only operations
+       that are tcc_comparisons or do not change the type in any
+       un-usleless way.
+       * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
+       folding tcc_comparison operations.
+
+2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
+       properly.
+
+2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/41343
+       PR debug/41447
+       PR debug/41264
+       PR debug/41338
+       * tree.def (DEBUG_EXPR_DECL): New.
+       * rtl.def (DEBUG_EXPR): New.
+       * gengtype.c (adjust_field_rtx_def): Handle it.
+       * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
+       (insert_debug_temp_for_var_def): ... this.  Drop support for
+       moving.  Take iterator for def stmt; insert debug stmt before it.
+       Scan early for use count and kind in debug stmts.
+       (propagate_defs_into_debug_stmts): Rename to...
+       (insert_debug_temps_for_defs): ... this.  Likewise.
+       * tree.h (DEBUG_TEMP_UID): New.
+       * tree.c (next_debug_decl_uid): New.
+       (make_node_stat): Count debug decls separately.
+       (copy_node_stat): Likewise.
+       * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
+       * var-tracking.c (dv_is_decl_p): Recognize it.
+       (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
+       (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
+       (vt_expand_loc_callback): Expand DEBUG_EXPRs.
+       (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
+       * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
+       (cselib_hash_rtx): Likewise.
+       (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
+       * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
+       debug bind stmts.
+       * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
+       (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
+       * rtl.c (copy_rtx): Likewise.
+       (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
+       * print-rtl.c (print_rtx): Likewise.
+       * sched-vis.c (print_value): Likewise.
+       (print_insn): Handle DEBUG_EXPR_DECL.
+       * tree-dump.c (dequeue_and_dump): Likewise.
+       * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
+       * gimple-iterator (gsi_replace): Check for same lhs.
+       (gsi_remove): Insert debug temps.
+       * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
+       (move_computations_stmt): Drop explicit propagation into debug stmts.
+       (rewrite_bittest): Likewise.  Use gsi_remove for propagation.
+       * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
+       * tree-ssa-sink.c (statement_sink_location): Likewise.
+       * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
+       * tree-ssanames.c (release_ssa_name): Adjust for rename.
+       * tree-flow.h: Likewise.
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
+       debug temps without values.
+       (eliminate_unnecessary_stmts): Don't discard just-inserted
+       debug stmts.
+
+2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/26515
+       * config/cris/cris.md (andu): Check that operand 1 is one of the
+       general registers.  Fix typo in head comment.
+
+2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>
+
+       * config/i386/i386.md (vswapmov): New.
+       * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
+       (ix86_function_ms_hook_prologue): New.
+       (ix86_expand_prologue): Handle ms_hook_prologue attribute.
+       * configure.ac: Test for swap suffix support in as.
+       * configure: Rebuild.
+
+2009-10-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/41680
+       * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
+       paradoxical subregs to prevent partial register stalls if the inner
+       mode is integer mode.
+
+2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
+
+2009-10-12  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/41570
+       * gcc/dwarf2out.c (template_parameter_pack_die,
+       gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
+
+2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/41616
+       * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
+       on updates too.
+       (maybe_register_def): Likewise.  Take stmt iterator.
+       (rewrite_update_stmt): Take stmt iterator and pass it on.
+       (rewrite_update_enter_block): Pass stmt iterator.
+
+2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
+       (spu_builtin_decl): New function.
+
+2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (SWIM): New mode iterator.
+       (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
+       using SWIM mode iterator.
+       (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
+       patterns using SWI48 mode iterator.
+       (*x86_mov<mode>cc_0_m1_se):  Macroize insn from
+       *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
+       (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
+       (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
+       patterns using SWI248 mode iterator.
+       * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
+       gen_x86_movdicc_0_m1_rex64 for renamed function
+
+2009-10-11  Jose Ruiz  <ruiz@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/33743
+       * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
+       * config/sparc/sol2-unwind.h: New file.
+
+2009-10-11  Olivier Hainque  <hainque@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/33743
+       * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
+       * config/i386/sol2-unwind.h: New file.
+
+2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/41665
+       * config/i386/i386.md (addsi_1_zext): Get the proper second
+       operand for lea.
+
+2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
+       all OLD_RTXes, not just REGs.  Use copy_rtx to create the
+       replacement value.
+
+2009-10-11  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (iterative_hash_type_name): Do not handle special
+       anonymous names.
+
+2009-10-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
+       (*setcc_si_1_and): Ditto.
+       (*setcc_si_1_movzbl): Ditto.
+       (*setcc_<mode>_2): Ditto.
+       (*setcc_qi): Rename from *setcc_1.
+       (*setcc_qi_slp): Rename from *setcc_2.
+
+       (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
+       (*zero_extendqisi2_movzbw_and splitter): Ditto.
+
+       * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
+       "if" condition, there is already assert with reload_completed present.
+
+2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * plugin.c (try_init_one_plugin): Improve constness of variable err.
+
+2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Final install): Refer to
+       http://gcc.gnu.org/bugs/ for bug reporting.
+
+2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * configure.ac: Add test for dci instruction.
+       * configure: Regenerate.
+       * config.in: Likewise.
+       * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
+       * doc/invoke.texi: Add cpu_type 476 and 476fp.
+       (-mmulhw): Add 476 to description.
+       (-mdlmzb): Likewise.
+       * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
+       * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
+       (processor_target_table): Add 476 and 476fp entries.
+       (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
+       (rs6000_issue_rate): Add CPU_PPC476.
+       * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
+       (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
+       (processor_type): Add PROCESSOR_PPC476.
+       (EXTRA_SPECS): Add asm_cpu_476 string.
+       * config/rs6000/rs6000.md: (define_attr "type"): Add isel attribute.
+       (define_attr "cpu"): Add ppc476.
+       Include 476.md.
+       Update comments for 476.
+       (isel_signed, isel_unsigned): Change to use "isel" type attribute.
+       * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
+       Update copyright year.
+       * config/rs6000/476.md: New file.
+       * config/rs6000/40x.md: Add description for "isel" attribute.
+       Update copyright year.
+       * config/rs6000/440.md: Likewise.
+       * config/rs6000/603.md: Likewise.
+       * config/rs6000/6xx.md: Likewise.
+       * config/rs6000/7450.md: Likewise.
+       * config/rs6000/7xx.md: Likewise.
+       * config/rs6000/8540.md: Likewise.
+       * config/rs6000/cell.md: Likewise.
+       * config/rs6000/e300c2c3.md: Likewise.
+       * config/rs6000/e500mc.md: Likewise.
+       * config/rs6000/mpc.md: Likewise.
+       * config/rs6000/power4.md: Likewise.
+       * config/rs6000/power5.md: Likewise.
+       * config/rs6000/power6.md: Likewise.
+       * config/rs6000/power7.md: Likewise.
+       * config/rs6000/rios1.md: Likewise.
+       * config/rs6000/rios2.md: Likewise.
+       * config/rs6000/rs64.md: Likewise.
+
+2009-10-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/41654
+       * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
+       a cond expr before calling gimple_cond_set_condition_from_tree.
+       (ifcombine_iforif): Likewise.
+
+2009-10-09  Ian Lance Taylor  <iant@google.com>
+
+       * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
+       * configure: Rebuild.
+
+2009-10-09  Neil Vachharajani <nvachhar@google.com>
+
+       * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
+       deprecated.
+
+2009-10-09  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41638
+       * target-def.h (TARGET_BUILTIN_DECL): Define.
+       (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
+       * target.h (struct gcc_target): Add builtin_decl target hook.
+       * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
+       * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
+       target builtins.
+       * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
+       not gcc_unreachable.
+       (lto_output_builtin_tree): Sorry if the target does not support
+       streaming target builtins.
+       * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
+       (rs6000_builtin_decl): New function.
+       * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
+       (ix86_builtin_decl): New function.
+
+2009-10-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR preprocessor/41445
+       * c-ppoutput.c (do_line_change): New function.
+       (cb_line_change): Use it.
+       (scan_translation_unit): Call do_line_change if
+       avoid_paste or PREV_WHITE and token location is on a different line
+       than print.src_line.
+
+       PR debug/40521
+       * dwarf2out.c (dwarf2out_init): Test whether
+       HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
+       it is defined.
+
+       PR rtl-optimization/41646
+       * calls.c (expand_call): For BLKmode types returned in registers
+       avoid likely spilled hard regs in copy_blkmode_from_reg generated
+       insns.
+
+2009-10-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/41634
+       * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
+       we remove the correct elements.
+       (optimize_stmt): Make sure to update stmt operands before
+       optimizing redundancies.
+
+2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
+
+2009-10-09  Richard Guenther  <rguenther@suse.de>
+
+       PR driver/41637
+       * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
+       globals.
+       (lto_wrapper_exit): New function.
+       (fatal): Use it.
+       (fatal_perror): Likewise.
+       (fork_execute): Use global args_name, do not free it.
+       (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
+       * lto-streamer.h: Remove duplicate prototypes.
+
+2009-10-09  Richard Guenther  <rguenther@suse.de>
+
+       * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
+       before calling stmt_can_throw_external.
+
 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR tree-optimization/40071
        * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
        (debug_nothing_uid): New function.
        * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
+       (xcoff_debug_hooks): Likewise.
        * sdbout.c (sdb_debug_hooks): Likewise.
        * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
        * doc/invoke.texi (-fenable-icf-debug): New option.
        patterns using plusminus code iterator.
        (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
        sub<mode>3 patterns using plusminus code iterator.
-       * config/i386/i386.c (override_options): Update call to
+       * config/i386/i386.c (override_options): Update the call to
        gen_subdi_carry_rex64 for renamed function.
        (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
        and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
        pressure.
 
 2009-09-29  Basile Starynkevitch  <basile@starynkevitch.net>
-            Rafael Avila de Espindola  <espindola@google.com>
+           Rafael Avila de Espindola  <espindola@google.com>
 
        * gengtype.c (plugin_output): New.
        (get_output_file_with_visibility): Return plugin_output for plugins.