OSDN Git Service

* c-common.c (flag_ms_extensions): Move from c++ front end.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b3ec121..61b694d 100644 (file)
@@ -1,3 +1,436 @@
+2002-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c (flag_ms_extensions): Move from c++ front end.
+       * c-common.h (flag_ms_extensions): Declare.
+       * c-decl.c (c_decode_option): Add -fms-extensions.
+       (grokfield): Don't accept anonymous structures in ISO C mode;
+       accept only unnamed anonymous structures in GNU C mode; accept
+       Plan 9 extensions in MS mode.
+       * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
+       SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
+       (extension): Clear flag_iso.
+       * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
+
+2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/7042
+       * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
+       early if current_function_epilogue_delay_list is non-empty.
+       * config/cris/cris.md ("return"): Add sanity check asserting that
+       current_function_epilogue_delay_list is empty.
+
+2002-06-16  Jeff Law <law@redhat.com>
+
+       * toplev.c (rest_of_compilation): Perform a simpler, less costly
+       cleanup of the CFG when not optimizing.
+
+2002-06-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * gcc.c (main): Correct startfile_prefix_spec check.
+
+2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
+
+       * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
+       include both darwin.o and rs6000-c.o.
+
+2002-06-15  Roger Sayle  <roger@eyesopen.com>
+
+       * expr.c (compare_from_rtx): Call simplify_relational_operation
+       on all comparisons, not just those between integer constants,
+       with the correct (possibly unsigned) comparison code.
+       (do_compare_rtx_and_jump): Likewise.
+
+2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * Makefile.in (tm_defines): New configuration variable.
+       (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
+       Pass tm_defines in TM_DEFINES.
+       (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
+       * config.gcc (tm_defines): New configuration variable.
+       (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
+       pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
+       * configure.in: Substitute tm_defines.
+       * configure: Rebuilt.
+       * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
+       * doc/install.texi: Update.
+       * pa/pa-700.h: Delete file.
+       * pa/pa-7100.h: Delete file.
+
+2002-06-15  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (comparison_to_compcode): New function to convert
+       an comparison TREE CODE into a bit-based representation.
+       (compcode_to_comparison): New function to convert from this bit
+       based representation back to a comparison TREE CODE.
+       (fold_truthop): Simplify (x<y) && (x==y) and related composite
+       comparisons.
+
+2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
+
+        * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
+
+        * stor-layout.c (compute_record_mode): Remove check for
+        FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
+        MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
+        MEMBER_TYPE_FORCES_BLK.
+
+        * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
+
+        * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
+
+2002-06-14  Jeff Sturm  <jsturm@one-point.com>
+
+       * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
+
+2002-06-14  Steve Ellcey  <sje@cup.hp.com>
+
+       * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
+       USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
+       * configure, config.in: Regenerate.
+
+2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
+
+       * loop.c (check_final_value): Use v->always_executed
+       instead of v->always_computable.
+       * unroll.c (final_giv_value): Don't calculate the final
+       value as a function of the biv if the giv is not computed
+       for every loop iteration.
+
+2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
+       * loop.c (for_each_insn_in_loop): Fix formatting and comments.
+
+2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
+
+       PR c/6677
+       * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
+       the truncation down when the target type is signed.
+       [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
+       * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
+       the conversion if the target type is a smaller type.
+
+2002-06-14  Richard Henderson  <rth@redhat.com>
+
+       * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
+       earlier.  Re-factor comparisons vs extrema.
+
+2002-06-14  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
+
+2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
+       * sched-deps.c (add_dependence): Likewise.
+       (group_leader): Likewise.
+       * sched-rgn.c (init_ready_list): Likewise.
+       * doc/rtl.texi: Adjust accordingly.
+
+2002-06-13  Jeffrey Law  <law@redhat.com>
+
+       * gcse.c (delete_null_pointer_checks_1): Inform caller if any
+       null pointer checks were eliminated.  Update prototype.
+       (delete_null_pointer_checks): Similarly.
+       * rtl.h (delete_null_pointer_checks): Update prototype.
+       * toplev.c (rest_of_compilation): Only run cleanup_cfg if
+       delete_null_pointer_checks deletes one or more null
+       pointer checks.  Do not run cleanup_cfg before gcse, the
+       CFG is accurate and optimized at that point..
+
+       * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
+       of hard registers.
+
+2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * Makefile.in (libgcc.mk): Depend on specs.
+
+Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * sh.md (mulsi3): Update way how to find insns in a sequence.
+
+Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
+
+       * sh.h: Define HARD_REGNO_RENAME_OK
+       * sh.c: sh_hard_regno_rename_ok: New. If current function has
+       interrupt_handler attribute, only registers saved on stack are OK.
+       * sh-protos.h: Declare sh_hard_regno_rename_ok.
+
+2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (jump): Emit jump insn.
+       (call_pcrel): Get pattern of the result of gen_call_site.
+       (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
+
+2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_buffer): Remove saved_line_base.
+       * cpptrad.c: Update comments.
+       (skip_whitespace, copy_comment): Take a new parameter.
+       (skip_escaped_newlines): Don't duplicate escaped newline test.
+       (copy_comment): Different location for CUR, decide here how
+       to copy / replace the comment.
+       (skip_whitespace): Copy whitespace.
+       (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
+       (scan_out_logical_line): Let copy comment handle keeping or
+       replacing comments.
+       (scan_parameters, _cpp_create_trad_definition): Update.
+
+2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
+
+       * reload.c (get_secondary_mem,find_reloads_address,
+       find_reloads_address_1): Pass reference to MEM to find_reloads_address
+       so that LEGITIMIZE_RELOAD_ADDRESS will be called.
+       
+2002-06-13  Jessica Han  <jessica@cup.hp.com>
+
+       * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
+       (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
+       * doc/tm.texi: Document them.
+       * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
+       (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
+       (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
+       (ASM_OUTPUT_FDESC): Likewise.
+
+2002-06-13  Eric Christopher  <echristo@redhat.com>
+
+       * diagnostic.c (output_format): Fix thinko.
+
+Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
+       (DWARF2_UNWIND_INFO): Define to 0.
+
+       * config/sh/sh.c (calc_live_regs): Don't use initial_value
+       optimization for PR_MEDIA_REG.
+
+2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (_cpp_lex_identifier_trad): Remove.
+       * cpplib.c (end_directive): Don't skip, always remove overlay
+       apart from #define.
+       (prepare_directive_trad): Handle NULL pfile->directive.
+       (_cpp_handle_directive): Always call prepare_directive_trad
+       if traditional.
+       * cppmain.c (check_multiline_token): Rename account_for_newlines,
+       generalize inputs.
+       (scan_translation_unit_trad): Use it.
+       * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
+       output, get escaped newline in comment close correct.
+       (check_output_buffer, skip_whitespace): Update.
+       (_cpp_lex_identifier_trad): Remove.
+       (scan_out_logical_line): Handle -C and comments in directives
+       properly.
+
+Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
+       * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
+       * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
+       (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
+       (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
+       (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
+       (SELECT_SH5_COMPACT_NOFPU): Likewise.
+       (TARGET_SWITCHES): Use them.
+       (TARGET_CPU_DEFAULT): Define if not already defined.
+       (TARGET_DEFAULT): Use it.
+       (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
+       * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
+       * config/sh/t-monolib: New file.
+
+2002-06-13  Roger Sayle  <roger@eyesopen.com>
+
+       * toplev.c (rest_of_compilation): Simplify (and correct) the
+       logic of the first delete-null-pointer-checks pass.
+
+Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_expand_movstr):  Fix pasto.
+
+Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * reload.c (find_valid_class):  Fix thinko in my previous patch.
+
+2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
+       * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
+       (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
+       (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
+
+2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * tree-inline.c (expand_call_inline): Don' mess with _DECL
+       fields.
+
+2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
+
+       * diagnostic.c (output_format): Recognize "%H" as a format
+       specifier for a location_t.
+       (text_specifies_location): New function.
+       (diagnostic_set_info): Use it.
+
+2002-06-13  Jeffrey Law  <law@redhat.com>
+
+       * emit-rtl.c (static_regno_reg_rtx): Define.
+       (init_emit_once): Initialize static_regno_reg_rtx.
+       (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
+       of building new hard reg objects once per function.
+       (gen_rtx_REG): Try to share hard regs.
+       * regclass.c (init_fake_stack_mems): New function broken out from
+       init_regs.
+       * rtl.h (init_fake_stack_mems): Declare.
+       * toplev.c (lang_independent_init): Call init_regs before
+       init_emit_once.  Call init_fake_stack_mems after init_emit_once.
+
+       * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
+
+       * alias.c (argument_registers): Remove.
+       (init_alias_once): Initialize static_reg_base_value here.  Remove
+       initialization of argument_registers.
+       (init_alias_once_per_function): Remove.
+       (init_alias_analysis): Copy all the entries from static_reg_base_value
+       into new_reg_base_value all at once.
+       * rtl.h (init_alias_once_per_function): Remove declaration.
+       * function.c (prepare_function_start): Do not call
+       init_alias_once_per_function.
+
+       * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
+       starting a sequence and emitting an INSN.
+
+2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
+
+2002-06-13  David S. Miller  <davem@redhat.com>
+
+       * expmed.c (init_expmed): Remove duplicate init of 'reg'.
+
+2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplib.c (end_directive): Handle line skipping.  Only remove
+       the rest of the line if the directive was valid.
+       * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
+       expanding a traditional macro.
+       * cpptrad.c (recursive_macro): New.
+       (read_logical_line_trad): Handle skipping.
+       (scan_out_logical_line): Continue after a successful directive.
+       Don't expand macros whilst skipping, or if recursing.
+       (_cpp_create_trad_definition): scan_out_logical_line now sets
+       the output current position.
+
+2002-06-12  Eric Christopher  <echristo@redhat.com>
+
+       From Chris Demetriou  <cgd@broadcom.com>
+       * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
+       comment.
+       (ISA_HAS_MADD_MSUB): Ditto.
+       (ISA_HAS_NMADD_NMSUB): Ditto.
+
+2002-06-12  Eric Christopher  <echristo@redhat.com>
+
+       * config.gcc: Consolidate little endian handling and
+       little/big endian targets.
+       * config/mips/elfl.h: Remove file.
+       * config/mips/elfl64.h: Ditto.
+       * config/mips/ecoffl.h: Ditto.
+       * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
+
+2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
+
+       * gengtype.h (xvasprintf): New prototype.
+       (xasprintf): New prototype.
+       (struct outf): New.
+       (get_output_file): Return an outf_p.
+       (header_file): Is now an outf_p.
+       (base_files): Now are outf_p.
+       (oprintf): New.
+       * gengtype.c: Replace all output FILE * with outf_p; use oprintf
+       rather than stdio operations.  Use xasprintf in a few places,
+       when appropriate.
+       (xvasprintf): New.
+       (xasprintf): New.
+       (struct filemap): Delete.
+       (files): Delete.
+       (output_files): New.
+       (oprintf): New.
+       (create_file): Create an outf_p.  Add parameter to indicate output
+       file name, change all callers.
+       (open_base_files): Create gtype-desc.c here.
+       (get_output_file_with_visibility): Rewrite.
+       (get_output_file_name): Just look at 'name' field in struct outf.
+       (close_output_files): Rewrite.
+
+2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
+       (MASK_G_FLOAT): Define.
+       (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
+       (TARGET_SWITCHES): Likewise.
+       (TARGET_DEFAULT): Likewise.
+
+2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
+
+       * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
+       * config/mips/mips.c (mips_output_filename): Don't print a
+       ".file" directive if we are using DWARF-2.
+       (mips_output_function_prologue): Do not emit source file
+       name for TARGET_GAS.
+
+Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
+       decide whether emit the short opcode.
+       * i386.h (x86_shift1): Declare.
+       (TARGET_SHIFT1): New macro.
+       * i386.c (x86_shift1): New global variable.
+
+       * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
+       unconditionally; make loop to rebuild CFG; kill unnecesary
+       find_basic_block calls; kill compute_bb_for_insn call.
+       * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
+       * haifa-sched.c (sched_init): Likewise.
+       * ssa-ccp.c (ssa_const_prop): Likewise.
+       * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
+
+2002-06-11  David S. Miller  <davem@redhat.com>
+
+       * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
+       active_insn_p.
+
+2002-06-11  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c (builtin_define_type_max): New.
+       (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
+       __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
+
+       From Joseph S. Myers:
+       * glimits.h: Rewrite to expect the double underscore definitions
+       from the compiler.
+
+       * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
+       config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
+       config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
+       config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
+       config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
+       config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
+       config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
+       __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
+
+2002-06-11  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
+       (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
+       (code_for_builtns): Update.
+       (alpha_init_builtins): Add __builtin_thread_pointer and
+       __builtin_set_thread_pointer.
+       (alpha_expand_builtin): Handle void builtins.
+       * doc/extend.texi (Alpha Built-in Functions): Update.
+
+2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/6997
+       * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
+
 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
 
        * config.gcc: Make the name of the extra-modes file adjustable
@@ -130,8 +563,6 @@ Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
 
        * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
 
-2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
-
        * config/s390/s390.c (emit_prologue): gen_store_multiple
        returns an insn now, not a pattern.