OSDN Git Service

* config/s390/s390.c (s390_emit_epilogue): Always restore registers
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5c19dbe..01b2e44 100644 (file)
@@ -1,3 +1,920 @@
+2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_emit_epilogue): Always restore registers
+       needed by the compiler, even if they are used as global regs.
+
+2002-04-25  Matt Hiller  <hiller@redhat.com>
+
+       * mips.c (mips_class_max_nregs, mips_register_move_cost): New
+       functions.
+       * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
+       of the corresponding functions.
+       * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
+       New prototypes.
+       
+2002-04-25  Matt Hiller  <hiller@redhat.com>
+
+       * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
+
+       (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
+       (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
+       registers, adjust comment accordingly.
+       (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
+       reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
+       DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
+       for coprocessor registers.
+       (ADDITIONAL_REGISTER_NAMES): Include
+       ALL_COP_ADDITIONAL_REGISTER_NAMES.
+       
+       (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
+       COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
+       COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
+       COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
+       COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
+
+       (mips_char_to_class): Adjust comment to include coprocessor
+       constraint letters.
+
+       * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
+       New functions.
+       (mips_reg_names, mips_regno_to_class): Include coprocessor
+       information.
+       (mips_sw_reg_names): Ditto, make non-static.
+       (mips_move_1word): Handle moves to and from coprocessor registers.
+       (mips_move_2words): Handle moves to and from coprocessor
+       registers.
+       (mips_class_max_nregs, mips_register_move_cost): Handle
+       coprocessor register classes.
+       (override_options): Initialize mips_char_to_class and
+       mips_hard_regno_mode_ok properly for coprocessor registers.
+
+       * config/mips/mips.md (movdi_internal, movdi_internal2,
+       movsi_internal1, movsi_internal2): Add constraint-sets for
+       coprocessor registers.
+       * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
+       * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
+       isn't mips.
+       * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
+       * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
+       isn't mips.
+       * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
+       * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
+       isn't mips.
+       * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
+       * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
+       isn't mips.
+       
+       * doc/tm.texi: Document feature.
+
+2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * integrate.c (function_attribute_inlinable_p): Simplify.
+       Check the table pointer is not NULL.
+
+2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
+
+       * doc/c-tree.texi: Fix typo in introduction.
+
+2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * c-common.h (c_common_parse_file): Update.
+       * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
+       * c-lex.c (YYDEBUG): Get from c-lex.h.
+       (c_common_parse_file): Update.
+       * c-lex.h (YYDEBUG, yydebug): New.
+       * c-parse.in (YYDEBUG): Get from c-lex.h.
+       (c_set_yydebug): Remove.
+       * c-tree.h (c_set_yydebug): Remove.
+       * langhooks-def.h (lhd_do_nothing_i): New.
+       (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
+       (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
+       * langhooks.c  (lhd_do_nothing_i): New.
+       (lhd_set_yydebug): Remove.
+       * langhooks.h (struct lang_hooks): Update.
+       * toplev.c (set_yydebug): New.
+       (compile_file): Update call to parse_file hook.
+       (decode_d_option): Update.
+objc:
+       * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
+
+Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * loop.c (load_mems): Don't change the interface of called functions.
+
+       * calls.c (expand_call): Take current_function_pretend_args_size
+       into account when setting argblock for sibcalls.
+
+2002-04-24  Matt Hiller  <hiller@redhat.com>
+
+       * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
+       * c-lex.c: Ditto.
+
+       * cpplex.c (skip_line_comment): Process comment one multibyte
+       character at a time rather than one char at a time, if
+       appropriate.
+       (parse_string): Process string one multibyte character at a time
+       rather than one char at a time, if appropriate.
+       * c-lex.c (lex_string): Lex and copy multibyte strings
+       appropriately.
+       * cpplib.h (cppchar_t): Change to unsigned.
+
+2002-04-24  Richard Henderson  <rth@redhat.com>
+
+       PR c/3467
+       * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
+       for c99.
+
+Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * sh.c (sh_va_arg): If argument was passed by reference,
+       dereference the pointer.
+
+       * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
+
+       * sh.md (divsi3_i4_media): Use match_operand for input values
+       rather than hard registers.
+       (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
+       unnecessarily through hard registers.  Keep copies of pseudo
+       registers outside of the libcall sequence.
+
+       * sh.md (casesi_shift_media): Add modes.
+
+       * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
+       values in memory.
+
+2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * attribs.c (c_common_attribute_table): Move table and handlers
+       to c-common.c.
+       (format_attribute_table, lang_attribute_table,
+       lang_attribute_common): Remove.
+       (init_attributes): Replace NULL pointers with pointers to the
+       empty table.
+       (handle_packed_attribute, handle_nocommon_attribute,
+       handle_common_attribute, handle_noreturn_attribute,
+       handle_noinline_attribute, handle_always_inline_attribute,
+       handle_used_attribute, handle_unused_attribute,
+       handle_const_attribute, handle_transparent_union_attribute,
+       handle_constructor_attribute, handle_destructor_attribute,
+       handle_mode_attribute, handle_section_attribute,
+       handle_aligned_attribute, handle_weak_attribute,
+       handle_alias_attribute, handle_visibility_attribute,
+       handle_no_instrument_function_attribute, handle_malloc_attribute,
+       handle_no_limit_stack_attribute, handle_pure_attribute,
+       handle_deprecated_attribute, handle_vector_size_attribute,
+       vector_size_helper): Move to c-common.c.
+       * c-common.c (c_common_attribute_table,
+       handle_packed_attribute, handle_nocommon_attribute,
+       handle_common_attribute, handle_noreturn_attribute,
+       handle_noinline_attribute, handle_always_inline_attribute,
+       handle_used_attribute, handle_unused_attribute,
+       handle_const_attribute, handle_transparent_union_attribute,
+       handle_constructor_attribute, handle_destructor_attribute,
+       handle_mode_attribute, handle_section_attribute,
+       handle_aligned_attribute, handle_weak_attribute,
+       handle_alias_attribute, handle_visibility_attribute,
+       handle_no_instrument_function_attribute, handle_malloc_attribute,
+       handle_no_limit_stack_attribute, handle_pure_attribute,
+       handle_deprecated_attribute, handle_vector_size_attribute,
+       vector_size_helper): Move from attribs.c.
+       * c-common.h (c_common_attribute_table,
+       c_common_format_attribute_table): New.
+       * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
+       LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
+       * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
+       LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
+       (LANG_HOOKS_INITIALIZER): Update.
+       * langhooks.h (struct lang_hooks): 3 new attribute hooks.
+       * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
+       * target.h: Update comment.
+       * tree.c (default_target_attribute_table): Remove.
+       * tree.h (default_target_attribute_table, format_attribute_table,
+       lang_attribute_table, lang_attribute_common): Remove.
+objc:
+       * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
+       LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
+
+2002-04-24  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
+       * dwarf2out.c (dwarf_attr_name): Support it.
+       (gen_array_type_die): Emit it.
+       (lookup_type_die): No special handling for VECTOR_TYPE.
+       (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
+
+2002-04-24  Richard Henderson  <rth@redhat.com>
+
+       * config/mips/mips.md (movdi_usd): Renumber.
+
+2002-04-24  David S. Miller  <davem@redhat.com>
+
+       PR target/6420
+       * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
+       32-bit Sparc and current_function_returns_struct is true.
+
+Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c (canonicalize_condition): Use gen_int_mode.
+
+2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/altivec.h: Cleanup file.  Add non individual
+       variants.
+       (vec_vaddubm): New.
+       (vec_vadduhm): New.
+       (vec_vadduwm): New.
+       (vec_vaddfp): New.
+       (vec_vaddcuw): New.
+       (vec_vaddubs): New.
+       (vec_vaddsbs): New.
+       (vec_vadduhs): New.
+       (vec_vadduws): New.
+       (vec_vaddsws): New.
+       (vec_vand): New.
+       (vec_vandc): New.
+       (vec_vavgub): New.
+       (vec_vavgsb): New.
+       (vec_vavguh): New.
+       (vec_vavgsh): New.
+       (vec_vavguw): New.
+       (vec_vavgsw): New.
+       (vec_vrfip): New.
+       (vec_vcmpbfp): New.
+       (vec_vcmpequb): New.
+       (vec_vcmpequh): New.
+       (vec_vcmpequw): New.
+       (vec_vcmpeqfp): New.
+       (vec_vcmpgefp): New.
+       (vec_vcmpgtub): New.
+       (vec_vcmpgtsb): New.
+       (vec_vcmpgtuh): New.
+       (vec_vcmpgtsh): New.
+       (vec_vcmpgtuw): New.
+       (vec_vcmpgtsw): New.
+       (vec_vcmpgtfp): New.
+       (vec_vcmpgefp): New.
+       (vec_vcfux): New.
+       (vec_vcfsx): New.
+       (vec_vctsxs): New.
+       (vec_vctuxs): New.
+       (vec_vexptefp): New.
+       (vec_vrfim): New.
+       (vec_lvx): New.
+       (vec_lvebx): New.
+       (vec_lvehx): New.
+       (vec_lde): Add vector float variant.
+       (vec_lvewx): New.
+       (vec_lvxl): New.
+       (vec_vlogefp): New.
+       (vec_vmaddfp): New.
+       (vec_vmhaddshs): New.
+       (vec_vmaxub): New.
+       (vec_vmaxsb): New.
+       (vec_vmaxuh): New.
+       (vec_vmaxsh): New.
+       (vec_vmaxuw): New.
+       (vec_vmaxsw): New.
+       (vec_vmaxsw): New.
+       (vec_vmaxfp): New.
+       (vec_vmrghb): New.
+       (vec_vmrghh): New.
+       (vec_vmrghw): New.
+       (vec_vmrglb): New.
+       (vec_vmrglh): New.
+       (vec_vmrglw): New.
+       (vec_vminub): New.
+       (vec_vminsb): New.
+       (vec_vminuh): New.
+       (vec_vminsh): New.
+       (vec_vminuw): New.
+       (vec_vminsw): New.
+       (vec_vminfp): New.
+       (vec_vmladduhm): New.
+       (vec_vmhraddshs): New.
+       (vec_msumubm): New.
+       (vec_vmsummbm): New.
+       (vec_vmsumuhm): New.
+       (vec_vmsumshm): New.
+       (vec_vmsumuhs): New.
+       (vec_vmsumshs): New.
+       (vec_vmuleub): New.
+       (vec_vmulesb): New.
+       (vec_vmuleuh): New.
+       (vec_vmulesh): New.
+       (vec_vmuloub): New.
+       (vec_mulosb): New.
+       (vec_vmulouh): New.
+       (vec_vmulosh): New.
+       (vec_vnmsubfp): New.
+       (vec_vnor): New.
+       (vec_vor): New.
+       (vec_vpkuhum): New.
+       (vec_vpkuwum): New.
+       (vec_vpkpx): New.
+       (vec_vpkuhus): New.
+       (vec_vpkshss): New.
+       (vec_vpkuwus): New.
+       (vec_vpkswss): New.
+       (vec_vpkshus): New.
+       (vec_vpkswus): New.
+       (vec_vperm): New.
+       (vec_vrefp): New.
+       (vec_vrlb): New.
+       (vec_vrlh): New.
+       (vec_vrlw): New.
+       (vec_vrfin): New.
+       (vec_vrsqrtefp): New.
+       (vec_vsel): New.
+       (vec_vslb): New.
+       (vec_vslh): New.
+       (vec_vslw): New.
+       (vec_vsldoi): New.
+       (vec_vsl): New.
+       (vec_vslo): New.
+       (vec_vspltb): New.
+       (vec_vsplth): New.
+       (vec_vspltw): New.
+       (vec_vspltisb): New.
+       (vec_vspltish): New.
+       (vec_vspltisw): New.
+       (vec_vsrb): New.
+       (vec_vsrh): New.
+       (vec_vsrw): New.
+       (vec_vsrab): New.
+       (vec_vsrah): New.
+       (vec_vsraw): New.
+       (vec_vsr): New.
+       (vec_vsro): New.
+       (vec_stvx): New.
+       (vec_stvebx): New.
+       (vec_stvehx): New.
+       (vec_stvewx): New.
+       (vec_stvxl): New.
+       (vec_vsububm): New.
+       (vec_vsubuhm): New.
+       (vec_vsubuwm): New.
+       (vec_vsubfp): New.
+       (vec_vsubcuw): New.
+       (vec_vsububs): New.
+       (vec_vsubsbs): New.
+       (vec_vsubuhs): New.
+       (vec_vsubshs): New.
+       (vec_vsubuws): New.
+       (vec_vsubsws): New.
+       (vec_vsum4ubs): New.
+       (vec_vsum4sbs): New.
+       (vec_vsum4shs): New.
+       (vec_vsum2sws): New.
+       (vec_vsumsws): New.
+       (vec_vrfiz): New.
+       (vec_vupkhsb): New.
+       (vec_vupkhpx): New.
+       (vec_vupkhsh): New.
+       (vec_vupklsb): New.
+       (vec_vupklpx): New.
+       (vec_vupklsh): New.
+       (vec_vxor): New.
+
+2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
+
+       PR c/5430
+       * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
+       added literals from substracted literals.
+       (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
+       (fold) [associate]: Preserve MINUS_EXPR if needed.
+
+2002-04-23  Zack Weinberg  <zack@codesourcery.com>
+
+       * doc/install.texi: Clarify which versions of alpha*-dec-osf*
+       are obsoleted.
+
+2002-04-23  Tom Tromey  <tromey@redhat.com>
+
+       * gcc.c: Added --resource.  For PR java/6314.
+
+2002-04-23  David O'Brien  <obrien@FreeBSD.org>
+
+       * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
+       * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
+       these libraries.
+
+2002-04-23  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
+
+Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
+       workaround.
+       (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
+       (ix86_expand_clrstr): Fix typo.
+       * loop.c (gen_load_of_final_value): New.
+       (loop_givs_rescan, strength_reduce, check_dbra_loop):
+       Use it.
+
+2002-04-23  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.c (builtin_memset_gen_str): New function.
+       (expand_builtin_memset): Optimize the case of constant length, but
+       unknown value.
+
+2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/altivec.h (vec_step): Remove extraneous
+       parentheses.
+       (vec_ctu): Cast return.
+
+2002-04-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/6413
+       * function.h: (struct function): Add profile_label_no field.
+       (current_function_profile_label_no): Define.
+       * function.c: (profile_label_no): New static var.
+       (expand_function_start): Increment it, and copy to
+       current_function_profile_label_no.
+       * output.h (profile_label_no): Delete.
+       * final.c (profile_label_no): Delete.
+       (profile_function): Use current_function_profile_label_no.
+       (final_end_function): Don't increment profile_label_no here.
+       * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
+       profile_label_no with current_function_profile_label_no.
+       * config/pa/pa.c (current_function_number): Delete.
+       (pa_output_function_prologue): Don't output profile label here.
+       (hppa_profile_hook): Use label_no param rather than
+       current_function_number.
+       (FUNC_BEGIN_PROLOG_LABEL): Move to ..
+       * config/pa/pa.h: .. here.
+       (FUNCTION_PROFILER): Output profile label here.
+
+2002-04-22  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
+       patch of 2002-04-09 due to binutils issues.
+       (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
+
+2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
+       constraint to 'o' for m=r and r=m alternatives.
+       ("*movv8hi_internal1"): Same.
+       ("*movv16qi_internal1"): Same.
+       ("*movv4sf_internal1"): Same.
+
+2002-04-22  Janis Johnson  <janis187@us.ibm.com>
+
+       * rtl.h (RTX_FLAG): New macro.
+       * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
+       * final.c (alter_subreg): Use macro to access rtx flag.
+       * integrate.c (copy_rtx_and_substitute): Use new access macro.
+       * print-rtl.c (print_rtx): Use new access macro.
+
+       * cse.c (insert): Check rtx code before accessing flag.
+
+       * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
+       ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
+       (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
+       convert_const_symbol_ref, make_canonical, make_alternative_compare,
+       evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
+       simplify_test_exp, optimize_attrs, simplify_by_exploding,
+       find_and_mark_used_attributes, unmark_used_attributes,
+       add_values_to_cover, simplify_with_current_value,
+       simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
+       copy_rtx_unchanging, main): Use new access macros.
+
+2002-04-22  Tom Rix  <trix@redhat.com>
+
+       * expmed.c (init_expmed): Generate shifted constant once.
+
+2002-04-22  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-lex.c (lex_charconst): Call convert to get constant in
+       proper type; don't just smash the type field.
+       Fixes PR c/6300.
+
+       * config.gcc: Add list of obsolete configurations.  Disallow
+       building these without --enable-obsolete.
+       * doc/install.texi: Document --enable-obsolete and obsoletion
+       policy.  Mention obsoletion of individual targets in
+       appropriate places.
+
+2002-04-22  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
+
+2002-04-22  Mark Mitchell  <mark@codesourcery.com>
+
+       PR f/6138.
+       * function.c (fixup_memory_subreg): Add promoted_mode parameter.
+       (walk_fixup_memory_subreg): Likewise.
+       (fixup_var_refs_insn): Adjust accordingly.
+       (fixup_var_refs_1): Likewise.
+
+2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
+       LIBPATH_ARCH64_SPEC): Define.
+       (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
+       (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
+       (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
+       (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
+
+2002-04-22     Joel Sherrill <joel@OARcorp.com>
+
+       * gthr-rtems.h: Correct prototypes to remove warnings.
+
+2002-04-22  Richard Henderson  <rth@redhat.com>
+
+       PR c/6344
+       * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
+
+       * gcse.c (free_insn_expr_list_list): New.
+       (clear_modify_mem_tables): Use it.  Fix bit set usage.
+       (canon_list_insert): Use EXPR_LISTs for expressions.
+       (record_last_mem_set_info): Factor BLOCK_NUM (insn).
+
+2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
+       file change and include code to _cpp_pop_buffer.
+       * cpphash.h (struct pending_option): Predeclare.
+       (struct cpp_reader): New member next_include_file.
+       (_cpp_pop_file_buffer): Update.
+       (_cpp_push_next_buffer): Update, rename.
+       * cppinit.c (cpp_destroy): Free include chain and pending here.
+       (cpp_finish_options): Simplify.
+       (_cpp_push_next_buffer): Rename and clean up.
+       * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
+       Clarify.
+       * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
+
+2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/altivec.h (vec_xor): Add variant for both args
+       being vector signed int.
+       (vec_andc): Same.
+       (vec_xor): Add variant for both args being vector signed char.
+       Remove redundant variant.
+       (vec_andc): Same.
+
+2002-04-21  David S. Miller  <davem@redhat.com>
+
+       * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
+       compare mode in output RTL.
+
+2002-04-22  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): Correct
+       style and formatting of previous patch.
+
+2002-04-22  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): Always clear
+       flag_pic for ABI_AIX.
+
+2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
+       * cppfiles.c (read_include_file): Similarly.
+       * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
+       uxstrdup ustrchr, ufputs): Similarly.
+       * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
+       * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
+       cpp_ideq, parse_identifier, parse_number): Similarly.
+       * cpplib.c (struct directive, dequote_string, D, run_directive,
+       cpp_push_buffer): Similarly.
+       * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
+       _cpp_create_definition, check_trad_stringification,
+       cpp_macro_definition): Similarly.
+
+2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppmacro.c (funlike_invocation_p): Don't step back
+       over CPP_EOF.
+
+2002-04-21  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (output_profile_hook): Do not increment
+       labelno.
+
+2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * doc/invoke.texi: Remove Chill references.
+       * doc/gcc.texi: Update last modified date.
+
+2002-04-20  Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
+       push and pop.  Replace add.l with add.w.
+
+2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
+
+       * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
+       multiply instructions for H8/300H case.
+
+2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
+
+       * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
+       Bum three instructions from each routine.
+
+2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * Makefile.in: Update.
+       * decl.c (push_c_function_context, pop_c_function_context,
+       mark_c_function_context): Rename for consistency.
+       * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
+       * c-tree.h (push_c_function_context, pop_c_function_context,
+       mark_c_function_context): Rename for consistency.
+       * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
+       * function.c (init_lang_status, save_lang_status,
+       restore_lang_status, mark_lang_status, free_lang_status):
+       Move to langhooks.h.
+       (push_function_context_to, pop_function_context_from,
+       free_after_parsing, prepare_function_start, ggc_mark_struct_function):
+       Update.
+       * function.h (init_lang_status, save_lang_status,
+       restore_lang_status, mark_lang_status, free_lang_status):
+       Move to langhooks.h.
+       * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
+       LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
+       LANG_HOOKS_FUNCTION_INITIALIZER): New.
+       (LANG_HOOKS_INITIALIZER): Update.
+       (lhd_do_nothing_f): New.
+       * langhooks.h (struct lang_hooks_for_functions): New.
+       (struct lang_hooks): New hooks.
+       * langhooks.c (lhd_do_nothing_f): New.
+objc:
+       * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
+
+2002-04-19  David S. Miller  <davem@redhat.com>
+
+       * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
+       * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
+
+2002-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR optimization/3756
+       * config/i386/i386.c (ix86_expand_int_movcc): Optimize
+       x = ((int) y < 0) ? cst1 : cst2.
+
+2002-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/6358
+       * function.c: Reapply patch for c/6358.
+       (expand_function_end): Copy decl_rtl's mode, not
+       current_function_return_rtx mode.
+
+2002-04-19  Joel Sherrill  <joel@OARcorp.com>
+
+       * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
+       targets.
+
+2002-04-19  Tom Tromey  <tromey@redhat.com>
+
+       * doc/install.texi (Specific): Update status of Solaris 2.8.
+       For PR libgcj/6158.
+
+2002-04-19  Andreas Schwab  <schwab@suse.de>
+
+       * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
+       (PUT_REAL): Restore old definition.
+
+2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
+           Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
+       binutils 2.11.2 and higher generate smaller binaries than Sun's
+       native tools.
+
+2002-04-19  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/6352
+       * toplev.c (rest_of_compilation): Do not defer functions for which
+       TREE_SYMBOL_REFERENCED has already been set.
+
+Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (movsi_1, movhi_1): Force reload to use more flexible
+       alternative.
+
+2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * builtins.c: Include langhooks.h.
+       (lang_type_promotes_to): Remove.
+       (expand_builtin_va_arg): Use new hook.
+       * c-common.c (c_common_nodes_and_builtins): Don't set hook.
+       (simple_type_promotes_to): Move to c-typeck.c.
+       * c-common.h (simple_type_promotes_to): Remove.
+       * c-decl.c (duplicate_decls, grokdeclarator): Update.
+       * c-format.c: Include langhooks.h.
+       (check_format_types): Update.
+       * c-tree.h (c_type_promotes_to): New.
+       * c-typeck.c (c_type_promotes_to): Move from c-common.c.
+       (type_lists_compatible_p): Update.
+       * langhooks-def.h (lhd_type_promotes_to): New.
+       (LANG_HOOKS_TYPE_PROMOTES_TO): New.
+       (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
+       * langhooks.c (lhd_type_promotes_to): New.
+       * langhooks.h (struct lang_hooks_for_types): New hook.
+       * tree.h (lang_type_promotes_to): Remove.
+objc:
+       * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
+
+2002-04-18  Richard Henderson  <rth@redhat.com>
+
+       * function.c: Revert patch for c/6358.
+
+2002-04-18  Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
+       blocks.  Handle multiple references to the TRAP block.  Handle
+       non-adjacent THEN and OTHER blocks.
+
+2002-04-18  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
+       crash with no type for by-mode libcalls.
+
+       * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
+
+2002-04-18  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
+       __xtensa_nonlocal_goto): Use a syscall instructions to flush
+       the register windows.
+
+2002-04-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
+       appropriate.  Document need for extended precision even when
+       MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
+       based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
+       REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
+       instead of relying on later syntax error when REAL_WIDTH > 5.
+       * real.c: Define NE based only on whether or not we have a
+       full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
+       Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
+       define GET_REAL and PUT_REAL as simple memcpy operations; no
+       need to byteswap or round.
+       Use #error instead of #ifdef-ing out the entire file, for
+       prompt error detection.
+
+       * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
+
+2002-04-18  David S. Miller  <davem@redhat.com>
+
+       * config/sparc/sparc.h (BRANCH_COST): Define.
+
+       * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
+       does it.
+
+2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * flow.c (update_life_info): Ignore return value of cleanup_cfg.
+       Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
+       propagate_block calls after relaxation loop using new variable
+       stabilized_prop_flags.
+
+2002-04-18  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
+       (ia64_va_arg): Expect variable sized types by reference.
+       * config/ia64/ia64-protos.h: Update.
+       * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
+       ia64_function_arg_pass_by_reference.
+
+2002-04-18  Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c: Include except.h.
+       (block_has_only_trap): Break out from find_cond_trap.
+       (find_cond_trap): Use it.  Always delete the trap block.
+       (merge_if_block): Allow then block null.  Be less simplistic about
+       what insns can end a block.
+       * Makefile.in (ifcvt.o): Depend on except.h.
+
+       * config/ia64/ia64.md (trap, conditional_trap): New.
+
+2002-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/6358
+       * function.c (assign_parms): Assign hard current_function_return_rtx
+       register here...
+       (expand_function_end): ...not here.
+
+2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
+       * c-tree.h (c_incomplete_type_error): New.
+       * c-typeck.c (require_complete_type, build_component_ref): Update.
+       (incomplete_type_error): Rename.
+       * langhooks-def.h (lhd_incomplete_type_error): New.
+       (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
+       (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
+       * langhooks.c (lhd_incomplete_type_error): New.
+       * langhooks.h (struct lang_hooks_for_types): New hook.
+       * tree.c (size_in_bytes): Use new hook.
+       * tree.h (incomplete_type_error): Remove.
+objc:
+       * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
+
+2002-04-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
+       TARGET_FLOAT_FORMAT blocks.
+
+2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * doc/install.texi (Downloading the source): Do not mention Chill
+       any longer, but mention Ada.
+       (Configuration): Do not mention Chill any longer.
+
+2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h (TARGET_VERSION): Remove local version number.
+
+Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
+       in last patch.
+
+2002-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
+       instead of unsigned_type.
+
+Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
+       * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
+       later.
+
+2002-04-18  Bernd Schmidt  <bernds@redhat.com>
+
+       * attribs.c (vector_type_node_list): New static variable.
+       (handle_vector_size_attribute): Use it to avoid generating a
+       new type node each time we are called.
+
+       * combine.c (subst): Avoid trying to make a vector mode subreg of
+       an integer constant.
+       (gen_lowpart_for_combine): Likewise.
+
+2002-04-18  Roger Sayle  <roger@eyesopen.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
+       for integer constant c (if x has unsigned type or sign bit is not
+       set in c).  This folds the zero/sign extension into the bit-wise and
+       operation.
+
+2002-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/6205
+       * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
+       otherwise xorps.
+
+2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
+
+       * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
+
+2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * gcc.c (read_specs): Detect and fail if an attempt is made to
+       rename a spec string to an already existing string.
+
+2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (legitimize_pic_address): Do not generate
+       illegal address constant without CONST.
+
+2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
+       * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
+
+2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR optimization/6305
+       * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
+       to make sure previous reloads are taken into account.  Generate
+       better code if one operand is an in-range immediate constant.
+
+2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * doc/install.texi (Building): libgcj requires GNU make.
+
+2002-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/6315
+       * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
+       even if hard quad and register is not floating.
+       (movtf reg<-mem split): Disallow splitting if hard quad and
+       register is floating.
+       (movtf mem<-reg split): Likewise.
+       * config/sparc/sparc.c (fp_register_operand): New predicate.
+       * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
+
 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
 
        * Makefile.in (PROTO_OBJS): Add cppdefault.o.
 
 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/rs6000/altivec.h (vec_ld): Add array variants.
-        (vec_lde): Same.
-        (vec_ldl): Same.
+       * config/rs6000/altivec.h (vec_ld): Add array variants.
+       (vec_lde): Same.
+       (vec_ldl): Same.
 
 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
-            Aldy Hernandez <aldyh@redhat.com>
+           Aldy Hernandez <aldyh@redhat.com>
 
-        * config/rs6000/altivec.h: Define __ALTIVEC__.
-        (bool): New.
-        (__pixel): New.
-        (pixel): New.
-        (vec_cfux): New.
-        (vec_vmaddfp): New.
-        (vec_vsldoi): New.
-        Add parentheses to all macro arguments.
+       * config/rs6000/altivec.h: Define __ALTIVEC__.
+       (bool): New.
+       (__pixel): New.
+       (pixel): New.
+       (vec_cfux): New.
+       (vec_vmaddfp): New.
+       (vec_vsldoi): New.
+       Add parentheses to all macro arguments.
 
 2002-04-16  Richard Henderson  <rth@redhat.com>
 
 
        PR target/6305
        * config/s390/s390.md (mulsidi3): Set both subregs of the
-       multiword register. 
+       multiword register.
 
 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
 
        the only supported ways to configure gcc.
 
 2002-04-15  Roland McGrath  <roland@frob.com>
+
        * config.gcc (alpha*-*-gnu*): New target configuration.
        * config/alpha/gnu.h: New file for it.
        * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
        * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
        * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
        on the STMT_EXPR created for the inline function.
-       
+
 2002-04-15  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
@@ -374,7 +1291,7 @@ Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
        * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
        * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
        overrides the definition in config/svr4.h.
-       
+
 2002-04-12     Eric Norum <eric.norum@usask.ca>
 
        * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
@@ -422,7 +1339,7 @@ Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
 
        * flow.c (mark_used_reg): Manage reg_cond_dead properly for
        modes spanning multiple hard regs.
-    
+
        * recog.c (peephole2_optimize): Rebuild jump labels as needed.
 
 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>