OSDN Git Service

PR c/5972
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7127531..1e3bb43 100644 (file)
@@ -1,4 +1,711 @@
-2002-03-12  Jakub Jelinek  <jakub@redhat.com>
+2002-03-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5972
+       * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
+       movsfcc_1, movdfcc_1): Add %O2.
+       * config/i386/i386.c (print_operand): Handle %ON.
+       Print . before float condition codes in Sun as cmov syntax.
+       * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
+       * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
+       no longer true.
+
+2002-03-20  Philip Blundell  <pb@nexus.co.uk>
+
+       * config/arm/arm.c (arm_output_epilogue): Don't generate separate
+       return instruction if PC was popped.
+
+2002-03-20  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.md: Remove unused type attributes.
+       (adddi_carry, subddi_carry): Change type attribute to "multi".
+
+2002-03-19  Dale Johannesen  <dalej@apple.com>
+
+       PR optimization/5999, middle-end/5731
+       * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
+       multiplications by reciprocals.
+
+2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * Makefile.in: Update.
+       * c-common.c: Include langhooks.h.
+       (inline_forbidden_p): Use new hook.
+       * diagnostic.c: Include langhooks.h.
+       (format_with_decl, announce_function,
+       default_print_error_function): Use new hook.
+       * dwarf2out.c (dwarf2_name): Use new hook.
+       * function.c: Include langhooks.h.
+       (init_function_start): Use new hook.
+       * langhooks-def.h (lhd_decl_printable_name): New.
+       (LANGHOOKS_DECL_PRINTABLE_NAME): New.
+       (LANGHOOKS_INITIALIZER): Update.
+       * langhooks.c (lhd_decl_printable_name): New.
+       * langhooks.h (struct lang_hooks): New hook.
+       * toplev.c (decl_name, decl_printable_name): Remove.
+       (open_dump_file): Use new hook.
+       (process_options): Remove old hook.
+       * tree.h (decl_printable_name): Remove.
+objc:
+       * objc-act.c (objc_init): Remove old hook.
+       (objc_printable_name): Export.
+       * objc-act.h (objc_printable_name): New.
+       * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
+
+2002-03-19  Jim Blandy  <jimb@redhat.com>
+
+       * c-lex.c (cb_file_change): Pass the #inclusion's line number to
+       the start_source_file debug hook, not the current line number.
+
+2002-03-19  Richard Henderson  <rth@redhat.com>
+
+       * flow.c (EH_USES): Provide default.
+       (calculate_global_regs_live): Use it for EH edges and noreturn calls.
+       * doc/tm.texi (EH_USES): New.
+
+       * config/ia64/ia64.c (ia64_eh_uses): New.
+       * config/ia64/ia64-protos.h: Update.
+       * config/ia64/ia64.h (EH_USES): New.
+
+2002-03-19  Richard Henderson  <rth@redhat.com>
+
+       * varasm.c (output_constant_def): Fix stupid typo.
+
+2002-03-19  Richard Henderson  <rth@redhat.com>
+
+       PR 5879
+       * except.c (current_function_has_exception_handlers): New.
+       * except.h: Declare it.
+       * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
+       Combine tests that disable all sibcalls for the function.
+
+2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
+
+       * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
+       for INTEGER_CST.
+
+2002-03-19  Richard Henderson  <rth@redhat.com>
+
+       PR 5977, 5991
+       * config/ia64/ia64.c: Revert 2002-03-01 patch.
+       * config/ia64/ia64.h (INIT_EXPANDERS): New.
+
+2002-03-19  Jim Blandy  <jimb@redhat.com>
+
+       * cppmacro.c (cpp_macro_definition): Emit a space after the macro
+       name, even if the replacement list contains no tokens, as required
+       by Dwarf.
+
+2002-03-19  Jason Merrill  <jason@redhat.com>
+
+       * varasm.c (globalize_decl): Get the name from the RTL, not
+       DECL_ASSEMBLER_NAME.
+
+       * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
+
+2002-03-19  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
+       subdi_carry): Define.
+
+2002-03-19  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): Only warn
+       about -fpic/-fPIC if extra_warnings set.
+
+2002-03-19  David Edelsohn  <edelsohn@gnu.org>
+
+       * expr.c (expand_expr): Sign-extend CONST_INT generated from
+       TREE_STRING_POINTER.
+       * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
+
+Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
+       in favor of SP if FRAME_POINTER_REQUIRED is false.
+
+2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
+
+       * emit-rtl.c (gen_int_mode): New function.
+       * rtl.h: Prototype for it.
+       * combine.c (make_extraction, simplify_comparison), expmed.c
+       (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
+       (convert_modes, store_field), optabs.c (expand_fix),
+       simplify-rtx.c (neg_const_int, simplify_unary_real),
+
+       * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
+       Use it instead of GEN_INT (trunc_int_for_mode (...)).
+
+2002-03-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/5656
+       * langhooks.h (struct lang_hooks_for_tree_inlining): Add
+       convert_parm_for_inlining.
+       * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
+       Define.
+       * langhooks-def.h: Likewise.
+       * objc/objc-lang.c: Likewise.
+       * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
+       function.
+       * tree-inline.c (initialize_inlined_parameters):
+       Call convert_parm_for_inlining lang hook if needed.
+       * c-typeck.c (c_convert_parm_for_inlining): New function.
+       * c-tree.h (c_convert_parm_for_inlining): Add prototype.
+
+2002-03-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * calls.c (precompute_arguments): Do not assume that temporaries 
+       can be destroyed after expanding the argument.
+       (expand_call): Likewise.
+
+2002-03-15  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.md (movdf_internal2): Add two new move constraints.
+       Fix register preference on last change.
+       * config/mips/mips.c (mips_return_in_memory): New function.
+       * config/mips/mips.h (RETURN_IN_MEMORY): Use.
+       * config/mips/mips-protos.h: Declare.
+       * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
+       * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
+
+2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
+       a register too.
+       (anddi3, iorsi3): Likewise.
+
+       * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
+       use %gprel for symbols that are going to be placed in linkonce
+       sections.
+
+       * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
+       RETURN_ADDRESS_POINTER_REGNUM to $ra.
+       (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
+       not needed.  Disregard leaf_function_p().
+       (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
+       mips16 frame pointer.
+       * config/mips/mips.md (store ra): Only to small SP offsets.
+       2001-08-22  Graham Stott  <grahams@redhat.com>
+       * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
+       return a REG rtx for the return address register.
+
+2002-03-18  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
+       constant-pool addresses as "mode-dependent".
+       (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
+
+2002-03-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/5740
+       * expr.c (emit_group_load): Use extract_bit_field if
+       needed for CONCAT arguments.
+
+2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/4863
+       * arm.md (tablejump): Make this a define_expand.  For PIC add the
+       offset to the base of the table.
+       (thumb_tablejump): Matcher for Thumb tablejump insn.
+       * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
+       as the difference of two labels.
+       * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+       * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
+       tables in the code.
+       * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
+       * arm.c (get_jump_table_size): If the table is not in the text
+       section, return zero.
+
+2002-03-18  Bernd Schmidt  <bernds@redhat.com>
+
+       * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
+       of gen_rtx_SUBREG.
+       (arm_reload_out_hi): Use gen_lowpart instead of
+       gen_rtx_SUBREG to access QImode components.
+       * config/arm/arm.md: Disable zero_extend split for QImode
+       subregs in BIG_ENDIAN mode.
+       (storehi_bigend): Match use of least significant byte.
+       (storeinthi): Remove extraneous SUBREG.
+       Add missing construction of operands[2].
+       (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
+       (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
+       Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
+
+2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
+       any_operand.
+
+2002-03-17  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
+       explicitly.
+
+2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
+       (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
+
+2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
+
+       * predict.c (estimate_bb_frequencies): Delete unused variables.
+
+2002-03-17  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_attribute_table): Move before
+       targetm definition.  Make static.
+
+2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * c-common.h (yyparse, c_common_parse_file): New.
+       * c-lang.c: Include c-common.h.
+       (LANG_HOOKS_PARSE_FILE): Redefine.
+       * c-lex.c: Include c-common.h.
+       (yyparse): Rename c_common_parse_file.  Call yyparse.
+       * c-parse.in (yyparse): Remove macro.
+       * c-tree.h (yyparse_1): Remove.
+       * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
+       (LANG_HOOKS_INITIALIZER): Update.
+       * langhooks.h (struct lang_hoooks): New hook parse_file.
+       * toplev.c (compile_file): Use parse_file hook.
+       * tree.h (yyparse): Remove.
+       * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
+
+2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
+       float_truncate, not fix.
+       ("*truncdfsf2_real"): Ditto.
+       ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
+
+       * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
+
+2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
+       (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
+       where appropriate.  Make the second reference to
+       leaf_function_p a function call, as intended.  Reindented.
+
+       * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
+       * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
+
+       * config/mips/mips.md (addsi3, adddi3): Use scratch register to
+       add register to non-constant into sp.
+
+       * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
+       * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
+       (mips16_gp_pseudo_rtx): Lose.
+       (INIT_EXPANDERS): Deleted.
+       * config/mips/mips.c (mips_init_machine_status): New.
+       (mips_free_machine_status): New.
+       (mips_mark_machine_status): New.
+       (override_options): Set them.
+       (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
+       (struct machine_function): ... new.  Replaced all references.
+       (mips_add_gc_roots): Don't mark them.
+       (embedded_pic_fnaddr_reg): New, extracted from...
+       (embedded_pic_offset): ... here.
+       * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
+       (movsi): Likewise.
+
+2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppinit.c: Revert -MD removal.
+
+2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
+       soft registers by default for 68HC12.
+       (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
+       when compiling with -fomit-frame-pointer.
+       (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
+       (expand_epilogue): Likewise.
+       (m68hc11_gen_rotate): Use exg when rotating by 8.
+
+2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
+       * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
+       (splits): Remove unused add splits.
+       ("*addhi3_68hc12"): Tune constraints.
+       ("addhi_sp"): Try to use X instead of Y in all cases and if the
+       constant fits in 8-bits and D is dead use abx/aby instructions.
+       ("*addhi3"): Remove extern declaration of ix_reg.
+       ("*subsi3"): Optimize and provide new split.
+       ("subhi3"): Cleanup.
+       ("*subhi3_sp"): Avoid saving X if we know it is dead.
+       (arith splits): For 68hc12 save the address register on the stack
+       and do the arithmetic operation with a pop.
+
+2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
+       allocating QImode in address registers.
+       ("*movqi_m68hc11"): Likewise.
+
+Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
+
+       * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
+
+2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppinit.c (print_help): Display -MD and -MMD.
+       Don't display usage string.  Update assertion syntax and
+       typo.
+       (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
+       (cpp_handle_option): Update.
+
+2002-03-15  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
+       MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
+       and define it so that regardless of target CPU size,
+       __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
+       of "int" rather than "long."
+
+2002-03-15  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
+       size as a tree.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
+       ("tstqi" split): Avoid using memory for tstqi on address register.
+       (splits): Remove constraints.
+       ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
+       ("cmpdf", "cmpsf"): Remove since not used.
+       ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
+       (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
+       ("neghi2"): Tighten constraints.
+       ("one_cmplsi2"): Optimize and simplify split.
+       * config/m68hc11/larith.asm (__negsi2): Likewise for library.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
+       and split of AND operation to clear the upper bits.
+       ("*logicalsi3_zextqi"): Likewise.
+       ("*logicallhi3_zexthi_ashift8"): Likewise.
+       ("*logicalsi3_silshr16"): Likewise.
+       ("logicalsi3_silshl16"): Likewise.
+       ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
+       (m68hc11_indirect_p): New function.
+       (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
+       (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
+       TARGET_M6812.
+       (asm_print_register): Likewise.
+       * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
+       (m68hc11_indirect_p): Declare.
+       * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
+       (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
+       (TARGET_SWITCHES): New option -mrelax.
+       * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
+       destination.
+       ("iorsi3", "xorsi3"): Likewise.
+       ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
+       ("*andhi3_mem"): New to handle destination in memory with bclr
+       and a scratch register.
+       ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
+       ("*andhi3_const"): New when operand2 is constant.
+       ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
+       ("*andhi3_gen"): Cleanup of the old "andhi3".
+       ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
+       ("xorqi3"): Update constraints.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
+       for reg_equiv_memory_loc when the operand is a register that does
+       not get a hard register (stack location).
+       (tst_operand): After reload, accept all memory operand.
+       (symbolic_memory_operand): Fix detection of symbolic references.
+       * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
+       accept symbols and any constant.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
+       note on the insn that sets the soft frame register.
+       (must_parenthesize): ix and iy are also reserved names.
+       (print_operand_address): One more place where parenthesis are required
+       to avoid confusion with register names.
+       (m68hc11_gen_movhi): Allow push of stack pointer.
+       (m68hc11_check_z_replacement): Fix handling of parallel with a
+       clobber.
+       (m68hc11_z_replacement): Must update the REG_INC notes to tell what
+       the replacement register is.
+       * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
+       and D8_REGS classes.
+       (MODES_TIEABLE_P): All modes are tieable except QImode.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
+       (___subdi3): Likewise.
+       (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
+       (__map_data_section): Optimize 68hc11 case.
+
+2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
+       than a shift to avoid adding a register with itself.
+       (m68hc11_memory_move_cost): Take into account NO_REGS.
+       (m68hc11_register_move_cost): Update and use memory move cost
+       for soft registers.
+       (m68hc11_address_cost): Make cost of valid offset not 0 so that
+       it gives more opportunities to cse to optimize.
+       * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
+       * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
+
+2002-03-15  Mark Mitchell  <mark@codesourcery.com>
+
+       * c-common.c (statement_code_p): Handle CLEANUP_STMT.
+       * c-common.def (CLEANUP_STMT): New tree node.
+       * c-common.h (CLEANUP_DECL): New macro.
+       (CLEANUP_EXPR): Likewise.
+       * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
+       * expr.c (expand_expr): Tidy.
+       * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
+       * tree-inline.c (initialize_inlined_parameters): Clean up
+       new local variables.
+
+2002-03-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/4128
+       * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
+       before movrXX only, use reg_overlap_mentioned_p.
+       Only special case NE if just one insn can be generated.
+
+2002-03-15  Jason Merrill  <jason@redhat.com>
+
+       * varasm.c (assemble_variable): Call resolve_unique_section before
+       checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
+       of error_mark_node.
+
+2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/5170
+       * arm.md (split pattern for thumb shiftable immediates): Add comment
+       explaining non-obvious test.
+
+2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/5712
+       * arm.md (movaddr, movaddr_insn): Delete.
+
+2002-03-15  Jason Merrill  <jason@redhat.com>
+
+       * toplev.c (wrapup_global_declarations): Clarify variable handling.
+       -fkeep-static-consts doesn't apply to comdats.
+
+2002-03-14  Richard Henderson  <rth@redhat.com>
+
+       * c-decl.c: Include c-pragma.h.
+       (start_decl, start_function): Invoke maybe_apply_pragma_weak.
+       (finish_function): Tidy.
+       * c-pragma.c: Include c-common.h.
+       (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
+       (handle_pragma_weak): Use them.
+       (init_pragma): Register pending_weaks.
+       * c-pragma.h (maybe_apply_pragma_weak): Declare.
+       * print-tree.c (print_node): Print DECL_WEAK.
+       * varasm.c (mark_weak_decls): Remove.
+       (remove_from_pending_weak_list): Remove.
+       (add_weak): Remove.
+       (asm_emit_uninitialised): Call globalize_decl for weak commons.
+       (weak_decls): Make a tree_list.
+       (declare_weak): Cons weak_decls directly.
+       (globalize_decl): Remove weak_decls elements directly.
+       (weak_finish): Simplify weak_decls walk.  Don't weaken unused
+       symbols.  Don't pretend to handle aliases.
+       (init_varasm_once): Update weak_decls registry.
+       * Makefile.in: Update dependencies.
+
+2002-03-14  Richard Henderson  <rth@redhat.com>
+
+       PR target/5312
+       * config/ia64/ia64.c: Include tm_p.h last.
+       (gen_nop_type): Remove duplicate definition.
+       (cycle_end_fill_slots): Set sched_data for second L slot.
+       (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
+       (nop_cycles_until): Fix typos.
+
+2002-03-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR optimization/5891
+       * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
+
+2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
+
+       * config/ia64/unwind-ia64.c: Handle copy_state and label_state
+         descriptors correctly.
+
+2002-03-14  Michael Meissner  <meissner@redhat.com>
+
+       * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
+       100, allowing MAX_UNROLLED_INSNS to be overridden.
+
+       * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
+       --param.
+
+       * unroll.c (params.h): Include.
+       (MAX_UNROLLED_INSNS): Delete, now in params.h.
+
+       * doc/invoke.texi (--param max-unroll-insns): Document.
+
+       * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
+
+2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md: Fix warnings about constraints in peepholes and splits.
+
+2002-03-14  Zack Weinberg  <zack@codesourcery.com>
+
+       * cpphash.h (struct lexer_state): Remove line_extension member.
+       * cpplib.c (dequote_string, do_linemarker): New functions.
+       (linemarker_dir): New data object.
+       (DIRECTIVE_TABLE): No longer need to interpret #line in
+       preprocessed source.  Delete obsolete comment about return
+       values of handlers.
+       (end_directive, directive_diagnostics, _cpp_handle_directive):
+       Don't muck with line_extension.
+       (directive_diagnostics): No need to issue warnings for
+       linemarkers here.
+       (_cpp_handle_directive): Issue warnings for linemarkers here,
+       when appropriate.  Dispatch linemarkers to do_linemarker, not
+       do_line.
+       (do_line): Code to handle linemarkers split out to do_linemarker.
+       Convert escape sequences in filename argument, both places.
+
+       * cppmacro.c (quote_string): Rename cpp_quote_string and
+       export.  All callers changed.
+       * cpplib.h (cpp_quote_string): Prototype.
+       * cppmain.c (print_line): Call cpp_quote_string on to_file
+       before printing it.
+
+       * doc/cpp.texi: Document that escapes are now interpreted in
+       #line and in linemarkers, and that non-printing characters are
+       converted to octal escapes when linemarkers are generated.
+
+Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * emit-rtl.c (try_split): Use delete_insns.
+       * recog.c (split_all_insns): Fix terminating condition.
+
+2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
+           Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
+
+       PR target/5828
+       * arm.c (arm_output_epilogue): Fix floating-point register save
+       adjustment when using a frame pointer.
+
+2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
+       * config/mips/mips.c (compute_frame_size): Retrofit them here.
+       (save_restore_insns, mips_expand_epilogue): And here.
+       (build_mips16_call_stub): And here.
+       (mips_function_value): Use the new macros to decide whether a single
+       or complex float can be returned in floating-point registers.  Return
+       a parallel rtx in the complex case.
+
+Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
+
+       * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
+       call after liveness analysis.
+
+       * recog.c (split_insn): Use delete_insn_and_edges.
+
+       * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
+       instructions to have branch prediction notes.
+       * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
+
+2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
+
+       * configure.in: Don't pass -Wno-long-long to a ADA compiler
+       that doesn't support it.
+       * configure: Regenerate.
+
+2002-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/5626
+       * config/sparc/sparc.md (normal_branch, inverted_branch,
+       normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
+       inverted_fp_branch): Adjust calls to output_cbranch.
+       Set length attribute.
+       (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
+       output_v9branch.  Set length attribute.
+       * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
+       predicates.
+       (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
+       (output_cbranch): Likewise.  Handle far branches.
+       (output_v9branch): Handle far branches.
+       * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
+       Adjust prototypes.
+       * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
+       noov_compare64_op predicates.
+
+2002-03-13  Jason Merrill  <jason@redhat.com>
+
+       * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
+       into the function and constify it.
+       * gthr-dce.h, gthr-solaris.h: Likewise.
+
+2002-03-13  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
+       * config/rs6000/rs6000.c (rs6000_va_arg): Use
+       std_expand_builtin_va_arg if not ABI_V4.
+
+2002-03-13  Jason Merrill  <jason@redhat.com>
+
+       * varasm.c (globalize_decl): New fn.
+       (assemble_start_function): Use it.
+       (asm_emit_uninitialized): Use it.
+       (assemble_alias): Use it.
+       (assemble_variable): Use it.
+
+2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_target_asm_function_prologue): Revert
+       2002-03-12 internal visibility change.
+       (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
+       visibility into SYMBOL_REF_FLAG.
+
+2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
+       VOIDmode operand.  Add compile-time optimization for constant results.
+
+2002-03-12  Jason Merrill  <jason@redhat.com>
+
+       * c-typeck.c (convert_for_assignment): Don't allow conversions
+       between pointers and references.  Only allow lvalues to convert to
+       reference.
+
+2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
+       before prologue, to avoid scheduling problems.
+
+2002-03-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
+       (ELIMINABLE_REGS): Add sfp->sp.
+       (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
+
+2002-03-13  Jakub Jelinek  <jakub@redhat.com>
 
        PR optimization/5892
        * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
 2002-03-12  Tom Rix  <trix@redhat.com>
 
        * collect2.c (resolve_lib_name): Move outside of
-       OBJECT_FORMAT_COFF ifdef. 
+       OBJECT_FORMAT_COFF ifdef.
        (ignore_library): Same.
 
 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
            Daniel Berlin  <dan@dberlin.org>
 
        C++ alias analysis improvement.
-       * alias.c (record_component_aliases): Record aliases for base 
+       * alias.c (record_component_aliases): Record aliases for base
        classes too.
 
 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
@@ -971,7 +1678,7 @@ Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
 
        * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
        * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
-       * config/rs6000/xcoff.h (COLLET_EXPORT_LIST): Delete.
+       * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
 
 2002-03-01  Kazu Hirata  <kazu@hxi.com>
 
@@ -3984,7 +4691,7 @@ Mon Feb    4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
        any geenral register.
 
-2001-02-04  Bernd Schmidt  <bernds@redhat.com>
+2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
 
        * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
        the entry block.