OSDN Git Service

* configure.in (sparc64-*-linux*): Use posix threads if enabled.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0737719..2639d72 100644 (file)
@@ -1,3 +1,282 @@
+1999-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
+       suitable for holding OFmode values so that gcc works with complex
+       quad long doubles.
+       (hard_64bit_mode_classes): Likewise.
+
+       * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
+       so that it is actually matched.
+       (sethi_di_medlow): Likewise.
+
+       * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
+       as legitimate constant if -mvis.
+       * config/sparc/sparc.md (movtf): Likewise.
+       (clear_sf): Use const_double_operand.
+       (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
+
+       * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
+       * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
+       * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
+       routines, _Qp_* cannot be handled like that now.
+       (INIT_TARGET_OPTABS): Likewise.
+       * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
+       (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
+       sparc_emit_float_lib_cmp if ARCH64 and soft float.
+       (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
+       floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
+       divtf3, sqrttf3): New expanders.
+       (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
+       floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
+       addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
+       non-_hq patterns.
+
+       * configure.in (sparc64-*-linux*): Use posix threads if enabled.
+       * configure: Rebuilt.
+       * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
+       -mcpu is given and we're doing 64bit compiles.
+
+Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
+
+       * loop.h (struct induction): Add multi_insn_incr.
+       * loop.c (basic_induction_var): New multi_insn_incr argument.
+       Set it if we search back through previous insns for the biv.
+       (record_biv): New multi_insn_incr argument; fill in struct induction.
+       (strength_reduce): Discard an iv with multiple bivs, any of
+       which require multiple insns to increment.
+
+1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
+
+       * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
+       documentation.
+       
+1999-12-06  David S. Miller  <davem@redhat.com>
+
+       * combine.c (check_promoted_subreg): Do not conditionalize this upon
+       PROMOTE_FUNCTION_RETURN.
+
+Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
+       and handle REG_UNUSED note on insn.
+
+       * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
+       inner_mask instead of mask.
+
+1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
+
+       * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
+       zero if there was an error.
+
+1999-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.md (return_losum_di): Fix typo in asm
+       output string.
+
+       * longlong.h: Fix clobbers in SPARC asm statements.
+
+       * config/sparc/sparc.c (input_operand): Allow HImode and QImode
+       valid sethi operations when TARGET_ARCH64.
+
+       * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
+       always use move_by_pieces to avoid infinite recursion.
+       (restore_fixed_argument_area): Likewise.
+
+       * combine.c (check_promoted_subreg, record_promoted_value): New
+       functions.
+       (combine_instructions): Use them to retain nonzero and sign bit
+       information after SUBREGs are eliminated by optimizations in
+       this pass if PROMOTE_FUNCTION_RETURN.
+
+       * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
+       .register declaration. Don't use variables with __ prefixes.
+
+Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * fold-const.c (optimize_bit_field_compare): Only use one mode
+       for both RHS and LHS in non-constant case.
+
+1999-12-06  Nathan Sidwell  <nathan@acm.org>
+
+       * frame.c (start_fde_sort): Only allocate erratic array, if
+       linear one was allocated. Return allocated flag.
+       (fde_insert): Only insert, if there's a valid array.
+       (fde_end_sort): Split, sort and merge if linear and erratic
+       arrays exist, else just sort linear one.
+       (search_fdes): New function. Linear search through original fde
+       structure.
+       (frame_init): Permit multiple initializations. Cope with
+       memory shortages.
+       (find_fde): Fallback on linear search, if failed to sort array.
+       (__deregister_frame_info): Only free sorted array, if we
+       allocated it.
+
+1999-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
+
+1999-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
+
+1999-12-05  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.h (special_function_p): Declare.
+       * calls.c (special_function_p): Make it global.  Don't take `name'
+       as a parameter.  Fix typo in 1999-11-28 change.
+       (expand_cal): Adjust.
+
+1999-12-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
+       * tree.h (EXPR_WFL_FILENAME): Define in terms of
+       EXPR_WFL_FILENAME_NODE.
+       (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
+       the TREE_CHAIN.
+       * print-tree.c (print_note): Print TREE_PRIVATE and
+       TREE_PROTECTED.
+       
+       * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
+       the original die cannot be found.
+
+       * varray.h (varray_head_tag): Add elements_used.
+       (VARRAY_PUSH): New macro.
+       (VARRAY_POP): Likewise.
+       (VARRAY_TOP): Likewise.
+       Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
+       types. 
+       * varray.c (varray_init): Initialize elements_used.
+       * Makefile.in (BASIC_BLOCK_H): Add varray.h.
+       (INTEGRATE_H): New variable.
+       (integrate.o): Depend on INTEGRATE_H.
+       (unroll.o): Likewise.
+       
+       * function.h (insert_block_after_note): Declare.
+       * function.c (insert_block_after_note): Split out from ...
+       (retrofit_block): ... here.
+
+       * stmt.c (expand_fixup): Fix typo in comment.
+
+Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
+
+       * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
+       (optimize_reg_copy_1): Remove REG_N_REFS updating code.
+       (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
+       (regmove_optimize, fixup_match_1): Likewise.
+
+1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * flow.c (flow_loops_dump): Add missing argument when calling
+       flow_loop_nested_p.
+
+1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
+           Greg McGary  <gkm@gnu.org>
+
+       * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
+       (init_attributes): Add A_NO_LIMIT_STACK.
+       (decl_attributes): Handle A_NO_LIMIT_STACK.
+       * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
+       * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
+       Handle stack bounds checking.
+       * flags.h (flag_stack_check): Use the word 'probe' rather than
+       'check', because the flag doesn't actually cause any checking to
+       be done.
+       * function.c (expand_function_start): Set
+       current_function_limit_stack.
+       * function.h (struct function): Add limit_stack.
+       (current_function_limit_stack): Define.
+       * invoke.texi (Code Gen Options): Document new options.
+       * rtl.h: Declare stack_limit_rtx.
+       * toplev.c (stack_limit_rtx): New variable.
+       (decode_f_option): Handle new options -fstack-limit-register=REG,
+       -fstack-limit-symbol=IDENT, -fno-stack-limit.
+       (main): Add stack_limit_rtx as GC root.
+       * tree.h (DECL_NO_LIMIT_STACK): New macro.
+       (struct tree_decl): New member no_limit_stack.
+
+       * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
+       stack_limit_rtx.
+       * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
+       (conditional_trap+1): Get new mnemonic correct.
+       (conditional_trap+2): New pattern for DImode traps.
+
+       * config/m68k/m68k.c (output_function_prologue): Handle
+       stack_limit_rtx.
+       * config/m68k/m68k.md (trap): New insn.
+       (conditional_trap): New insn.
+       * md.texi (Standard Names): Document `trap' and
+       `conditional_trap'.
+       * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
+       so a cc0 setter doesn't get emitted at some random place in the
+       function.
+
+       * config/i960/i960.md (trap): New insn.
+       (conditional_trap): New expander.
+       (conditional_trap+1, conditional_trap+2): New insns for signed
+       and unsigned cases.
+       * config/i960/i960.c (i960_function_prologue): Use 
+       STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
+
+Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
+                         Geoffrey Keating  <geoffk@cygnus.com>
+
+       * flags.h (warn_padded, warn_packed): Add global var decls.
+       * toplev.c (warn_padded, warn_packed): Add global var defns.
+       (W_options): Add warnings `-Wpacked' and `-Wpadded'.
+       * stor-layout.c (layout_record): Add local variable `type'
+       to hold often-used TREE_TYPE (field).  Add local variable
+       `unpacked_align' to hold alignment that would be in force
+       if no `packed' attribute were present.  Warn if `packed' attribute
+       is unnecessary, or even harmful.  Warn when gcc inserts padding
+       to satisfy alignment requirements of members.  Use NULL_TREE
+       when checking whether var_size is set.
+       * invoke.texi: Document new flags.
+
+1999-12-03  Nathan Sidwell  <nathan@acm.org>
+
+       * frame.c (fde_split): Reimplement to avoid variable sized array.
+
+Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * combine.c (try_combine): Before fixing up LOG_LINKS for the
+       i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
+
+1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * invoke.texi: Document the mips option -mno-crt0
+
+1999-12-02  Mike Karr  <mkarr@mathworks.com>
+
+       * cccp.c (argdata): Added free_ptr member.
+       (macroexpand): Initialize free_ptr of each argument. When an
+       argument's buffers are freed, if the argument's free_ptr corresponds
+       to a buffer on the input stack, then return the free_ptr to that stack
+       frame, otherwise, free it.
+       (macarg): If an argument begins and ends on the same input stack level,
+       then transfer the free_ptr of that buffer to the argument in case
+       the stack is popped during the processing of a subsequent argument.
+
+1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * loop.c (note_reg_stored): New function.
+       (struct note_reg_stored_arg): New structure.
+       (try_copy_prop): Change to be more conservative; only replace within
+       one extended basic block and stop replacing if a store to the
+       replacement reg is seen.
+
+1999-12-02  Nick Clifton  <nickc@cygnus.com>
+
+       * config/fp-bit.c: Initialise all fields of the NAN
+       constants. 
+
+       * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
+       to HANDLE_PRAGMA.
+
+Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
+
+       * i386.md (extend?f?f2): Force the input into a register, not
+       the output.
+
 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
 
        * config/sparc/sparc.md (movsf_const_intreg): Add constraints for