OSDN Git Service

PR c/5972
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c816757..1e3bb43 100644 (file)
@@ -1,3 +1,461 @@
+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
@@ -1220,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>
 
@@ -4233,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.