OSDN Git Service

2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a85f8fc..5fed689 100644 (file)
@@ -1,3 +1,653 @@
+2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * doc/invoke.texi (Wall): fix formatting issues.
+       
+2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
+       truncated shift counts.
+
+2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
+       syntax for ASSEMBLER_DIALECT.
+       * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
+
+2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+            Nathan Froyd  <froydnj@codesourcery.com>
+
+       * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
+       when determining whether to record INCOMING_RETURN_ADDR_RTX.
+
+2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       Revert:
+       2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
+       * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
+       the function, temporarily point the debug interface to the null one.
+
+2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/33655
+       * tree-sra.c (bitfield_overlaps_p): Handle array and complex
+       elements.
+
+2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/33572
+       * tree-cfg.c (verify_stmts): Check for missing PHI defs.
+       * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
+       (update_ssa_across_abnormal_edges): ... this.  Set slots in the
+       return PHI node.
+       (copy_edges_for_bb): Handle nonlocal label edges.
+       (make_nonlocal_label_edges): Deleted.
+       (optimize_inline_calls): Don't call it.
+
+2007-10-05  Hans-Peter Nilsson  <hp@axis.com>
+
+       * gthr-single.h: Revert last change.
+
+2007-10-05  Michael Matz  <matz@suse.de>
+
+       PR middle-end/33667
+       * lower-subreg.c (decompose_multiword_subregs): Use
+       validate_unshare_change().
+
+2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * ra-conflict.c: Include "sparseset.h".
+       (conflicts): Change to HOST_WIDEST_FAST_INT.
+       (allocnos_live): Redefine variable as a sparseset.
+       (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): Delete macros.
+       (allocno_row_words): Removed global variable.
+       (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
+       (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
+       (conflict_p, set_conflict_p, set_conflicts_p): New functions.
+       (record_one_conflict_between_regnos): Cache allocno values and reuse.
+       Use set_conflict_p.
+       (record_one_conflict): Update uses of allocnos_live to use
+       the sparseset routines.  Use set_conflicts_p.
+       (mark_reg_store): Likewise.
+       (set_reg_in_live): Likewise.
+       (global_conflicts): Update uses of allocnos_live.
+       Use the new adjacency list to visit an allocno's neighbors
+       rather than iterating over all possible allocnos.
+       Call set_conflicts_p to setup conflicts rather than adding
+       them manually.
+       * global.c: Comments updated.  
+       (CONFLICTP): Delete define.
+       (regno_compare): New function.  Add prototype.
+       (global_alloc): Sort the allocno to regno mapping according to
+       which basic blocks the regnos are referenced in.  Modify the
+       conflict bit matrix to a compressed triangular bitmatrix.
+       Only allocate the conflict bit matrix and adjacency lists if
+       we are actually going to allocate something.
+       (expand_preferences): Use conflict_p.  Update uses of allocnos_live.
+       (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
+       allocno's neighbors rather than iterating over all possible allocnos.
+       (mirror_conflicts): Removed function.
+       (dump_conflicts): Iterate over regnos rather than allocnos so
+       that all dump output will be sorted by regno number.
+       Use the FOR_EACH_CONFLICT macro.
+       * ra.h: Comments updated.
+       (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
+       (partial_bitnum, max_bitnum, adjacency, adjacency_pool): Add prototypes.
+       (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
+       (adjacency_list_d, adjacency_iterator_d): New types.
+       (add_neighbor, adjacency_iter_init, adjacency_iter_done,
+       adjacency_iter_next, regno_basic_block): New static inline functions.
+       (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
+       (conflict_p): Add function prototype.
+       * sparseset.h, sparseset.c: New files.
+       * Makefile.in (OBJS-common): Add sparseset.o.
+       (sparseset.o): New rule.
+
+2007-10-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33666
+       * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
+       to (long long)ptr.
+
+2007-10-05  Michael Matz  <matz@suse.de>
+
+       PR inline-asm/33600
+       * function.c (match_asm_constraints_1): Check for input
+       being used in the outputs.
+
+2007-10-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
+
+2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR target/33635
+       * config/mips/mips.c (mips_register_move_cost): Rewrite to use
+       subset checks.  Make the cost of FPR -> FPR moves depend on
+       mips_mode_ok_for_mov_fmt_p.
+
+2007-10-04  Doug Kwan  <dougkwan@google.com>
+
+       * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
+       support of conditional variables.
+       * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
+       support of conditional variables.
+       * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables.
+       * gthr.h: Update comments to document new interface.
+
+2007-10-04  Geoffrey Keating  <geoffk@apple.com>
+
+       * cgraphunit.c (cgraph_build_static_cdtor): Don't set
+       DECL_IGNORED_P.
+
+2007-10-04  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
+
+2007-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33641
+       * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
+       does not need to be of INTEGER_TYPE.
+       (verify_gimple_2): New function split out from ...
+       (verify_gimple_1): ... here.  ICE if there was an error during
+       verification.
+
+2007-10-04  Michael Matz  <matz@suse.de>
+
+       PR rtl-optimization/33653
+       * dce.c (deletable_insn_p_1): Use volatile_refs_p().
+       * dse.c (scan_insn): Same.
+
+2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config.gcc: Remove USE_GAS for m68k targets.
+
+2007-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/33627
+       * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
+       * tree-gimple.c (canonicalize_cond_expr_cond): New function,
+       split out from ...
+       * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
+       * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
+
+2007-10-04  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (commands_in_file, commands_in_prologues, 
+       commands_in_epilogues): Remove variables.
+       (avr_file_start): Remove unneded initializations of commands_in_file,
+       commands_in_prologues and commands_in_epilogues variables.
+       (avr_file_end): Remove dead code.
+
+2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
+       MOTOROLA is to true.
+
+2007-10-03  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR target/33635
+       * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
+       (mips_split_doubleword_move): ...this.
+       * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
+       use natural endianness for multi-format FPR values.
+       (mips_split_64bit_move): Rename to...
+       (mips_split_doubleword_move): ...this and extend to 64-bit words.
+       Use move_doubleword_fpr* patterns for moves involving FPRs.
+       (mips_save_reg): Update the call to mips_split_64bit_move.
+       (mips_secondary_reload_class): Return NO_REGS for any reload of a
+       nonzero constant into an FPR if the constant can be forced to memory.
+       * config/mips/mips.md: Update the splitter calls to
+       mips_split_64bit_move.
+       (UNSPEC_LOAD_DF_LOW): Rename to...
+       (UNSPEC_LOAD_LOW): ...this.
+       (UNSPEC_LOAD_DF_HIGH): Rename to...
+       (UNSPEC_LOAD_HIGH): ...this.
+       (UNSPEC_STORE_DF_HIGH): Rename to...
+       (UNSPEC_STORE_WORD): ...this.
+       (SPLITF): New mode iterator.
+       (HALFMODE): New mode attribute.
+       (movtf): New expander.
+       (*movtf_internal): New define_insn_and_split.
+       (move_doubleword_fpr<mode>): New expander.
+       (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
+       with...
+       (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
+       (mfhc1<mode>): ...these more general patterns.
+
+2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
+
+2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcse.c (hash_scan_set): Insert set in insn before note at
+       the end of basic block.
+
+2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR tree-optimization/33576
+       * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
+       * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
+       * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
+       (remove_iv): Declared.
+       * lambda-code.c (remove_iv): Not static.
+       (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
+       Don't remove ivs there, save ivs in the buffer.
+
+2007-10-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/15764
+       * tree-eh.c (same_handler_p): New fn.
+       (optimize_double_finally): New fn.
+       (refactor_eh_r): New fn.
+       (refactor_eh): New fn.
+       (pass_refactor_eh): New pass.
+       * tree-pass.h: Declare it.
+       * passes.c (init_optimization_passes): Add it.
+
+2007-10-03  Doug Kwan  <dougkwan@google.com>
+       Richard Guenther  <rguenther@suse.de>
+
+       PR debug/31899
+       * dwarf2out.c (reference_to_unused): Disable sanity checking,
+       be conservative instead.
+
+2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/26682
+       * doc/invoke.texi (-fwhole-program): Document that Fortran
+       doesn't support this option.
+
+2007-10-02  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR middle-end/33617
+       * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
+       expand_expr.
+
+2007-10-02  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
+       against constant zero.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP):  Handle constant zero
+       operand.
+
+2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * ra-conflict.c: New file.
+       * ra.h: New file.
+       * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
+       usage to DF_LIVE usage.
+       * rtlanal.c (subreg_nregs_with_regno): New function.  
+       * df-scan.c (df_def_record_1, df_uses_record): Add code to set
+       DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
+       (df_has_eh_preds): Removed.
+       (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
+       df_exit_block_uses_collect): Changed call from df_has_eh_preds to
+       bb_has_eh_pred.
+       * global.c (allocno, max_allocno, conflicts, allocno_row_words,
+       reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
+       (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
+       (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
+       mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
+       (global_alloc): Turn off rescanning insns after call to
+       global_conflicts and added call to set_preferences.
+       (global_conflicts): Moved to ra-alloc.c.
+       (set_preferences_1, set_preferences): New function.
+       (mirror_conflicts): Changed types for various variables.
+       (mark_elimination): Change DF_RA_LIVE
+       usage to DF_LIVE usage.
+       (build_insn_chain): Rewritten from scratch and made local.
+       (print_insn_chain, print_insn_chains): New functions.
+       (dump_conflicts): Do not print conflicts for fixed_regs.
+       (rest_of_handle_global_alloc): Turn off insn rescanning.
+       * hard-reg-set.h: Fixed comment.
+       * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
+       usage to DF_LIVE usage and delete refs to TOP sets.
+       (block_alloc): Mark regs as live if they are in the artificial
+       defs at top of block.
+       (find_stack_regs): New function.
+       (rest_of_handle_local_alloc): Changed urec problem to live
+       problem and do not turn off df rescanning.
+       * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
+       DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
+       df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
+       (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
+       (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
+       fields in df_ref_flags.  The rest have been renumbered.  
+       * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
+       at -O1.
+       * rtl.h (subreg_nregs_with_regno): New function.
+       * df-problems.c: (df_get_live_out, df_get_live_in,
+       df_get_live_top): Removed reference to DF_RA_LIVE.
+       (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
+       df_live_alloc, df_live_reset, df_live_local_finalize,
+       df_live_free): Make top set only if different from in set.
+       (df_lr_top_dump, df_live_top_dump): Only print top set if
+       different from in set.
+       (df_lr_bb_local_compute): Removed unnecessary check.
+       (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
+       df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
+       df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
+       df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
+       df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
+       df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
+       df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
+       df_urec_add_problem): Removed.
+       (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
+       bb_has_eh_pred. 
+       * Makefile.in (ra-conflict.o, ra.h): New dependencies.
+       * basic_block.h (bb_has_abnormal_pred): New function.
+       * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
+       usage to DF_LIVE usage.
+       
+2007-10-02  Revital Eres  <eres@il.ibm.com>
+
+       * config/rs6000/predicates.md (easy_vector_constant): Return false
+       for 750CL paired vectors.
+       * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
+       vector constant.
+       (vec_initv2sf): Add new description.
+       (vconcatsf): Likewise.
+       * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
+       * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
+
+2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
+       sinking the last stmt in a BB.
+
+2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR middle-end/22156
+       * tree-sra.c (struct sra_elt): Add in_bitfld_block.
+       (sra_hash_tree): Handle BIT_FIELD_REFs.
+       (sra_elt_hash): Don't hash bitfld blocks.
+       (sra_elt_eq): Skip them in parent compares as well.  Handle
+       BIT_FIELD_REFs.
+       (build_element_name_1): Handle BIT_FIELD_REFs.
+       (instantiate_element): Propagate nowarn from parents.  Create
+       BIT_FIELD_REF for variables that are widened by scalarization.
+       Gimple-zero-initialize all bit-field variables that are not
+       part of parameters that are going to be scalarized on entry.
+       (instantiate_missing_elements_1): Return the sra_elt.
+       (canon_type_for_field): New.
+       (try_instantiate_multiple_fields): New.  Infer widest possible
+       access mode from decl or member type, but clip it at word
+       size, and only widen it if a field crosses an alignment
+       boundary.
+       (instantiate_missing_elements): Use them.
+       (generate_one_element_ref): Handle BIT_FIELD_REFs.
+       (scalar_bitfield_p): New.
+       (sra_build_assignment): Optimize assignments from scalarizable
+       BIT_FIELD_REFs.  Use BITS_BIG_ENDIAN to determine shift
+       counts.
+       (REPLDUP): New.
+       (sra_build_bf_assignment): New.  Optimize assignments to
+       scalarizable BIT_FIELD_REFs.
+       (sra_build_elt_assignment): New.  Optimize BIT_FIELD_REF
+       assignments to full variables.
+       (generate_copy_inout): Use the new macros and functions.
+       (generate_element_copy): Likewise.  Handle bitfld differences.
+       (generate_element_zero): Don't recurse for blocks.  Use
+       sra_build_elt_assignment.
+       (generate_one_element_init): Take elt instead of var.  Use
+       sra_build_elt_assignment.
+       (generate_element_init_1): Adjust.
+       (bitfield_overlap_info): New struct.
+       (bitfield_overlaps_p): New.
+       (sra_explode_bitfield_assignment): New.  Adjust widened
+       variables to account for endianness.
+       (sra_sync_for_bitfield_assignment): New.
+       (scalarize_use): Re-expand assignment to/from scalarized
+       BIT_FIELD_REFs.  Explode or sync needed members for
+       BIT_FIELD_REFs accesses or assignments.  Use REPLDUP.
+       (scalarize_copy): Use REPLDUP.
+       (scalarize_ldst): Move assert before dereference.  Adjust EH
+       handling.
+       (dump_sra_elt_name): Handle BIT_FIELD_REFs.
+
+2007-10-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
+       Rename CR_* constants to CMP_*.  Fix spacing.
+
+2007-10-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR other/33585
+       * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
+       to be processed with the special script doc/install.texi2html.
+       
+2007-09-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * doc/invoke.texi (Wall): List the options enabled by Wall.
+       (Wstrict-aliasing): Add missing @option.
+       
+2007-09-30  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
+       rather than gen_lowpart to change a register from DImode to DFmode.
+       (mips_cannot_change_mode_class): Only allow FPRs to change mode if
+       both FROM and TO are integer modes that are no bigger than 4 bytes.
+       (mips_mode_ok_for_mov_fmt_p): New function.
+       (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
+       (mips_secondary_reload_class): Tweak formatting and comments.
+       Use reg_class_subset_p instead of direct comparisons with
+       classes.  Only allow direct FPR<->FPR moves for modes that
+       satisfy mips_mode_ok_for_mov_fmt_p.  Only allow loads and stores
+       for 4- and 8-byte types.  Handle reloads in which X is an FPR.
+       * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
+       (*movdi_64bit): Likewise.
+       (*movsi_internal): Likewise.
+       (*movhi_internal): Likewise.
+       (*movqi_internal): Likewise.
+
+2007-09-30  Diego Novillo  <dnovillo@google.com>
+
+       PR 33593
+       * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
+       throw an exception.
+
+2007-09-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/33597
+       * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
+       for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
+
+2007-09-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
+       instead of variants of (!reload_in_progress && !reload_completed).
+       (x86_expand_vector_move): Ditto.
+
+2007-09-28  Ollie Wild  <aaw@google.com>
+
+       Revert
+       2007-09-27  Ollie Wild  <aaw@google.com>
+
+       * varasm.c (compare_constant): Removed call to
+       lang_hooks.expand_constant.
+       (copy_constants): Removed call to lang_hooks.expand_constant.
+       (compute_reloc_for_constant): Removed call to
+       lang_hooks.expand_constant.
+       (output_addressed_constants): Removed call to
+       lang_hooks.expand_constant.
+       (constructor_static_from_elts_p): Removed call to
+       lang_hooks.expand_constant.
+       (output_constant): Removed calls to lang_hooks.expand_constant.
+       * langhooks.h (struct lang_hooks): Removed field expand_constant.
+       * langhooks-def.h (lhd_return_tree): Removed.
+       (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+       (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
+       * langhooks.c (lhd_return_tree): Removed.
+
+2007-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR target/33347
+       * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
+       argument to gen_selb.
+
+2007-09-28  Chao-ying Fu  <fu@mips.com>
+
+       * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
+       * doc/libgcc.texi (Fixed-point fractional library routines):
+       Fix typos for neg and cmp functions.
+
+2007-09-28  Michael Matz  <matz@suse.de>
+
+       PR rtl-optimization/33552
+       * function.c (match_asm_constraints_1): Check for overlap in
+       inputs and replace all occurences.
+
+2007-09-28  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * config/mips/mips.c (override_options): Fix comment typo.
+
+2007-09-28  Jie Zhang  <jie.zhang@analog.com>
+
+       * config.gcc (bfin*-linux-uclibc*): Set extra_parts
+       to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
+       * config/bfin/t-bfin-linux (crti.o): Don't build.
+       (crtn.o): Likewise.
+       (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
+       * config/bfin/t-bfin-uclinux (crti.o): Don't build.
+       (crtn.o): Likewise.
+       (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
+
+2007-09-27  Ollie Wild  <aaw@google.com>
+
+       * varasm.c (compare_constant): Removed call to
+       lang_hooks.expand_constant.
+       (copy_constants): Removed call to lang_hooks.expand_constant.
+       (compute_reloc_for_constant): Removed call to
+       lang_hooks.expand_constant.
+       (output_addressed_constants): Removed call to
+       lang_hooks.expand_constant.
+       (constructor_static_from_elts_p): Removed call to
+       lang_hooks.expand_constant.
+       (output_constant): Removed calls to lang_hooks.expand_constant.
+       * langhooks.h (struct lang_hooks): Removed field expand_constant.
+       * langhooks-def.h (lhd_return_tree): Removed.
+       (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+       (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
+       * langhooks.c (lhd_return_tree): Removed.
+
+2007-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/33436
+       * expr.c (emit_group_load_1): Split constant double when destination
+       length is half source length.
+
+2007-09-27  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
+       (mips_cpu_info): Add tune_flags.
+       (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
+       * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
+       Remove end marker.
+       (override_options): Remove deprecation code.  Use branch-likely
+       instructions for optimize_size or if the tuning flags do not
+       suggest otherwise.  Tweak warning.
+       (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
+
+2007-09-27  Matthias Klose  <doko@ubuntu.com>
+
+       * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
+       multilib osdirname if it exists.
+       * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
+
+2007-09-27  Ian Lance Taylor  <iant@google.com>
+
+       PR tree-optimization/33565
+       * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
+       assignments of comparisons.
+       * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
+       parameter.  Change caller.  Defer overflow warnings around call to
+       fold_binary.
+       * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
+       TREE_NO_WARNING is set on the statement.
+       * tree-ssa-forwprop.c
+       (tree_ssa_forward_propagate_single_use_vars): Don't test
+       TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
+       * tree-cfg.c (fold_cond_expr_cond): Likewise.
+
+2007-09-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
+       reduce offset by units of 0x10000 for SPE vector modes or modes
+       used with E500 double instructions.
+
+2007-09-04  Paolo Bonzini  <bonzini@gnu.org>
+
+       * simplify-rtx.c (comparison_result): New.
+       (simplify_const_relational_operation): Use it instead of the five
+       "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
+       Improve bounds-checking optimizations; remove subsumed POPCOUNT
+       optimizations.  Extract nonzero_address_p optimizations into a
+       separate "if" together with optimizations where op1 is const0_rtx.
+       Optimize comparing an IOR with zero.  Simplify op0 RELOP op0 for
+       floating-point arguments too when appropriate.  Hoist test for ABS
+       outside the final switch statement.
+       * cse.c (fold_rtx): Don't look for an IOR equivalent of
+       folded_arg0 if we found a constant equivalent.  Remove
+       transformations done in simplify-rtx.c for "op0 RELOP op0".
+
+2007-09-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * builtins.c (expand_builtin, expand_builtin_object_size,
+       expand_builtin_memory_chk, maybe_emit_chk_warning,
+       maybe_emit_sprintf_chk_warning): Use new %K format string specifier
+       for diagnostics.
+       * expr.c (expand_expr_real_1): Likewise.
+       * langhooks-def.h (struct diagnostic_info): Add forward decl.
+       (lhd_print_error_function): Add third argument.
+       * langhooks.h (struct diagnostic_info): Add forward decl.
+       (struct lang_hooks): Add third argument to print_error_function.
+       * diagnostic.h (diagnostic_info): Add abstract_origin field.
+       (diagnostic_last_function_changed, diagnostic_set_last_function): Add
+       second argument.
+       (diagnostic_report_current_function): Likewise.
+       * toplev.c (announce_function): Pass NULL as second argument to
+       diagnostic_set_last_function.
+       * diagnostic.c (diagnostic_report_current_function): Add second
+       argument, pass it as third argument to lang_hooks.print_error_function.
+       (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
+       to diagnostic_report_current_function.
+       (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
+       and message.abstract_origin.
+       (verbatim): Initialize abstract_origin.
+       * pretty-print.h (text_info): Add abstract_origin field.
+       * pretty-print.c (pp_base_format): Handle %K.
+       * langhooks.c (lhd_print_error_function): Add third argument.  If
+       diagnostic->abstract_origin, print virtual backtrace.
+       * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
+       gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
+       (init_dynamic_diag_info): Likewise.
+
+2007-09-26  David Daney  <ddaney@avtrex.com>
+
+       PR target/33479
+       * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
+       sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
+       sync_old_nand<mode>, sync_new_nand<mode>,
+       sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
+       Update length attributes.
+       (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
+       sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
+       length attributes.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
+       MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
+       MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
+       post-loop sync.
+
 2007-09-26  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/33563
 
 2007-09-25  Michael Meissner  <michael.meissner@amd.com>
 
-       PR c/33524
+       PR target/33524
        * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
        gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
        for vector int32 -> int64 conversions.  Don't write beyond the end