OSDN Git Service

PR optimization/12142
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1428352..626e9aa 100644 (file)
@@ -1,3 +1,862 @@
+2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR optimization/12142
+       * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
+       uses of the register in the SET_SRC.  Remove unnecessary argument.
+       * pa.c (legitimize_pic_address): Before reload, use a scratch register
+       for the intermediate result in loading the address of a SYMBOL_REF.
+       Set the MEM_NOTRAP_P flag for the MEM.  Add a REG_EQUAL to the insn
+       which loads the SYMBOL_REF address.
+
+2003-10-08  Timo Kokkonen  <tjko@iki.fi>
+            Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR bootstrap/12490
+       * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
+       to define the size of the extern_C_braces array.  Set it to 200.
+       (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
+
+2003-10-08  Carlo Wood  <carlo@alinoe.com>
+
+       * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
+       a space after the -o option.  flex 2.5.31 understands both, with
+       and without the space. Removed that space.
+
+2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
+       (compute_frame_size): Initialize it.  Remove the .cprestore slot
+       from args_size.
+       (mips_output_function_prologue): Simplify accordingly.
+       (mips_debugger_offset): Change the mips16 frame pointer offset from
+       current_function_outgoing_args to cfun->machine->frame.args_size.
+       (mips_initial_elimination_offset): Likewise.
+       (mips_expand_prologue): Likewise.
+       (mips_expand_epilogue): Likewise.
+
+2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint.
+       (EXTRA_MEMORY_CONSTRAINT): Define.
+       (CAN_ELIMINATE): Remove lwu workaround.
+       * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too.
+       Use a 'W' constraint for the source operand.
+
+2003-10-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * genopinit.c (main): Output code to declare undefined
+       variables.
+
+2003-10-07  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * gengtype-lex.l: Remove -Wtraditional cruft.
+       * Makefile.in (gengtype-lex.c): Likewise.
+
+2003-10-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
+
+2003-10-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/12519
+       * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
+       it isn't a decl.
+
+2003-10-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
+       not overridden.
+       Fixes PR bootstrap/12173.
+
+2003-10-07  Zack Weinberg  <zack@codesourcery.com>
+
+       * errors.c: Don't include coretypes.h or tm.h.
+       (trim_filename): Use IS_DIR_SEPARATOR.
+       * Makefile.in: Update dependencies of errors.o and
+       $(BUILD_PREFIX_1)errors.o.
+
+2003-10-07  Geoffrey Keating  <geoffk@apple.com>
+
+       * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
+       account when aligning arguments.
+       * calls.c (STACK_POINTER_OFFSET): Move default from here ...
+       * defaults.h (STACK_POINTER_OFFSET): ... to here.
+       * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
+       it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
+       (SPARC_STACK_BOUNDARY_HACK): Define.
+       * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
+       arrange for vector parameters to varargs functions to be passed
+       in both memory and GPRs when appropriate.
+       (rs6000_va_arg): Vector arguments passed in memory are 16-byte
+       aligned.
+
+       * hooks.c (hook_bool_tree_true): New.
+       (hook_rtx_tree_int_null): New.
+       (hook_rtx_rtx_null): Use NULL, not 0.
+       * hooks.h: Add 'extern' to everything.
+       (hook_bool_tree_true): New.
+       (hook_rtx_tree_int_null): New.
+       * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New.
+       * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New.
+       * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove
+       prototype.
+       * config/rs6000/rs6000.c (rs6000_return_in_memory): New.
+       (setup_incoming_varargs): Prototype.
+       (TARGET_PROMOTE_FUNCTION_ARGS): Define.
+       (TARGET_PROMOTE_FUNCTION_RETURN): Define.
+       (TARGET_STRUCT_VALUE_RTX): Define.
+       (TARGET_RETURN_IN_MEMORY): Define.
+       (TARGET_SETUP_INCOMING_VARARGS): Define.
+       (TARGET_STRICT_ARGUMENT_NAMING): Define.
+       (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define.
+       (init_cumulative_args): Use rs6000_return_in_memory.
+       (setup_incoming_varargs): Make 'static'.
+       * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete.
+       (PROMOTE_FUNCTION_RETURN): Delete.
+       (STRUCT_VALUE): Delete.
+       (RETURN_IN_MEMORY): Delete.
+       (SETUP_INCOMING_VARARGS): Delete.
+
+2003-10-07  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/invoke.texi (Warning Options): Simplify and clarify the
+       descriptions of -Wnonnull and -Winit-self.
+
+2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
+
+       * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
+       indicees for floating-point conversersion libcalls.
+
+2003-10-07  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.in: Add more comments separating large conceptually
+       separate sections.
+
+       * configure.in: Clean up thread file logic.
+       * configure: Regenerate.
+
+2003-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define.
+       (switch_to_section): Handle in_readonly_data.
+       * config/i386/winnt.c (i386_pe_asm_named_section): Handle
+       readonly data.
+
+2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
+       it.
+       (cbranchne_decr1): New Thumb pattern.
+       * arm.c (arm_addimm_operand): New insn predicate.
+       * arm-protos.h: Add a prototype for it.
+       * arm.h (PREDICATE_CODES): Add it.
+
+2003-10-07  Dorit Naishlos <dorit@il.ibm.com>
+
+       * sched-int.h (sched_info): New field
+       sched_max_insns_priority.
+       * sched-rgn.c (init_ready_list): Add invocations to
+       targetm.sched.adjust_priority.
+       (sched_max_insns_priority): Init new field.
+       * sched-ebb.c (sched_max_insns_priority): Init new field.
+       * haifa-sched.c (set_priorities): Set
+       sched_info->sched_max_insns_priority.
+       * config/rs6000/rs6000.h:
+       (rs6000_sched_restricted_insns_priority_str): Support new
+       flag -mprioritize-restricted-insns.
+       (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
+       * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
+       function.
+       (rs6000_adjust_priority): Change priority of restricted
+       insns, using above new function and new flag.
+       * doc/invoke.texi (-mprioritize-restricted-insns): Document
+       new option.
+
+2003-10-07  Zack Weinberg  <zack@codesourcery.com>
+
+       * expr.c (cmpstr_optab, cmpmem_optab): New.
+       * genopinit.c: Initialize them.
+       * optabs.h: Declare them.
+       * optabs.c (init_optabs): Clear them.
+       (prepare_cmp_insn):  Use cmpstr_optab and cmpmem_optab to find
+       block memory compare insns, not conditional chains.  Restructure
+       the fallback generation of a call to memcmp/bcmp for better
+       readability.
+
+2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro.
+       (mips_save_restore_fn): New typedef.
+       (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove.
+       (mips_set_frame_expr, mips_frame_set): Move above prologue code.
+       (save_restore_insns): Remove, replacing with...
+       (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns.
+       (mips_save_reg, mips_restore_reg): New function.
+       (mips_expand_prologue, mips_expand_epilogue): Rework.
+       * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove.
+       (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros.
+       (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros.
+
+2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_expand_prologue): Remove unused
+       traversal of function arguments.
+
+2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/invoke.texi: Remove documentation of -mentry.
+       * config/mips/mips.c (mips_entry_string, mips_entry): Remove.
+       (override_options, mips_save_reg_p): Remove handling.
+       (compute_frame_size, mips_output_function_prologue): Likewise.
+       (mips_expand_prologue, mips_expand_epilogue): Likewise.
+       * config/mips/mips.h (mips_entry_string): Remove declaration.
+       (TARGET_OPTIONS): Remove -mentry.
+       * config/mips/mips16.S: Remove mention of -mentry.
+
+2003-10-06  Zack Weinberg  <zack@codesourcery.com>
+
+       * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
+       (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
+       (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
+       (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
+       (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
+       (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
+       (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
+       (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
+       (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
+       (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
+       (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
+       (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
+       (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
+       (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
+       (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
+       (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
+       (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
+       (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
+       (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
+       (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
+       (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
+       (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
+       (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
+       (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
+       (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
+       (fixunstfti_libfunc): Delete.
+       * optabs.h (struct optab_handlers): Break out of struct optab.
+       (struct convert_optab, convert_optab, enum convert_optab_index,
+       convert_optab_table, sext_optab, zext_optab, trunc_optab,
+       sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
+       sfloat_optab, ufloat_optab): New.
+       (set_conv_libfunc): Prototype.
+       (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
+       (trunc_optab): Renamed btrunc_optab.
+       * builtins.c (expand_builtin_mathfn): Update to match.
+       * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
+       (convert_optab_table, new_convert_optab, init_convert_optab)
+       (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
+       (set_conv_libfunc): New.
+       (can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
+       (expand_float, expand_fix): Use new conversion optabs,
+       not old insn code tables or long chains of ifs.
+       (init_optabs): No need to clear old insn code tables.
+       Initialize the new optabs, not the old libfunc array entries.
+       Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
+       * genopinit.c: Initialize conversion optabs, not the
+       former insn code tables.  Remove unnecessary casts.
+       Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
+       * expr.c (convert_move): Remove redundant check that
+       to_real==from_real.  Use the conversion optabs instead
+       of long chains of tests of modes.  Move partial-integer-mode
+       interconversion above all integer conversion.  Do not recurse
+       on a value forced into a register in the original mode.
+
+       * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
+       * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
+       * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
+       in new conversion optabs; do not reference the old libfunc
+       array entries.  No need to include libfuncs.h.
+
+2003-10-06  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.c (ix86_expand_setcc): Annotate the floating
+       point comparison sequence with a REG_EQUAL note that describes
+       the comparison's semantics.
+
+2003-10-06  Roger Sayle  <roger@eyesopen.com>
+
+       * expr.c (expand_expr <COND_EXPR>): Handle the void type semantics
+       of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations.
+
+2003-10-06  Roger Sayle  <roger@eyesopen.com>
+           Zack Weinberg  <zack@codesourcery.com>
+
+       * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
+       instruction by using LCT_CONST and then calling emit_libcall_block
+       ourselves.
+
+2003-10-06  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
+
+       PR optimization/11974
+       * optabs.c (expand_unop): Promote libcall outmode according to
+       hard_libcall_value.
+
+2003-10-06  Zack Weinberg  <zack@codesourcery.com>
+
+       * real.h (REAL_MODE_FORMAT): New macro.
+       * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c
+       * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h
+       * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c
+       * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c
+       * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring
+       directly to real_format_for_mode array, wherever possible.
+
+2003-10-06  Devang Patel  <dpatel@apple.com>
+
+       * dwarf2out.c (is_main_source): Remove variable.
+       (dwarf2out_start_source_file): Do not check is_main_source.
+       Do not reset is_main_source.
+       (dwarf2out_init): Do not initialize is_main_source.
+
+2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * fixinc/inclhack.def (stdio_va_list): Removed _ap fix.
+       (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21
+       introduced some multi-line prototypes.
+       * fixinc/fixincl.x: Regenerate.
+
+2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (PREDICATE_CODES): Add stack_operand.
+       * config/mips/mips.c (stack_operand): New predicate.
+       * config/mips/mips.md: Use it for the destination of mips16 insns
+       that store $31.
+
+2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (*lowsi): Renamed from lowsi.
+       (*lowdi): Likewise lowdi.
+       (*lowsi_mips16, *lowdi_mips16): New patterns.
+       * config/mips/mips.c (mips_const_insns, mips_output_move): Remove
+       mips16 CONSTANT_RELOC handling.
+       (mips_delegitimize_address): Adjust for new sdata representation.
+
+2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
+       skip any remaining register arguments.
+
+2003-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * reload.c (find_reloads_subreg_address): Use correct offset for
+       paradoxical MEM subregs on big-endian targets.
+
+2003-10-06  Andrew Haley  <aph@redhat.com>
+
+       * tree.c (get_callee_fndecl): Call
+       lang_hooks.lang_get_callee_fndecl.
+       * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
+       (lhd_get_callee_fndecl): New.
+
+2003-10-06  Andrew Pinski  <apinski@apple.com>
+
+       * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
+       error in calculating the length of the string.
+       (machopic_stub_name): Likewise.
+
+2003-10-06  Roger Sayle  <roger@eyesopen.com>
+
+       * optabs.c (prepare_float_lib_cmp):  Attach a REG_EQUAL note
+       describing the return value of the comparison libcall to the
+       REG_RETVAL instruction of the emitted sequence.
+
+2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/12215
+       * cse.c (cse_set_around_loop): Emit the move at the beginning
+       of the next basic block for trapping sets.
+
+2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/11637
+       * combine.c (adjust_for_new_dest): New function to adjust the
+       notes and LOG_LINKS when the dest of an insn has changed.
+       (try_combine): Use it when deleting the first insn of a two-insn
+       parallel or splitting a two-load parallel.
+
+2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs
+       if TARGET_EXPLICIT_RELOCS.
+
+2003-10-06  Mark Mitchell  <mark@codesourcery.com>
+
+       PR bootstrap/12512
+       * Makefile.in (info): Use double-colon rules.
+       (dvi): Likewise.
+       (generated-manpages): Likewise.
+       * configure.in: Do not create lang.info, lang.dvi, or
+       lang.generated-manpages hooks.
+       * configure: Regenerated.
+       * objc/Make-lang.in (objc.info): Remove.
+       (objc.dvi): Remove.
+       (objc.generated-manpages): Remove.
+       * doc/sourcebuild.texi: Update description of info, dvi, and
+       generated-manpages hooks.
+
+2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter.
+
+2003-10-05  Andrew Pinski  <apinski@apple.com>
+
+       * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
+       errors in memcpy destinations.
+       (machopic_stub_name): Likewise.
+
+2003-10-05  Andrew Pinski <apinski@apple.com>
+
+       * config/darwin.c (machopic_non_lazy_ptr_name):
+       Change strcat to memcpy and add length together.
+       (machopic_stub_name): Likewise.
+
+2003-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
+       signal trampoline codes.
+
+2003-10-05  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.md (*divsf3): Move description of
+       SB-1 F2 erratum from here to...
+       (divsf3): Here.  Disable if TARGET_FIX_SB1 is set and
+       flag_unsafe_math_optimizations is not.
+
+2003-10-05  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE,
+       TARGET_E500, TARGET_ISEL, and TARGET_FPRS.
+
+2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-pretty-print.c: Fix comment typos.
+       * c-pretty-print.h: Likewise.
+       * calls.c: Likewise.
+       * cfgloopmanip.c: Likewise.
+       * cgraphunit.c: Likewise.
+       * cppfiles.c: Likewise.
+       * final.c: Likewise.
+       * function.c: Likewise.
+       * gcov-io.h: Likewise.
+       * gcse.c: Likewise.
+       * genoutput.c: Likewise.
+       * loop.c: Likewise.
+       * postreload.c: Likewise.
+       * reg-stack.c: Likewise.
+       * regmove.c: Likewise.
+       * sched-int.h: Likewise.
+       * sched-rgn.c: Likewise.
+       * simplify-rtx.c: Likewise.
+       * tree-inline.c: Likewise.
+       * config/m68hc11/m68hc11.h: Likewise.
+       * config/mmix/mmix.c: Likewise.
+       * config/mn10300/mn10300.md: Likewise.
+       * config/sh/sh.h: Likewise.
+
+2003-10-05  Richard Henderson  <rth@redhat.com>
+
+       * tree-inline.c (remap_type): New.
+       (remap_decl): Use it.  Remap DECL_SIZE*.
+       (copy_body_r): Use it.
+       (walk_tree): Walk TREE_TYPE too.
+       (copy_tree_r): Don't walk subtrees of types.
+       * tree.c (variably_modified_type_p): Restructure.  Consider integer
+       types with non-const bounds variably modified.
+
+2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/invoke.texi: Fix typos.
+
+2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c: Follow spelling conventions.
+       * function.c: Likewise.
+       * config/c4x/c4x.h: Likewise.
+       * config/c4x/c4x.md: Likewise.
+       * config/frv/frv.md: Likewise.
+       * config/rs6000/aix.h: Likewise.
+       * config/rs6000/linux64.h: Likewise.
+       * config/xtensa/xtensa.c: Likewise.
+
+2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-pretty-print.c: Fix comment formatting.
+       * cfglayout.c: Likewise.
+       * cfgloopanal.c: Likewise.
+       * cppcharset.c: Likewise.
+       * dbxout.c: Likewise.
+       * ggc-page.c: Likewise.
+       * ggc.h: Likewise.
+       * target.h: Likewise.
+
+2003-10-04  Kelley Cook  <kelleycook@wideopenwest.com>
+
+       * gengtype-lex.l: Recognize typedef of functions without PARAMS macro.
+
+2003-10-04  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c:
+       Convert to ISO C90 function declarations and definitions.
+
+2003-10-04  Zack Weinberg  <zack@codesourcery.com>
+
+       * libfuncs.h
+       (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
+       (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
+       (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
+       (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
+       (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
+       (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
+       (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
+       (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
+       (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
+       (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
+       (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
+       (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
+       (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
+       (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
+       (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
+       (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
+       Delete.
+       * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
+       (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
+       (le_optab, unord_optab): New.
+
+       * optabs.c (prepare_float_lib_cmp): Rewrite.  Get the libfuncs
+       from the code_to_optab table, not a giant switch; use
+       swap_condition; do widening only if a comparison function that
+       we can call exists in a wider mode, not if a cmp_optab insn or
+       libfunc exists in a wider mode; call protect_from_queue
+       exactly once on each operand.
+       (init_optabs): Initialize the new optabs, not the deleted libfuncs.
+
+       * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
+       * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
+       Set floating point comparison libfuncs using set_optab_libfunc
+       on the appropriate optab.
+
+       * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
+       * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
+       selector conditionals.
+
+2003-10-04  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
+       identical to m68hc12 as far as libraries are concerned.
+
+2003-10-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR c/12446
+       * c-typeck.c (convert_for_assignment): Issue an error for
+       array to pointer assignment after default conversion.
+       (digest_init): Likewise.
+
+2003-10-04  Fariborz Jahanian  <fjahanian@apple.com>
+
+       * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration
+
+2003-10-03  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/extend.texi (Function Attributes): Fix title of GNU C
+       Preprocessor manual.
+       (C++ Extensions): Fix reference to "Predefined Macros" in the
+       GNU C Preprocessor manual.
+
+2003-10-04  Richard Earnshaw  <reanrsha@arm.com>
+
+       * doc/extend.texi: Document how GCC estimates and relies on the size
+       of an asm.
+
+2003-10-04  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
+       arguments downward for big-endian o64.
+
+2003-10-03  Robert Bowdidge <bowdidge@apple.com>
+
+       * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
+       PCH generation, avoiding too-frequent flushes when writing to NFS
+       file system.
+
+2003-10-03  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc/objc-act.c (lookup_category): Mark as 'inline'.
+
+2003-10-03  Alexander Malmberg  <alexander@malmberg.org>
+           Ziemowit Laski  <zlaski@apple.com>
+
+       * objc/objc-act.c (add_method_to_hash_list, lookup_category):
+       New functions.
+       (lookup_method_in_hash_lists): New parameter indicating whether
+       we are messaging 'Class' or 'id'.
+       (check_duplicates): Likewise; do not assume all methods will
+       be either class or instance methods.
+       (generate_category, finish_class): Use lookup_category().
+       (add_method): Use add_method_to_hash_list(); insert instance
+       methods of root classes into the global class method hash table.
+       (add_category): Use lookup_category(); avoid constructing
+       duplicate categories.
+       (really_start_method): Add method to corresponding @interface,
+       if not already there (and if the @interface exists).
+       (finish_message_expr, finish_objc): Adjust calls to
+       check_duplicates().
+
+2003-10-03  Roger Sayle  <roger@eyesopen.com>
+
+       PR optimization/9325, PR java/6391
+       * fold-const.c (fold_convert): For floating point to integer
+       conversions, return the maximum/minimum representable integer
+       value if the real constant overflows the destination type.
+       * tree.c (real_value_from_int_cst): Allow the type to be NULL,
+       meaning don't truncate the result to a floating point mode.
+       Simplify the logic by calling real_from_integer directly.
+       * simplify-rtx.c (simplify_unary_operation):  Implement the
+       same semantics for folding floating point to integer conversions
+       in RTL.
+
+2003-10-03  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.c (mips_emit_prefetch): Restructure
+       to avoid use of arrays, handle indexed prefetch.
+       * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments.
+       (ISA_HAS_PREFETCHX): New deffine.
+       * config/mips/mips.md ("type" attr): Add new "prefetchx" value,
+       update comments.
+       (prefetch_indexed_di, prefetch_indexed_si): New insns.
+
+2003-10-03  Jeff Sturm  <jsturm@one-point.com>
+           Roger Sayle  <roger@eyesopen.com>
+
+       PR optimization/12289
+       * calls.c (emit_call_1): Pretend to have popped the arguments
+       to noreturn and longjmp functions instead of ignoring them.
+       (expand_call): Don't adjust stack_pointer_dela while
+       inhibit_defer_pop is set.
+
+2003-10-03  Andreas Schwab  <schwab@suse.de>
+
+       PR bootstrap/12276
+       * configure.in: Check for libunwind on the host only if building
+       a native compiler.
+       * configure: Regenerated.
+
+2003-10-03  Paolo Carlini  <pcarlini@unitus.it>
+
+       * unwind-pe.h (read_encoded_value_with_base): Constify u and
+       its inizialization cast.
+
+2003-10-03  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR target/12485
+       * config/mips/mips.c (mips_load_got): GOT accesses can't trap.
+
+2003-10-02  Mark Mitchell  <mark@codesourcery.com>
+
+       PR optimization/12180
+       * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of
+       functions containing calls to __builtin_next_arg.
+
+2003-10-02  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.c (mips_emit_prefetch): Use operand 3
+       in instructions being output.
+       * config/mips/mips.md (prefetch_si_address): Change third
+       operand's constraint letter to 'I'.
+       (prefetch_di_address): Likewise.
+       (prefetch_si, prefetch_di): Set third operand to const0_rtx.
+
+2003-10-02  Zack Weinberg  <zack@codesourcery.com>
+
+       * system.h: Poison macros obsoleted by earlier patch.
+       * config/cris/cris.c: C90-ify a function definition.
+
+2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
+
+       PR/12292
+       * combine.c (make_field_assignment): Check whether rtx's code
+       is CONST_INT before using INTVAL.
+
+2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
+
+       * cgraph.c (cgraph_node): Use INSERT instead of 1 in
+       htab_find_slot_with_hash.
+       (cgraph_node_for_identifier): Use NO_INSERT.
+       (cgraph_remove_node): Use NO_INSERT.
+       (cgraph_varpool_node): Use INSERT.
+       (cgraph_varpool_node_for_identifier): Use NO_INSERT.
+
+2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
+
+       Waldek Hebisch <hebisch@math.uni.wroc.pl>
+       PR/12072
+       * varasm.c (compare_constant): Fix thinko.
+
+2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/frv/frv.c (frv_issue_rate): New function.
+       (frv_pack_insns): Use it.
+       (TARGET_SCHED_ISSUE_RATE): Define.
+
+2003-10-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
+
+       * config/mcore/mcore.c: Convert to ISO C90 function declarations
+       and definitions.
+       * config/mcore/mcore.h: Likewise.
+       * config/mcore/mcore-protos.h: Likewise.
+
+2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function.
+       (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
+
+2003-10-01  Per Bothner  <pbothner@apple.com>
+
+       * c-lex.c (src_line):   Remove unneeded static variable.
+       (cb_line_change):  Set input_line directly, instead of src_line.
+       (get_non_padding_token):  We no longer need to compensate for the
+       "horrible things" the C++ front-end does with the current line number,
+
+       * cpplib.c (_cpp_pop_buffer):  Do generate a _cpp_do_file_change
+       callback even when popping the main file.
+       * c-lex.c (fe_file_change):  Handle a NULL new_map.
+       * fix-header.c (cb_file_change):  Likewise.
+       * c-ppoutput.c (pp_file_change):  Likewise.
+
+       * cppinit.c (cpp_read_main_file):  Split into two functions:
+       Distribute _cpp_stack_file call over the two functions.
+       (cpp_find_main_file):  New function.
+       Don't call _cpp_do_file_change even if working_directory flag set.
+       (cpp_push_main_file):  New function.
+       * cppfiles.c (_cpp_find_failed):  New helper function.
+       (find_file):  Made non-static and renamed to _cpp_find_file.
+       (_cpp_stack_file):  No longer needed.  But note the following.
+       (stack_file):  Made non-static and renamed to _cpp_stack_file.
+       * fix-header.c (cpp_read_main_file):  Replace cpp_read_main_file
+       call with calls to cpp_find_main_file and cpp_push_main_file.
+       (search_path_head):  If there is no current buffer, use main_file.
+       * cpphash.h:  Update function declarations.
+       * cpplib.h:  Update function declarations.
+
+       * c-opts.c (c_common_post_options):  Don't call cpp_find_main_file yet.
+       (c_common_parse_file):  No longer need to call cpp_read_main_file
+       when file_index > 0 (as in multi-file or server compiation).
+       (finish_options):  Change to <built-in> is an LC_ENTER, not LC_RENAME
+       as this now happens before cpp_push_main_file.
+       (push_command_line_include):  When done with options, pass LC_LEAVE
+       instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file.
+       (fe_file_change):  Handle NULL new_map, and simplify.
+       * cpplex.c (_cpp_get_fresh_line):  Revert my no-longer-needed
+       08-28 change, since we're never called with a NULL buffer.
+       (_cpp_lex_direct):  Likewise.
+       * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
+       Return false if buffer is NULL at end.
+
+       * cpplex.c (_cpp_get_fresh_line):  Return value now just depends on
+       whether pfile->buffer is NULL after pop, ignoring return_at_eof.
+       * cpphash.h (struct cpp_buffer):  Remove unused return_at_eof field.
+       * cpplib.c (cpp_push_buffer):  Since we no longer set return_at_eof,
+       remove the unused return_at_eof parameter.
+       * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
+       Update callers of cpp_push_buffer.
+
+2003-10-01  Zack Weinberg  <zack@codesourcery.com>
+
+       * target.h (init_libfuncs): New hook.
+       * target-def.h: Default TARGET_INIT_BUILTINS and
+       TARGET_INIT_LIBFUNCS to hook_void_void.  Add
+       TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
+       * builtins.c (default_init_builtins): Delete.
+       * expr.h (default_init_builtins): Delete prototype.
+       * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
+       Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
+       Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
+       DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
+       MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
+       and UMODDI3_LIBCALL,
+
+       * Makefile.in (optabs.o): Depends on target.h.
+       * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
+       * optabs.c: Include target.h.
+       (prepare_float_lib_cmp): No need for #ifdef around use of
+       FLOAT_LIB_COMPARE_RETURNS_BOOL.
+       (set_optab_libfunc): New function.
+       (init_optabs): Delete use of all *_LIBCALL defines.
+       Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
+       * optabs.h: Prototype set_optab_libfunc.
+
+       * config.gcc: Remove all references to pa/long_double.h,
+       ia64/hpux_longdouble.h, and gofast.h.
+       (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
+       to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
+
+       * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
+       * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
+       * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
+       * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
+       * config/sparc/sparc.c, config/vax/vax.c:
+       Provide a definition for TARGET_INIT_LIBFUNCS.  Where
+       necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
+
+       * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
+       * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
+       * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
+       * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
+       * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
+       * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
+       * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
+       * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
+       INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
+
+       * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
+       Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
+       * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
+       HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
+       * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
+
+       * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
+       * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
+       SUN_INTEGER_MULTIPLY_64 to 0.
+       * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
+       SUN_INTEGER_MULTIPLY_64 to 1.
+       * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
+       SUN_INTEGER_MULTIPLY_64 to 0.
+       * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
+       Define US_SOFTWARE_GOFAST.
+       * config/vax/vax.h: Default TARGET_ELF to 0.
+       * config/vax/elf.h: Redefine TARGET_ELF to 1.
+
+       * config/gofast.h: Don't define any macros here.  Provide one
+       static function, gofast_maybe_init_libfuncs, which does what
+       INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
+       is already defined.  Do not clear negation libfuncs.  Do
+       not mess with HFmode, XFmode, or TFmode libfuncs.
+
+       * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
+
+2003-10-01  Kelley Cook  <kelleycook@wideopenwest.com>
+
+       PR C/12466
+       * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C.
+
+2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * config/mips/xm-iris5.h: Remove, unnecessary.
+       * config.build (mips-sgi-irix5*): Remove.
+       (mips-sgi-irix6*o32): Likewise.
+       * config.gcc (mips-sgi-irix6*o32): Remove xm_file.
+       (mips-sgi-irix5cross64): Likewise.
+       (mips-sgi-irix5*): Likewise.
+       * config.host (mips-sgi-irix5*): Remove.
+       (mips-sgi-irix6*o32): Likewise.
+
 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
 
        * dbxout.c (dbxout_fptype_value): Delete.