OSDN Git Service

* config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 870d923..3b5970c 100644 (file)
@@ -1,3 +1,270 @@
+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.
+
+2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * except.c (sjlj_mark_call_sites): Change address inside sequence.
+
+2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
+
+       * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
+       glibc.
+
+2001-09-25  Janis Johnson  <janis187@us.ibm.com>
+           Jim Wilson  <wilson@redhat.com>
+
+       * doc/install.texi (Specific, ia64-*-linux): Document.
+
+Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in (cfgrtl.o): Add.
+       * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
+       free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
+       free_aux_for_edge): Declare.
+       * cfg.c
+       (HAVE_return): Undefine.
+       * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
+       free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
+       free_aux_for_edge): New global functions.
+       (first_delete_block): New static variable.
+       (init_flow): Clear first_delete_block.
+       (basic_block_for_insn, label_value_list, tail_recursion_label_list,
+        can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
+        try_redirect_by_replacing_jump, last_loop_beg_note,
+        back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
+        delete_insn, delete_insn_chain, create_basic_block_structure,
+        create_basic_block, flow_delete_block, compute_bb_for_insn,
+        free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
+        set_block_for_new_insns, split_block, merge_blocks_nomove,
+        block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
+        redirect_edge_and_branch, force_nonfallthru_and_redirect,
+        force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
+        tidy_fallthru_edges, split_edge, insert_insn_on_edge,
+        commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
+        debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
+        purge_all_dead_edges): Move to ....
+       * cfgrtl.c: New file; .... Here.
+
+       * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
+       (reroder_basic_block): Use alloc_aux_for_blocks.
+       * predict.c (estimate_bb_frequencies): Likewise; use
+       alloc_aux_for_edges.
+       * profile.c (compute_branch_probabilities): Likewise.
+       (branch_prob): Likewise.
+       * reg-stack.c (reg_to_stack): Likewise.
+
+       * emit-rtl.c (emit_insns_after): Never return NULL.
+
+       * basic-block.h (set_block_for_new_insns): Delete.
+       * cfgrtl.c (set_block_for_new_insns): Delete.
+
+       * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
+       calls when crossjumping.
+
+       * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
+       * unroll.c (copy_loop_body): Use delete_insn.
+
+       * final.c (final, final_scan_insn): Use delete_insn/delete_note.
+       * function.c (fixup_var_refs_insn, fixup_var_refs_1,
+       keep_stack_depressed): Likewise.
+       * gcse.c (cprop_cc0_jump): Likewise.
+       * local-alloc.c (update_equiv_regs): Likewise.
+       * loop.c (scan_loop, loop_delete_insns): Likewise.
+       * regmove.c (try_auto_increment, fixup_match_1): Likewise.
+       * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
+       delete_output_reload, delete_address_reloads_1,
+       reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
+       Likewise.
+       * sibcall.c (replace_call_placeholder): Likewise.
+       * cse.c (cse_insn): Likewise.
+
+2001-09-25  Bernd Schmidt  <bernds@redhat.com>
+
+       From Graham Stott  <grahams@redhat.com>
+       (def_builtin): Only define builtins appropriate for target_flags.  All
+       callers changed.
+       (builtin_decsription): Add new field mask which is used to determine
+       when to define the builtin via the macro def_builtin.
+
+       (bdesc_comi): Initialise new mask fields.
+       (bdesc_2srg): Likewise.
+       (bdesc_1arg): Likewise.
+
+       * 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.
+       (ix86_expand_sse_compare): Before swapping operands
+       move operand 1 into new rtx and not the target rtx.
+       Don't swap comparison condition, it is already swapped.
+       Always check whether we need to create a new TARGET.
+
+       * config/i386/i386.md: (sse_comi) Fix typos.
+       (sse_ucomi): Likewise.
+       (cvtss2si): Fix operand 0 contraint.
+       (cvttss2si): Likewise.
+       (sse_unpckhps): Fix mode for operand 2.
+       (sse_unpcklps): Likewise.
+
 2001-09-25  Graham Stott  <grahams@redhat.com>
 
        * sibcall.c (skip_copy_to_return_value): Tighten return value
@@ -74,7 +341,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>