OSDN Git Service

2001-09-30 H.J. Lu <hjl@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c24acee..4507428 100644 (file)
@@ -1,3 +1,301 @@
+2001-09-30  H.J. Lu <hjl@gnu.org>
+
+       * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
+       * config.in: Rebuild.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
+       ("tsthi_1"): Avoid allocation in register y.
+       ("*movqi_68hc12"): Reorganize and fix constraints.
+       ("zero_extendqisi2"): Prefer d over x and y for operand 1.
+       ("addqi3"): Likewise.
+       ("addhi3"): Fix constraints.
+       ("*logicalhi3_zexthi"): Disparage soft registers.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
+       to tmp reg.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
+       that we use setjmp/longjmp exceptions.
+
+2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
+       POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
+       struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, _cpp_next_chunk): Remove.
+       (_cpp_extend_buff, BUFF_ROOM): Update.
+       (_cpp_append_extend_buff): New.
+       (struct cpp_reader): Remove macro_pool, add a_buff.
+       * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
+       macro_pool.
+       (cpp_destroy): Free a_buff instead of macro_pool.
+       * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
+       new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
+       _cpp_pool_alloc, ): Remove.
+       (parse_number, parse_string): Update use of _cpp_extend_buff.
+       (_cpp_extend_buff): Update.
+       (_cpp_append_extend_buff, cpp_aligned_alloc): New.
+       * cpplib.c (glue_header_name, parse_answer):
+       Update use of _cpp_extend_buff.
+       (cpp_register_pragma, cpp_register_pragma_space): Use
+       _cpp_aligned_alloc.
+       (do_assert, do_unassert): Check for EOL, update.
+       * cppmacro.c (stringify_arg, collect_args): Update to use
+       _cpp_extend_buff and _cpp_append_extend_buff.
+       (save_parameter, parse_params, alloc_expansion_token,
+       _cpp_create_definition): Rework memory management.
+
+2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
+
+       * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
+       update md_exec_prefix.
+       (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
+       to string constant.
+
+2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
+       (SELECT_CC_MODE): Use s390_select_ccmode.
+       * config/s390/s390-protos.h (s390_select_ccmode): Add.
+       * config/s390/s390.c (s390_select_ccmode): New.
+       (s390_match_ccmode): Add CCLmode.
+       (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
+       (output_branch_condition, output_inverse_branch_condition): Removed.
+       (print_operand): Use s390_branch_condition_mnemonic.
+       * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
+       subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
+       (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
+
+       * config/s390/s390.c (check_and_change_labels): Preserve CC mode
+       when converting conditional branches to far branches.
+       * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
+       cmpint_di): Use CCSmode instead of CCUmode.
+
+       * config/s390/s390.c (legitimate_la_operand_p): New.
+       * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
+       * config/s390/s390.md (movsi): Convert load address patterns to
+       arithmetic operations when necessary.
+       (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
+       (do_la): Renamed to *do_la and use legitimate_la_operand_p.
+       (*do_la_reg_0): Don't use before reload.
+
+       * config/s390/s390.c (legitimize_address): Make more efficient
+       use of two-register addressing mode.
+
+       * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
+       with -mno-backchain in some corner cases.
+
+       * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
+
+2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * reload.c (find_reloads): Mark new USE insns with QImode.
+       (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
+       find_reloads_subreg_address): Likewise.
+       * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
+       encountered.
+       * reload1.c (reload_combine_note_use): Likewise, inside USEs and
+       CLOBBERs.
+       (reload): Make sure there are no USEs with mode other than
+       VOIDmode.  At the end, remove those marked with QImode.
+
+2001-09-29  Per Bothner  <per@bothner.com>
+
+       * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
+       * Makefile.in (includedir):  Rename to local_includedir.
+       (includedir):  Define as $(prefix)/include.
+       * config.in (PREFIX_INCLUDE_DIR):  New variable.
+       * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
+
+2001-09-29  Bernd Schmidt  <bernds@redhat.com>
+
+       * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
+       storehps builtins.
+       * doc/extend.texi (Vector Extensions): New node.
+       * doc/invoke.texi (Machine Dependent Options): Add documentation for
+        i386 -mmmx, -msse, -m3dnow.
+
+Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
+
+2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
+
+       * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
+
+       * doc/invoke.texi (Optimize Options): Delete spurious @table.
+
+2001-09-28  Richard Henderson  <rth@redhat.com>
+
+       * varasm.c (assemble_integer): Bound alignment check by
+       BIGGEST_ALIGNMENT.
+
+       * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
+
+2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
+
+2001-09-25  Bernd Schmidt  <bernds@redhat.com>
+
+       Mostly from Graham Stott  <grahams@redhat.com>
+       * c-common.c (type_for_mode): Add support for V2SFmode.
+       * tree.c (build_common_tree_nodes_2): Likewise.
+       * tree.h (enum tree_index, global_trees): Likewise.
+       * config/i386/i386.c (x86_3dnow_a): New variable.
+       (override_options): Support 3Dnow extensions.
+       (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
+       Athlon's version of 3Dnow.
+       (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
+       (ix86_expand_builtin): Handle them.
+       (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
+       * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
+       TARGET_3DNOW_A): New macros.
+       (TARGET_SWITCHES): Add 3Dnow switches.
+       (VALID_MMX_REG_MODE_3DNOW): New macro.
+       (VECTOR_MODE_SUPPORTED_P): Use it.
+       (enum ix86_builtins): Add entries for 3Dnow builtins.
+       * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
+       pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
+       pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
+       pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
+       pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
+       pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
+       (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
+       mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
+       mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
+       sfence_insn, prefetch): Make these available if TARGET_SSE or
+       TARGET_3DNOW_A.
+       
+Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
+       ix86_va_start, ix86_build_va_list): Declare.
+       * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
+       ix86_va_start, ix86_build_va_list): New global functions.
+       * i386.md (sse_prologue_save_insn): New insn.
+       (sse_prologue_save): New expander.
+       * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
+       BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
+
+2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
+       Use size_t everywhere, make definitions consistent with
+       prototypes.     
+
+Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * gcse.c (replace_store_insn): Use delete_insn.
+       * loop.c (move_movables): Likewise; avoid delete_insn
+       from clobbering notes moved elsewhere.
+       (check_dbra_loop): Use delete_insn.
+       * ssa.c (convert_from_ssa): Likewise.
+       * cse.c (cse_insn): Use delete_insn.
+
+2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_buff): Make unsigned.
+       (_cpp_get_buff): Take length of size_t.
+       (_cpp_unaligned_alloc): New.
+       (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
+       (struct cpp_reader): Remove ident_pool.  Add u_buff.
+       * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
+       (cpp_destroy): Destroy u_buff, not ident_pool.
+       * cpplex.c (parse_number, parse_string, save_comment,
+       cpp_token_as_text): Update to use the unaligned buffer.
+       (new_buff): Make unsigned.
+       (_cpp_unaligned_alloc): New.
+       * cpplib.c (glue_header_name): Update to use the unaligned buffer.
+       * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
+       Similarly.
+       (collect_args): Make unsigned.
+
+2001-09-27  Zack Weinberg  <zack@codesourcery.com>
+
+       * cpplex.c (cpp_output_token): Use a putc loop for
+       SPELL_OPERATOR, and fwrite for SPELL_IDENT.
+
+       * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
+       * configure, config.in: Regenerate.
+       * system.h: Replace fwrite and fprintf with their unlocked
+       variants if available.
+
+2001-09-27  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
+       in favour of .eh_frame.
+
+2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
+       to macros.
+       (LIBCALL_VALUE): Likewise.
+
+2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h: Update comment.
+       * cpplex.c: Update comments.
+       (_cpp_can_paste): Remove.
+       * cpplib.h (_cpp_can_paste): Remove.
+       * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
+       lexer rather than _cpp_can_paste.
+
+2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * doc/cppinternals.texi: Update.
+
+2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_pool): Remove locks and locked.
+       (struct cpp_context): Add member buff.
+       (struct cpp_reader): Remove member argument_pool.
+       (_cpp_lock_pool, _cpp_unlock_pool): Remove.
+       * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
+       * cpplex.c (chunk_suitable): Remove pool argument.
+       (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
+       (new_buff, _cpp_extend_buff): Update.
+       (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
+       which buffer is returned.
+       (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
+       (_cpp_lock_pool, _cpp_unlock_pool): Remove.
+       * cppmacro.c (lock_pools, unlock_pools): Remove.
+       (push_ptoken_context): Take a _cpp_buff.
+       (enter_macro_context): Pool locking removed.
+       (replace_args): Use a _cpp_buff for the replacement list with
+       arguments replaced.
+       (push_token_context): Clear buff.
+       (expand_arg): Use _cpp_pop_context.
+       (_cpp_pop_context): Free a context's buffer, if any.
+
+2001-09-26  DJ Delorie  <dj@redhat.com>
+
+       * c-typeck.c (digest_init): Check for sizeless arrays.
+
+2001-09-26  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (init_one_libfunc): Create a dummy function type
+       instead of using error_mark_node.
+
+2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
+       _cpp_extend_buff, _cpp_free_buff): New.
+       (struct cpp_reader): New member free_buffs.
+       * cppinit.c (cpp_destroy): Free buffers.
+       * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
+       _cpp_extend_buff, _cpp_free_buff): New.
+       * cpplib.h (struct cpp_options): Remove unused member.
+       * cppmacro.c (collect_args): New.  Combines the old parse_arg
+       and parse_args.  Use _cpp_buff for memory allocation.
+       (funlike_invocation_p, replace_args): Update.
+
 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * final.c (final_scan_insn): Use delete_insn instead of delete_note.
@@ -91,7 +389,7 @@ Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
        (bdesc_2srg): Likewise.
        (bdesc_1arg): Likewise.
 
-       * config/i386/i386.c (ix86_init_builtins): Correct return type 
+       * config/i386/i386.c (ix86_init_builtins): Correct return type
        building v4hi_ftype_v4hi_int_int tree node.
        (ix86_expand_sse_comi): Fix typo swapping operands.
        Don't swap comparision condition, it is already swapped.
@@ -183,7 +481,7 @@ Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
 
        * doc/install.texi (Final install): Request additional information
-       in mail about successful builds. 
+       in mail about successful builds.
 
 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>