OSDN Git Service

PR target/25212
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d775fa4..e40ffd9 100644 (file)
+2005-12-08  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/25212
+       * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
+       tests further when !strict && reload_in_progress.
+       (print_operand): Check that both operands of indexed address are regs.
+       (print_operand_address): Likewise.
+       * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
+       (INT_REG_OK_FOR_BASE_P): Correct.
+
+2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
+
+       Preparation for PR rtl-optimization/20070 / part1
+       * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
+       * cfgcleanup.c (condjump_equiv_p): New function, broken out of
+       outgoing_edges_match.
+       (outgoing_edges_match): Use condjump_equiv_p.
+       (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
+       into..
+       * struct-equiv.c: New file.
+       (death_notes_match_p) New function, broken out of insns_match_p.
+       * Makefile.in (OBJS-common): Add struct-equiv.o.
+       (struct-equiv.o): New target.
+
+2005-12-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * coretypes.h: Revert previous change.
+       * config/darwin.h: Revert previous reversion.
+       * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
+
+2005-12-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * coretypes.h (section): Provide dummy definition for target files.
+       * config/darwin.h: Revert previous change.
+
+2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * doc/sourcebuild.texi (all.build, install-normal): Remove.
+       * configure.ac: Remove all.build and install-normal from target_list
+       * configure: Regenerate.
+       * Makefile.in (install): Don't depend on install-normal.
+
+2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * Makefile.in: Document the use of stamps.
+
+2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
+       * Makefile.in: Add code to compute some dependencies on s-gtype
+       automatically.  Remove the declaration of those dependencies.
+
+2005-12-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * gcc/reload.c (push_secondary_reload): Fix typo:
+       s/insn_constraint/scratch_constraint/.
+
+2005-12-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
+
+2005-12-07  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
+       (alpha_elf_select_rtx_section): Return the selected section rather
+       than emitting assembly code.
+       (alpha_write_linkage): Emit a ".link" directive directly and then
+       set in_section to NULL.
+       (vms_asm_out_constructor): Use switch_to_section.
+       (vms_asm_out_destructor): Likewise.
+       (unicosmk_output_common): Set in_section to NULL instead of calling
+       the dummy common_section function.
+       (unicosmk_text_section): Delete in favor of...
+       (unicosmk_output_text_section_asm_op): ...this new function.
+       (unicosmk_data_section): Delete in favor of...
+       (unicosmk_output_data_section_asm_op): ...this new function.
+       (unicosmk_init_sections): New function.
+       (unicosmk_output_deferred_case_vectors): Use switch_to_section.
+       (unicosmk_output_ssib): Set in_section to NULL instead of calling
+       the dummy ssib_section function.
+       (unicosmk_section_buf): Delete.
+       * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
+       (unicosmk_data_section): Delete.
+       * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
+       (SECTION_FUNCTION_TEMPLATE): Delete.
+       * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
+       (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
+       (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (link_section, literals_section): Delete.
+       (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
+       set in_section to NULL.
+
+       * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
+       (COMMON_SECTION): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
+       the dummy common_section function.
+       * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
+       * config/arm/arm.c (get_jump_table_size): Use pointer comparison
+       between readonly_data_section and text_section to check whether
+       read-only data is being put in the text section.
+       (arm_output_function_epilogue): Use switch_to_section.
+       (arm_elf_asm_constructor): Likewise.
+       (thumb_call_via_reg): Replace call to in_text_section with
+       a comparison between in_section and text_section.
+       (arm_file_end): Use switch_to_section.
+       (aof_text_section): Delete in favor of...
+       (aof_output_text_section_asm_op): ...this new function.
+       (aof_data_section): Delete in favor of...
+       (aof_output_data_section_asm_op): ...this new function.
+       (aof_asm_init_sections): New function.
+       (zero_init_section): Moved from config/arm/aof.h.
+       (aof_dump_imports, aof_file_start): Use switch_to_section.
+       * config/arm/arm.h (thumb_call_via_label): Update comment.
+       * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
+       (common_section): Delete.
+       * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
+       (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
+       global switch_to_section function instead of the old port-local one.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
+       (SWITCH_TO_SECTION_FUNCTION): Delete.
+       (drectve_section): Redefine as a macro.
+       * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
+       switch_to_section.
+
+       * config/avr/avr.c (progmem_section): New variable.
+       (avr_output_progmem_section_asm_op): New function.
+       (avr_asm_init_sections): New function.
+       (avr_output_addr_vec_elt): Use switch_to_section.
+       * config/avr/avr.h (progmem_section): Declare.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (READONLY_DATA_SECTION): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
+       * config/avr/avr-protos.h (progmem_section): Delete.
+
+       * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
+
+       * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
+
+       * config/darwin-sections.def: New file.
+       * config/darwin.c: Define all sections in darwin-sections.def.
+       (output_objc_section_asm_op, darwin_init_sections): New functions.
+       (machopic_output_indirection): Use switch_to_section.
+       (machopic_select_section): Return the selected section rather than
+       emitting assembly code.  Replace the static function table with
+       inline conditional expressions.  Update the tests of last_text_section
+       and move them into the FUNCTION_DECL block.
+       (machopic_select_rtx_section): Return the selected section rather than
+       emitting assembly code.
+       (machopic_asm_out_constructor, machopic_asm_out_destructor)
+       (darwin_file_end): Use switch_to_section.
+       * config/darwin.h: Use darwin-sections.def to declare sections.
+       (INIT_SECTION_ASM_OP): Remove empty definition.
+       (HAS_INIT_SECTION): Define this instead.
+       (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
+       (TARGET_ASM_EH_FRAME_SECTION): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       * config/darwin-protos.h (darwin_init_sections): Declare.
+       (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
+       (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
+       (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
+       (constructor_section, destructor_section, mod_init_section): Delete.
+       (mod_term_section): Delete.
+       (darwin_exception_section, darwin_eh_frame_section): Delete.
+       (machopic_select_section): Return a section.
+       (machopic_select_rtx_section): Likewise.
+       (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
+       (const_section, const_coal_section, const_data_section): Delete.
+       (const_data_coal_section, data_coal_section, cstring_section): Delete.
+       (literal4_section, literal8_section, constructor_section): Delete.
+       (mod_init_section, mod_term_section, destructor_section): Delete.
+       (objc_class_section, objc_meta_class_section, objc_category_section)
+       (objc_class_vars_section, objc_instance_vars_section): Delete.
+       (objc_cls_meth_section, objc_inst_meth_section): Delete.
+       (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
+       (objc_selector_refs_section, objc_selector_fixup_section): Delete.
+       (objc_symbols_section, objc_module_info_section): Delete.
+       (objc_image_info_section, objc_protocol_section): Delete.
+       (objc_string_object_section, objc_constant_string_object_section)
+       (objc_class_names_section, objc_meth_var_names_section): Delete.
+       (objc_meth_var_types_section, objc_cls_refs_section): Delete.
+       (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
+       (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
+       (darwin_exception_section, darwin_eh_frame_section): Delete.
+       * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
+
+       * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
+       (frv_asm_out_destructor): Likewise.
+       * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
+       get_named_section.
+       (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
+       * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
+       (data_section): Delete.
+
+       * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (DRECTVE_SECTION_FUNCTION): Delete.
+       (drectve_section): Redefine as a macro that sets in_section after
+       emitting the directive.
+       (SWITCH_TO_SECTION_FUNCTION): Delete.
+       * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
+       in_text_section with comparison between in_section and text_section.
+       * config/i386/i386.c (x86_64_elf_select_section): Return the section
+       rather than emitting assembly code.  Use get_named_section.
+       (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
+       get_named_section.
+       (machopic_output_stub): Use switch_to_section.
+       * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
+       (nwld_named_section_asm_out_destructor): Use get_section and
+       switch_to_section.
+
+       * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
+       rather than emitting assembly code.
+       (ia64_rwreloc_select_section): Likewise.
+       (ia64_rwreloc_select_rtx_section): Likewise.
+       * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
+       * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
+       switch_to_section.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
+
+       * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
+       section rather than emitting assembly code.
+       (iq2000_select_section): Likewise.
+       * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
+       (sbss_section): Delete.
+
+       * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
+       and get_named_section.
+       * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
+
+       * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
+       (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
+       (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
+       (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
+       in_section to NULL.
+       (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
+       (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
+       global switch_to_section function instead of the old port-local one.
+       * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (SWITCH_SECTION_FUNCTION): Delete.
+       * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
+       (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
+       (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
+       (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
+       in_section to NULL.
+       (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
+       global switch_to_section function instead of the old port-local one.
+       (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
+
+       * config/mips/mips.c (mips_file_start): Update comment.
+       (mips_output_aligned_bss): Use switch_to_section and get_named_section.
+       (mips_output_aligned_decl_common): Use switch_to_section.
+       (mips_select_rtx_section): Return the section rather than emitting
+       assembly code.  Use get_named_section.
+       (mips_function_rodata_section: Likewise get_section.
+       (build_mips16_function_stub): Use switch_to_section.
+       * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
+       (SDATA_SECTION_ASM_OP): Delete.
+       * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
+       (EXTRA_SECTION_FUNCTIONS): Delete.
+
+       * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
+       (mmix_asm_output_aligned_local): Use switch_to_section.
+
+       * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
+       (som_one_only_readonly_data_section): New variables.
+       (pa_output_function_epilogue): Set in_section to NULL instead of
+       calling forget_section.
+       (output_deferred_plabels): Use select_section.
+       (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
+       of calling forget_section.
+       (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
+       (pa_asm_output_aligned_local): Use select_section.
+       (som_text_section_asm_op): Delete in favor of...
+       (som_output_text_section_asm_op): ...this new function.
+       (pa_som_asm_init_sections): New function.
+       (pa_select_section): Return the section rather than emitting
+       assembly code.
+       * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
+       (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
+       (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
+       * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
+       (som_readonly_data_section, som_one_only_readonly_data_section)
+       (som_one_only_data_section, forget_section): Delete.
+       * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+       * config/rs6000/rs6000.c (read_only_data_section): New variable.
+       (private_data_section, read_only_private_data_section): New variables.
+       (sdata2_section, toc_section): New variables.
+       (rs6000_file_start): Use switch_to_section.
+       (rs6000_assemble_integer): Use comparisons against in_section
+       instead of calling in_toc_section and in_text_section.  Use
+       unlikely_text_section_p.
+       (rs6000_elf_output_toc_section_asm_op): New function, derived
+       from the old rs6000/sysv4.h toc_section function.
+       (rs6000_elf_asm_init_sections): New function.
+       (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
+       the section rather than emitting assembly code.
+       (machopic_output_stub): Use switch_to_section.
+       (toc_section): Delete dummy function.
+       (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
+       switch_to_section and get_section.
+       (rs6000_xcoff_output_readonly_section_asm_op): New function.
+       (rs6000_xcoff_output_readwrite_section_asm_op): New function.
+       (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
+       the old rs6000/xcoff.h toc_section function.
+       (rs6000_xcoff_asm_init_sections): New function.
+       (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
+       the section rather than emitting assembly code.
+       (rs6000_xcoff_file_start): Use switch_to_section.
+       (rs6000_xcoff_file_end): Likewise.
+       * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
+       (sdata2_section, sbss_section, private_data_section): Delete.
+       (read_only_data_section, read_only_private_data_section): Delete.
+       * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
+       (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
+       (FINI_SECTION_FUNCTION): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
+       * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
+       (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
+       (READONLY_DATA_SECTION): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
+       to NULL rather than no_section.
+       (TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+       * config/sh/sh.c (sh_file_start): Use switch_to_section.
+
+       * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
+       (sparc_output_deferred_case_vectors): Likewise.  Remove argument
+       from call to current_function_section.
+
+       * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
+       (bss100_section): New variable.
+       (xstormy16_asm_output_aligned_common): Use switch_to_section.
+       (xstormy16_asm_init_sections): New function.
+       (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
+       switch_to_section and get_section.
+       (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
+       from calls to current_function_section.
+       * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
+       (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       * config/stormy16/stormy16-protos.h (bss100_section): Delete.
+
+       * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
+       (FINI_SECTION_FUNCTION): Delete.
+
+       * config/v850/v850.c: Include gt-v850.h.
+       (rosdata_section, rozdata_section, tdata_section, zdata_section)
+       (zbss_section): New variables.
+       (v850_output_aligned_bss): Use switch_to_section.
+       (v850_asm_init_sections): New function.
+       (v850_select_section): Return the section rather than emitting
+       assembly code.
+       * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
+       (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
+       (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Define.
+       * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
+       (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
+       (zbss_section): Delete.
+
+       * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
+
+       * config/vx-common.h (vxworks_exception_section): Delete.
+       (TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+       * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
+       section rather than emitting assembly code.
+       * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
+       switch_to_section.
+
+       * Makefile.in (GTFILES): Add $(srcdir)/output.h.
+       * coretypes.h (section): New union and typedef.
+       * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
+       from call to current_function_section.
+       (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
+       (dbxout_symbol_location): Use switch_to_section.
+       * dwarf2out.c (named_section_eh_frame_section): Delete, moving
+       most of the code into...
+       (default_eh_frame_section): ...here.  Return a section.
+       (collect2_eh_frame_section): Delete, moving most of the code into..
+       (switch_to_eh_frame_section): ...this new function.
+       (debug_info_section, debug_abbrev_section, debug_aranges_section)
+       (debug_macinfo_section, debug_line_section, debug_loc_section)
+       (debug_pubnames_section, debug_str_section, debug_ranges_section): New
+       variables.
+       (output_call_frame_info): Call switch_to_eh_frame_section instead of
+       eh_frame_section.  Use switch_to_section and get_section.
+       (dwarf2out_begin_prologue): Use switch_to_section.
+       (AT_string_form): Check the flags in debug_str_section instead of
+       DEBUG_STR_SECTION_FLAGS.
+       (output_comp_unit): Use switch_to_section, get_section, and
+       debug_info_section.
+       (output_line_info, secname_for_decl): Use unlikely_text_section_p.
+       (dwarf2out_begin_block): Use switch_to_section.  Remove argument
+       from call to current_function_section.
+       (dwarf2out_var_location): Use unlikely_text_section_p.
+       (dwarf2out_source_line): Use switch_to_section.  Remove argument
+       from call to current_function_section.
+       (dwarf2out_start_source_file, dwarf2out_end_source_file)
+       (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
+       debug_macinfo_section.
+       (dwarf2out_init): Initialize the new section variables.  Use them
+       instead of calls to named_section_flags.  Use switch_to_section.
+       (output_indirect_string): Use switch_to_section and debug_str_section.
+       (dwarf2out_finish): Use switch_to_section and the new section
+       variables.
+       * except.c (default_exception_section): Return the section instead
+       of emitting assembly code.
+       (output_function_exception_table): Use the global exception_section
+       variable instead of the target hook.  Use switch_to_section.  Remove
+       argument from call to current_function_section.
+       * final.c (HAVE_READONLY_DATA_SECTION): Delete.
+       (shorten_branches): Use pointer comparisons to detect whether the
+       text section is the same as readonly_data_section.
+       (profile_function): Use switch_to_section.  Remove argument from
+       call to current_function_section.
+       (final_scan_insn): Likewise.  Update use of last_text_section.
+       * gengtype.c (open_base_files): Add an include of output.h.
+       * output.h (text_section, data_section, readonly_data_section)
+       (ctors_section, dtors_section, bss_section, init_section)
+       (fini_section, sdata_section): Turn into section pointers.
+       (in_text_section, in_unlikely_text_section, exports_section)
+       (drectve_section, named_section, mergeable_string_section)
+       (last_text_section_name): Delete.
+       (default_exception_section, default_eh_frame_section): Return sections.
+       (SECTION_DECLARED, SECTION_NAMED): New macros.
+       (SECTION_MACH_DEP): Bump value.
+       (section_common, named_section, unnamed_section): New structures.
+       (unnamed_section_callback): New typedef.
+       (section): New union.
+       (sbss_section, exception_section, eh_frame_section): New variables.
+       (in_section, last_text_section): Turn into section pointers.
+       (get_unnamed_section, get_section, get_named_section): New functions.
+       (mergeable_constant_section, function_section): Return a section.
+       (unlikely_text_section): Likewise.
+       (current_function_section): Likewise.  Remove the decl argument.
+       (unlikely_text_section_p, switch_to_section): New functions.
+       (output_section_asm_op): New function.
+       (set_named_section_flags, named_section_flags, named_section_real)
+       (named_section_first_declaration): Delete.
+       (default_select_section, default_elf_select_section): Return a section.
+       (default_elf_select_section_1, default_function_rodata_section)
+       (default_no_function_rodata_section, default_select_rtx_section)
+       (default_elf_select_rtx_section): Likewise.
+       * rtl.h (in_data_section): Delete.
+       * sdbout.c (sdbout_one_type): Use switch_to_section.
+       * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
+       (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
+       (TARGET_ASM_EH_FRAME_SECTION): Poison.
+       * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
+       (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
+       (TARGET_ASM_OUT): Update after above changes.
+       * target.h (init_sections): New hook.
+       (exception_section, eh_frame_section): Delete.
+       (select_section, select_rtx_section, function_rodata_section): Return
+       a section rather than emitting assembly code.
+       * varasm.c (text_section, data_section, readonly_data_section)
+       (ctors_section, dtors_section, bss_section, init_section)
+       (fini_section): Turn into section pointers.
+       (sdata_section, sbss_section, exception_section): New variables.
+       (eh_frame_section): New variable.
+       (in_section): Make global and turn into a section pointer.
+       (last_text_section): Turn into a section pointer.
+       (unnamed_sections): New variable.
+       (in_named_name, last_text_section_name): Delete.
+       (EXTRA_SECTION_FUNCTIONS): Delete.
+       (in_named_entry): Delete.
+       (section_htab): New variable, replacing...
+       (in_named_htab): ...this deleted variable.
+       (section_entry_eq, section_entry_hash): New functions, based on...
+       (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
+       (get_unnamed_section, get_section): New functions.
+       (unlikely_text_section): Return a section instead of emitting
+       assembly code.
+       (in_text_section, in_unlikely_text_section, in_data_section): Delete.
+       (get_named_section_flags, named_section_first_declaration): Delete.
+       (unlikely_text_section_p): New function.
+       (named_section_real, named_section): Delete.
+       (get_named_section): New function.
+       (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
+       (function_section): Return a section rather than emitting
+       assembly code.
+       (current_function_section): Likewise.  Remove argument.  Use
+       last_text_section if nonnull, otherwise use function_section.
+       (default_function_rodata_section): Return a section rather than
+       emitting assembly code.  Use get_section.
+       (default_no_function_rodata_section): Return a section rather than
+       emitting assembly code.
+       (variable_section): Use switch_to_section and get_named_section.
+       (mergeable_string_section): Return a section rather than emitting
+       assembly code.  Use get_section.  Make static.  Don't take special
+       countermeasures for empty strings.
+       (mergeable_constant_section): Return a section rather than emitting
+       assembly code.  Use get_section.
+       (default_named_section_asm_out_destructor): Use switch_to_section
+       and get_section.
+       (default_dtor_section_asm_out_destructor): Use switch_to_section.
+       (default_named_section_asm_out_constructor): Use switch_to_section
+       and get_section.
+       (default_ctor_section_asm_out_constructor): Use switch_to_section.
+       (assemble_start_function): Likewise.  Set last_text_section to
+       NULL rather than no_section.  Change the type of save_section.
+       (assemble_zeros, assemble_variable): Use the section flags to detect
+       whether or not a section is text.
+       (assemble_static_space): Use switch_to_section.
+       (assemble_trampoline_template): Likewise.
+       (output_constant_def_contents): Use switch_to_section and
+       get_named_section.
+       (output_constant_pool_1): Use switch_to_section.  Use the section
+       flags to see whether sections contain mergeable data.
+       (init_varasm_once): Initialize section_htab instead of in_named_htab.
+       Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
+       (default_elf_asm_named_section): Use SECTION_DECLARED to detect
+       whether a section has already been declared.
+       (default_select_section, default_elf_select_section): Return a
+       section rather than emitting assembly code.
+       (default_elf_select_section_1): Likewise.  Use bss_section for
+       SECCAT_BSS if nonnull.  Use get_named_section.
+       (default_select_rtx_section): Return a section rather than
+       emitting assembly code.
+       (default_elf_select_rtx_section): Likewise.  Use get_named_section.
+       (file_end_indicate_exec_stack): Use switch_to_section and get_section.
+       (output_section_asm_op, switch_to_section): New functions.
+       * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
+       get_named_section.
+
+       * doc/tm.texi: Expand the introduction to the sections documentation.
+       (TRAMPOLINE_SECTION): Document new interface.
+       (SDATA_SECTION_ASM_OP): Document new macro.
+       (READONLY_DATA_SECTION): Delete.
+       (SDATA_SECTION_ASM_OP): Document new macro.
+       (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
+       (TARGET_ASM_INIT_SECTIONS): Document new hook.
+       (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
+       (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
+       (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
+
+2005-12-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * gcc.c (init_gcc_specs): Match braces inside conditionally
+       compiled strings.
+
+2005-12-06  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
+
+2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR C++/24138
+       * tree.c (integer_all_onesp): Always return true if all bits on.
+
+       * testsuite/g++.dg/init/array0.C: New.
+
+2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
+
+       * doc/md.texi: Adapt to implementation.
+
+2005-12-06  Andreas Schwab  <schwab@suse.de>
+
+       * opts.c (decode_options): Fix typo in message.
+
+2005-12-06  Alan Modra  <amodra@bigpond.net.au>
+
+       PR other/13873
+       * longlong.h: Merge PPC tests from upstream.
+
+2005-12-06  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (fold_convert): Do not build and fold
+       CONVERT_EXPR, but always use NOP_EXPR.
+
+2005-12-06  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
+       __builtin_ia32_paddq and __builtin_ia32_subq.
+       (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
+       __builtin_ia32_pshufw.
+       * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
+
+2005-12-05  James E Wilson  <wilson@specifix.com>
+
+       PR target/24934
+       * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
+       is set.
+
+2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
+       
+       * print-tree.c (print_node): Ditto.
+       * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
+       * tree-dump.c (dequeue_and_dump): Check for decl_common structure
+       before accessing DECL_ARTIFICIAL. 
+       Handle new tag tree codes.
+       * tree-flow-inline.h (clear_call_clobbered): Update for tag
+       changes.
+       (unmodifiable_var_p): Ditto.
+       * tree-flow.h (mem_tag_kind): Remove.
+       (struct var_ann_d): Remove mem_tag_kind member.
+       * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
+       * tree-pretty-print.c (dump_generic_node): Handle memory tags.
+       * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
+       (group_aliases): Ditto.
+       (setup_pointers_and_addressables): Ditto.
+       (is_escape_site): Ditto.                                          
+       (may_alias_p): Ditto.
+       (create_tag_raw): New function.
+       (create_memory_tag): Use it.
+       (dump_alias_info): Update for tags.
+       (may_be_aliased): Ditto.
+       (add_type_alias): Ditto.
+       (new_type_alias): Ditto.
+       (create_sft): Ditto.
+       (create_structure_vars): Ditto.
+       * tree-ssa-ccp.c (get_default_value): Ditto.
+       * tree-ssa-operands.c (get_expr_operands): Ditto.
+       (add_stmt_operand): Ditto.
+       (add_call_clobber_ops): Remove duplicated condition.
+       * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
+       tags.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
+       * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
+       * tree.c (init_ttree): Update structures for new tree codes.
+       (tree_code_size): Update sizes for new tree codes.
+       (make_node_stat): Don't try to set common things on minimal
+       structures.
+       (tree_node_structure): Update for tags.
+       (is_global_var): Ditto.
+       * tree.def: Add new tree codes.
+       * tree.h (MTAG_P): New macro.
+       (TREE_MEMORY_TAG_CHECK): Ditto.
+       (SSA_VAR_P): Update for tags.
+       (struct tree_memory_tag): New structure.
+       (MTAG_GLOBAL): New macro.
+       (union tree_node): Add memory tag member.
+       * treestruct.def (TS_MEMORY_TAG): New.
+       
+2005-12-05  Dale Johannesen  <dalej@apple.com>
+
+       * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
+       what was approved (PR 24323).
+
+2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * doc/c-tree.texi (Function Bodies): Remove description of
+       RETURN_INIT.
+
+2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
+       __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
+       __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
+       __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
+       __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
+       __divxc3): Document.
+
+2005-12-05  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
+       previous behaviour.
+       * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
+       hook_bool_void_false.
+       (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
+       * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
+
+       * config/darwin.c (machopic_select_section): It's not defined
+       as weak if it's only marked as weak_import.
+       
+       * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
+       Prototype.
+
+       * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
+       A hidden weak object does bind locally.  Strong linkonce data
+       counts like any other strong symbol for binding.
+       (weak_finish_1): Don't specially handle weakrefs, they no longer
+       arrive here.
+       (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
+       * c-common.c (handle_alias_attribute): Allow static aliases
+       of variables.
+       (handle_weakref_attribute): Don't call declare_weak on weakrefs.
+       * gthr-dce.h: Make weakrefs static.
+       * gthr-tpf.h: Likewise.
+       * gthr-solaris.h: Likewise.
+       * gthr-posix.h: Likewise.
+       * gthr-posix95.h: Likewise.
+       * config/darwin.c (darwin_encode_section_info): static weakref
+       variables are not necessarily defined in this translation unit.
+       * doc/extend.texi (Function Attributes): Mention that an alias
+       attribute creates a definition for the thing it's attached to.
+       Change the documentation for weakref to say that the thing
+       it's attached to must be static.
+
+       * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
+       we don't go into an infinite loop.
+
+2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
+
+        * config/rs6000/predicates.md (logical_const_operand): Split
+        out of logical_operand.
+        (logical_operand): Use it.
+        * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
+        logical_const_operand.
+
+2005-12-05  Jan Beulich  <jbeulich@novell.com>
+
+       * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
+       and IX86_BUILTIN_CMPNESS.
+       (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
+       * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
+       * config/i386/i386.md (movti_internal): Correct type attribute.
+       Simplify mode attribute.
+       (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
+       Correct type attribute.
+       (absxf2): Correct operator.
+       * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
+       movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
+       * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
+       mode attribute.
+       (sse2_vmsqrtv2df2): Correct mode attribute.
+
+2005-12-05  Jan Beulich  <jbeulich@novell.com>
+
+       * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
+       16 bits. Provide insn pattern for this case.
+
+2005-12-05  Jan Beulich  <jbeulich@novell.com>
+
+       * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
+       result.
+       (__popcountDI2): Likewise.
+
+2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/25166
+       * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
+       _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
+       * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
+       functions.
+
+2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-typeck.c (null_pointer_constant_p): New function.
+       (build_conditional_expr, build_c_cast, convert_for_assignment,
+       build_binary_op): Use it.
+
+2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-common.c (binary_op_error): Do not allow NOP_EXPR.
+       (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
+       CONVERT_EXPR.
+       (check_function_arguments_recurse): Allow both NOP_EXPR and
+       CONVERT_EXPR but check conversions preserve precision.
+       * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
+       but check conversions preserve precision.
+       (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
+       default case.
+
+2005-12-04  Roger Sayle  <roger@eyesopen.com>
+
+       PR c/7776
+       * common.opt (Wstring-literal-comparison): New command line option.
+       * c-opts.c (c_common_handle_option): Set it with -Wall.
+       * c-typeck.c (parser_build_binary_op): Issue warning if either
+       operand of a comparison operator is a string literal, except for
+       testing equality or inequality against NULL.
+
+       * doc/invoke.texi: Document new -Wstring-literal-comparison option.
+
+2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
+       of building a NOP_EXPR.
+       (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
+       NOP_EXPR.
+       * c-convert.c (convert): Use fold_convert instead of building
+       NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
+       c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
+       #if 0 code.
+       * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
+       NOP_EXPR the same as CONVERT_EXPR.
+       * c-typeck.c (build_function_call): Use fold_convert instead of
+       building a NOP_EXPR directly.
+       (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
+
+2005-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       PR rtl-optimization/25197
+       * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
+       have a reg.
+
+2005-12-02  Stuart Hastings  <stuart@apple.com>
+
+       * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
+       warning.
+
+2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-typeck.c (default_function_array_conversion,
+       build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
+       (build_conditional_expr): Apply integer_zerop to orig_op1 and
+       orig_op2.  Don't check them for NOP_EXPR.
+       (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
+       around integer zero.
+
+2005-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
+       toc_save_offset, toc_size, lr_size.
+       (rs6000_stack_info): Use memset rather than bss struct copy to init.
+       Test rs6000_ra_ever_killed last in condition setting lr_save_p.
+       Adjust for removal of unused rs6000_stack_t fields.
+       (debug_stack_info): Adjust.
+       (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
+       first, and don't bother checking for set/inc of lr on sibcalls.
+       (rs6000_emit_epilogue): Tidy code restoring stack pointer.
+
+2005-12-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/25199
+       * config/i386/i386.md (movqi_1): Only force imovx for alternative
+       5 if operand 1 is not aligned.  Undo previous constraint change.
+       * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (build): Remove prototype.
+       (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
+       * tree.c (build): Remove.
+       (build0_stat): Update comment.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
+       * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
+       Likewise.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
+       maybe_fold_offset_to_component_ref): Likewise.
+       * tree-ssa-dom.c (thread_across_edge,
+       simplify_rhs_and_lookup_avail_expr,
+       find_equivalent_equality_comparison, record_equivalences_from_stmt):
+       Likewise.
+       * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
+       * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
+       lower_try_finally_switch): Likewise.
+       * tree-if-conv.c (add_to_dst_predicate_list,
+       replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
+       * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
+       voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
+       gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
+       gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
+       shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
+       gimplify_init_ctor_eval, gimplify_init_constructor,
+       gimplify_variable_sized_compare, gimplify_boolean_expr,
+       gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
+       gimplify_expr, gimplify_body, gimplify_function_tree,
+       force_gimple_operand): Likewise.
+       * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
+       * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
+       mx_register_decls): Likewise.
+       * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
+       get_frame_field, finalize_nesting_tree_1): Likewise.
+       * tree-inline.c (setup_one_parameter): Likewise.
+       * tree-vect-transform.c (vectorizable_condition): Likewise.
+       * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
+       Likewise.
+       * tree-profile.c (tree_gen_edge_profiler): Likewise.
+       * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
+       * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
+       * tree-chrec.h (build_polynomial_chrec): Likewise.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
+       alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
+       * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
+       * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
+       * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
+       * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
+       * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
+       Likewise.
+       * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
+       sh_adjust_unroll_max): Likewise.
+       * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
+       * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
+       * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
+       Likewise.
+       * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
+       Likewise.
+       * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
+       Likewise.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
+       simplify_cond_using_ranges): Use buildN instead of build.
+       * tree-tailcall.c (adjust_accumulator_values,
+       adjust_return_value): Likewise.
+       * tree-sra.c (generate_one_element_ref, generate_copy_inout,
+       generate_element_copy, generate_element_zero,
+       generate_one_element_init): Likewise.
+       * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
+       * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
+       lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
+       perfect_nestify): Likewise.
+
+2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (pa_secondary_reload): Revise initialization of variable regno.
+
+2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * ggc.h (GGC_RESIZEVEC): New.
+
+2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       * gcc.c (execute): Improve readability.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (mark_used_vars): New function.
+       (dump_function_to_file): Dump only used VAR_DECLs.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * convert.c (convert_to_integer): Fix compare for nonpositive
+       constant to use tree_int_cst_sgn <= 0.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * convert.c (convert_to_integer): Use fold_convert instead
+       of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
+       instead of comparing against 0.  Use build_int_cst instead
+       of converting integer_zero_node.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
+       and RROTATE_EXPR.
+2005-12-02  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/21017
+       * combine.c (simplify_logical <IOR>): Simplify more patterns to
+       rotates.
+
+2005-12-02  Alan Modra  <amodra@bigpond.net.au>
+
+       PR middle-end/25176
+       * function.c (expand_function_end): Emit blockage for unwinder
+       after return label.
+
+2005-12-01  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
+       constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
+       * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
+       integer constant comparisons.
+
+2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
+           Janis Johnson  <janis187@us.ibm.com>
+           David Edelsohn  <dje@watson.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * dfp.h, dfp.c: New files.
+       * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
+       (DECNUM_H): Likewise.
+       (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
+       (INCLUDES): Append $(DECNUMINC).
+       (OBJS-common): Add dfp.o.
+       (dfp.o): New rule.
+       * real.h (EXP_BITS): Pinch one bit to ..
+       (struct real_value): Add decimal field.
+       (real_format): Change table size, update documentation.
+       (REAL_MODE_FORMAT): Update for to handle float, decimal float.
+       (real_from_string3): Declare.
+       (decimal_single_format): Declare.
+       (decimal_double_format): Declare.
+       (decimal_quad_format): Declare.
+       (REAL_VALUE_TO_TARGET_DECIMAL32): New.
+       (REAL_VALUE_TO_TARGET_DECIMAL64): New.
+       (REAL_VALUE_TO_TARGET_DECIMAL128): New.
+       * real.c: Include dfp.h.
+       (normalize): Early return for decimal floats.
+       (do_add): Zero decimal field.
+       (do_compare): Call do_decimal_compare for decimal floats.
+       (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
+       (real_arithmetic): Call decimal_real_arithmetic for decimal
+       floating point operands.
+       (real_identical): If a and b are of differing radix, return false.
+       (real_to_integer): Call decimal_real_to_integer if the value is a
+       decimal float.
+       (real_to_integer2): Likewise, call decimal_real_to_integer2.
+       (real_to_decimal): Likewise, call decimal_real_to_decimal.
+       (real_to_hexadecimal): Place "N/A" in the return string for
+       decimal float.
+       (real_from_string3): New variant, given a mode.
+       (real_maxval): Use decimal_real_maxval for decimal floats.
+       (round_for_format): Use decimal_round_for_format for decimals.
+       (real_convert): Use decimal_real_convert where appropriate.
+       (significand_size): Handle base 10.
+       (encode_decimal_single, decode_decimal_single,
+       encode_decimal_double, decode_decimal_double, encode_decimal_quad,
+       decode_decimal_quad): New functions.
+       (decimal_single_format): New.
+       (decimal_double_format): New.
+       (decimal_quad_format): New.
+       * machmode.def: Add SD, DD and TD decimal floating point modes.
+       * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
+       Include MODE_DECIMAL_FLOAT.
+       (DECIMAL_FLOAT_MODE_P): New.
+       * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
+       * genmodes.c (struct mode_data): Add counter field.
+       (struct mode_data): Update comment for format.
+       (blank_mode): Initialise counter field.
+       (new_mode): Increment counter field for each mode defined.
+       (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
+       using a format.
+       (make_complex_modes): Handle modes containing `D'.
+       (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
+       (make_decimal_float_mode): New.
+       (reset_float_format): Handle MODE_DECIMAL_FLOAT.
+       (cmp_modes): Compare counter field if other characteristics
+       similar.
+       (emit_real_format_for_mode): Support formats for decimal floats.
+       * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
+       Document MODE_DECIMAL_FLOAT.
+
+2005-12-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
+       Delete dead code.
+
+2005-12-01  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
+
+2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
+
+       * config/pa/pa.c (pa_init_builtins): If we detect
+       DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
+       putc_unlocked.
+
+2005-12-01  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (fold_binary): Use fold_build2, not
+       fold (build (...)).
+
+2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
+
+       * vec.h (VEC_block_remove): New.
+
+2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c/13384
+       * c-common.c (lvalue_error): Fix wording.
+
+2005-12-01  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
+       thinko in last patch.
+
+2005-12-01  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
+       than -flat_namespace.
+
+2005-12-01  Ben Elliston  <bje@au.ibm.com>
+
+        * mklibgcc.in: Parameterise the script to build soft float
+       functions by iterating over each type, rather than cloning the
+       code for each type.
+
+2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR middle-end/25158
+       * builtins.c (fold_builtin_fputs): Defer check for missing
+       replacement functions.
+
+2005-11-30  Kean Johnston  <jkj@sco.com>
+
+       * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
+       simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
+
+2005-11-30  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/22501
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
+       function split out from ...
+       (forward_propagate_addr_expr): ... here.  Use it to propagate
+       ADDR_EXPRs to all uses.
+
 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
        for inheritance.  Support case when both secondary & tertiary reloads
        are for intermediate registers.
        (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
-        with secondary_reload_class call.  Support case when both secondary
+       with secondary_reload_class call.  Support case when both secondary
        & tertiary reloads are for intermediate registers.
        * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
        (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
 
 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
 
-        * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
-        than VR1 or vice-versa.
+       * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
+       than VR1 or vice-versa.
 
 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
 
        and duplicate declaration of pthread_self.
 
 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
-            Ian Lance Taylor  <ian@airs.com>
+           Ian Lance Taylor  <ian@airs.com>
 
        PR middle-end/24003
        * calls.c (expand_call): If TARGET is a MEM and some part of the
 
 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
 
-        * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
+       * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
        checking.
 
 2005-11-13  Jason Merrill  <jason@redhat.com>
 
        PR c/24599
 
-        * c-typeck.c (build_c_cast): Try using a shared constant, and see
-        if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
+       * c-typeck.c (build_c_cast): Try using a shared constant, and see
+       if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
 
 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
 
 
 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/ms1/ms1.h (TARGET_MS1_64_001): New.
-        (TARGET_MS1_16_002): New.
-        (TARGET_MS1_16_003): New.
+       * config/ms1/ms1.h (TARGET_MS1_64_001): New.
+       (TARGET_MS1_16_002): New.
+       (TARGET_MS1_16_003): New.
 
-        * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
-        ("*decrement_and_branch_until_zero_no_clobber"): New.
-        Add corresponding splitter for decrement_and_branch_until_zero
-        instruction.
-        Key all decrement_and_branch_until_zero patterns off of
-        TARGET_MS1_16_003.
+       * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
+       ("*decrement_and_branch_until_zero_no_clobber"): New.
+       Add corresponding splitter for decrement_and_branch_until_zero
+       instruction.
+       Key all decrement_and_branch_until_zero patterns off of
+       TARGET_MS1_16_003.
 
 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
 
        indirect call to _mcount if the function needs a static chain.
 
 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
-            Caroline Tice  <ctice@apple.com>
+           Caroline Tice  <ctice@apple.com>
 
        PR rtl-optimization/24460
        * dwarf2out.c (have_switched_text_sections): New boolean variable.
        Check that elements of TYPE_METHODS are FUNCTION_DECLs.
 
 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
-            Ian Lance Taylor <ian@airs.com>
+           Ian Lance Taylor <ian@airs.com>
 
        PR middle-end/23522
        * fold-const.c (fold_widened_comparison): Do not allow range based