OSDN Git Service

* tree.c (make_node): Call bzero instead of inline clear.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0384fbc..ab5938e 100644 (file)
@@ -1,3 +1,509 @@
+Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
+
+       * tree.c (make_node): Call bzero instead of inline clear.
+       (copy_node, make_tree_vec, build1): Likewise.
+       (get_identifier): Call strlen instead of inline count.
+       (maybe_get_identifier): Likewise.
+
+Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
+       operations in 3rd annulled delay slot.
+       (*lshrqi3_const_set): Disallow c constraint for operand0.
+       (modhi3+1, modhi3+2): Set attribute type to multi.
+       * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
+       != operator.
+
+Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gansidecl.h: Allow attribute unused on labels only when we are
+       version 2.93 or higher.  Not all versions of 2.92 have this feature.
+
+       * version.c: Bump minor number to 93.
+
+Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+       * config/m68k/m68k.h: Declare output_function_epilogue.
+       * recog.h: Declare next_insn_tests_no_inequality.
+
+Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * stmt.c (optimize_tail_recursion): New function, extracted from ...
+       (expand_return): Use optimize_tail_recursion.
+       * tree.h (optimize_tail_recursion): Declare.
+
+       * toplev.c (compile_file): Move call to output_func_start_profiler
+       to after the loop to emit deferred functions.
+
+Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * system.h (abort): Supply more detailed information on how to
+       report an Internal Compiler Error.
+
+Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
+       allocate memory that will live beyond this function.
+       (expand_call): Free it here.
+
+Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
+
+       * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
+       integer data not destined for fp regs.
+       (LEGITIMIZE_RELOAD_ADDRESS): New.
+
+Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
+                         Richard Henderson  <rth@cygnus.com>
+
+       Support for Hypersparc and Sparclite86x:
+       * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
+       (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
+       (ASM_CPU32_DEFAULT_SPEC): Likewise.
+       (TARGET_CPU_DEFAULT): Likewise.
+       (enum processor_type): Likewise.
+       (CPP_ENDIAN_SPEC): Handle little endian data.
+       (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
+       (ADJUST_COST): Call sparc_adjust_cost.
+       * sparc.c (sparc_override_options): Fix up for the new targets.
+       (supersparc_adjust_cost): Make static.
+       (hypersparc_adjust_cost): New.
+       (ultrasparc_adjust_cost): Make static.
+       (sparc_adjust_cost): New.
+       * sparc.md (attr cpu): Add hypersparc and sparclite86x.
+       (function_unit): Add hypersparc scheduling rules.
+
+       * configure.in (with_cpu handler): Recognize hypersparc.
+
+Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c: Added space after negation operator.
+       * config/c4x/c4x.h: Likewise.
+       * config/c4x/c4x.md: Likewise.
+
+Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
+
+Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
+
+       * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
+       when a test can't be performed due to limited width of
+       HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
+       Fix UDIV case for cases where the first operand has the highest bit
+       set.
+
+Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
+
+       * pa.h (reg_class): Add FPUPPER_REGS.
+       (REG_CLASS_NAMES): Similarly.
+       (REG_CLASS_CONTENTS): Similarly
+       (REGNO_REG_CLASS): Handle FPUPPER_REGS.
+       (FP_REG_CLASS_P): Likewise.
+       (REG_CLASS_FROM_LETTER): Similarly.
+       (CLASS_MAX_NREGS): Similarly.
+
+1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
+
+       * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
+       for a typedef of bool.  Make sure to have a copy of the file is
+       in place before we look to fix it.  Fix typo in variable name to
+       FILE.
+
+Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
+       value_mode for the return mode.
+
+Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
+
+       * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
+       debugging as default.
+
+       * config/tm-dwarf2.h: New file.
+
+Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * h8300.h (ASM_OUTPUT_LABELREF): Define.
+
+       * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
+       * local-alloc.c (update_equiv_regs): Corresponding changes.
+       * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
+
+       * calls.c (special_function_p): Push alloca test inside the large
+       conditional which excludes functions not at file scope or not
+       extern.  
+
+       * calls.c (special_function_p): New function broken out of
+       expand_call.
+       (precompute_register_parameters): Likewise.
+       (store_one_arg): Likewise.
+       (store_unaligned_argumetns_into_pseudos): Likewise.
+       (save_fixed_argument_area): Likewise.
+       (restore_fixed_argument_area): Likewise.
+       (expand_call): Corresponding changes.
+       
+Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+       * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
+       handling.
+       (const_sint32_operand): Likewise.
+
+Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
+       is a macro when deciding if we can use `jmp_buf' in prototypes.
+
+Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.md (addqi3): If the destination operand is
+       a hard register other than an extended precision register,
+       emit addqi3_noclobber.
+       (*addqi3_noclobber_reload): New pattern added so that reload
+       will recognise a store of a pseudo, equivalent to the sum
+       of the frame pointer and a constant, as an add insn.
+
+Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
+
+       * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
+       * configure: Rebuilt.
+       * i386/xm-go32.h: Define LIBSTDCXX.
+       * i386/x-go32: New.
+       * i386/go32.h (MD_EXEC_PREFIX): Define.
+       (FILE_NAME_ABSOLUTE_P): Define.
+       (LINK_COMMAND_SPEC): Define.
+
+Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
+
+       * expr.c (store_expr): If the lhs is a memory location pointed
+       to be a postincremented (or postdecremented) pointer, always
+       force the rhs to be evaluated into a pseudo.
+
+Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
+
+       * real.c (mtherr): Print more reasonable warning messages.
+
+Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
+
+       * cccp.c: Include prefix.h, don't prototype prefix.c functions.
+       (new_include_prefix): Constify char* parameters.
+
+       * cppfiles.c (read_name_map): Likewise.
+       (append_include_chain): Likewise.  Also, use a writable char* copy
+       of parameter `dir' which we then modify, rather than using the
+       parameter itself to store the new writable string.
+       (remap_filename): Constify some variables.  Also, use a writable
+       char* to store an allocated string which we will be modifying.
+
+       * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
+       (cpp_start_read): Constify variable `str'.
+
+       * cpplib.h (append_include_chain): Constify a char* parameter.
+
+       * gcc.c Include prefix.h, don't prototype prefix.c functions.
+       (add_prefix, save_string): Constify char* parameters.
+       (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
+
+       * prefix.c: Include prefix.h.
+       (get_key_value, translate_name, save_string, update_path,
+       set_std_prefix): Constify various char* parameters and variables.
+       (save_string): Use xmalloc, not malloc.
+       (translate_name): Use a writable temporary variable to create and
+       modify a string before setting it to a const char*.
+       
+       * prefix.h: New file to prototype functions exported from prefix.c.
+
+Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+       * cpplib.c (skip_if_group): Split out the logic that handles
+       directive recognition to its own function.  Don't use
+       parse markers; use a bare pointer into the buffer.  Use
+       copy/skip_rest_of_line instead of doing it by hand.  Remove
+       `return on any directive' mode which was never used, and take
+       only one argument.
+       (consider_directive_while_skipping): New function, subroutine
+       of skip_if_group.  Logic streamlined a bit.
+       (conditional_skip, do_elif, do_else): Call skip_if_group with
+       only one argument.
+
+Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+       * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
+       error.
+
+Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * extend.texi (Bound member functions): Document.
+
+Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
+       lang_to_string, type_to_string): Make return type const char*.
+       (print_symbol): Apply `const' keyword to a char*.
+       (print_file_desc): Cast structure member `crfd' to ulong when
+       comparing against one.
+
+       * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
+       (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
+       (progname, input_name): Apply `const' keyword to a char*.
+       Don't redundantly include sys/stat.h.
+       (alloc_info): Apply `const' keyword to a char*.
+       (st_to_string, sc_to_string): Likewise.
+       (hash_string): Cast variable `hash_string' to a symint_t when
+       comparing against one.
+       (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
+       Likewise cast it to long when comparing against one.
+       (add_local_symbol): Apply `const' keyword to a char*.
+       (add_ext_symbol): Likewise.
+       (add_unknown_tag): Likewise.
+       (add_procedure): Cast a printf-style field width to an int.
+       (add_file): Cast PAGE_USIZE to long when comparing against one
+       (parse_begin): Cast a printf-style field width to an int.
+       (parse_bend): Likewise.
+       (parse_def): Likewise.
+       (parse_end): Likewise.
+       (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
+       (parse_stabs_common): Fix format specifier.
+       (parse_input): Change type of variable `i' to Size_t.
+       (write_object): Fix arguments to match format specifiers.
+       Cast variable `num_write' to long when comparing against one.
+       (read_seek): Cast variable `sys_read' to symint_t when comparing
+       against one.  Fix arguments to match format specifiers.  Cast
+       variable `size' to long when comparing against one.
+       (copy_object): Cast result of `sizeof' to int when comparing
+       against one.  Fix arguments to match format specifiers.  Cast
+       variable `ifd' to long when comparing against a signed value.
+       Likewise, likewise.
+       
+Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (decl_attributes): Allow applying attribute `unused'
+       on a LABEL_DECL.
+
+       * c-parse.in (label): Parse attributes after a label, and call
+       `decl_attributes' to handle them.
+
+       * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
+
+       * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
+       generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
+
+       * invoke.texi: Note that labels can be marked `unused'.
+
+Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
+       RTL for a compare/jump sequence.
+       
+Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
+       for a target with HAVE_cc0 defined.
+       (emit_cmp_and_jump_insns): New function.
+       * expr.h (emit_cmp_and_jump_insns): Prototype it.
+       * loop.c (check_dbra_loop): Use it to replace calls
+       to emit_cmp_insn and emit_jump_insn and to canonicalise
+       the comparison if necessary.
+       * unroll.c (unroll_loop): Likewise.
+
+Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * fixincludes (sys/utsname.h): Provide forward declaration of
+       struct utsname on Ultrix V4.[35].
+
+       * mips.md (div_trap): Use local labels instead of dot-relative
+       branches.
+
+Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.md (branch, negated branch): Handle (const_int 0) as first
+       source operand.
+       * pa.c (output_cbranch): Likewise.
+
+Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (rs6000_stack_info): Undo spurious part of last
+       change.
+
+1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
+
+       * extend.texi (__builtin_constant_p): Add missing @smallexample.
+
+Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
+
+Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
+       (adddi_dishl32): Similarly.
+
+       * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
+       for each insn in the skipped block.
+
+       * reload1.c (reload_as_needed): Verify that the insn satisfies its
+       constraints after replacing a register address with an autoincrement
+       address for reload inheritance purposes.
+
+       * i386.md (doubleword shifts): Avoid namespace pollution.
+
+Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
+
+       * configure.in (FreeBSD ELF): Needs special crt files.
+
+Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
+
+       * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
+
+1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+       * loop.c (check_dbra_loop): While reversing the loop, if the
+       comparison value has a VOID mode use the mode of the other operand
+       to compute the mask.
+
+Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
+
+       * rs6000.md ({save,restore}_stack_function): Take 2 operands to
+       avoid warnings in compiling explow.c.
+
+       (patch from Ken Raeburn, raeburn@cygnus.com)
+       * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
+       fpmem_offset.  Compute total size after that, and then
+       rs6000_fpmem_offset using both values.
+
+Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+       * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
+       the future; indeed that already happens in some cases.
+
+Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
+
+       * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
+       (arith_operand): Remove constant_p_rtx handling.
+       (const64_operand, const64_high_operand): Likewise.
+       (arith11_operand, arith10_operand, arith_double_operand): Likewise.
+       (arith11_double_operand, arith10_double_operand, small_int): Likewise.
+       (small_int_or_double, uns_small_int, zero_operand): Likewise.
+       * sparc.h (PREDICATE_CODES): Likewise.
+
+       * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
+
+Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
+
+       * rtl.def (CONSTANT_P_RTX): Clarify commentary.
+       * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
+       consider constant CONSTRUCTOR constant and to defer some cases
+       to cse.
+       * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
+       * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
+
+Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
+       * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
+
+       * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
+       (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
+       (sext_add_operand, and_operand, or_operand): Likewise.
+       (reg_or_cint_operand, some_operand, input_operand): Likewise.
+       * alpha.h (PREDICATE_CODES): Likewise.
+
+Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
+
+       * version.c: Bump for snapshot.
+
+Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * gengenrtl.c (gencode): Always use bzero to clear memory instead
+       of dangerous casts and stores.
+
+       * Makefile.in (compare, gnucompare): Add missing else true clauses.
+
+Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * alpha.md (builtin_longjmp): Add missing "DONE".
+
+Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
+
+       * gcc.c (execute): Enable -pipe with win32.
+
+Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/t-arm-elf: Add multiplib option for leading
+       underscores.
+
+       * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
+        'user_label_prefix' rather than macro USER_LABEL_PREFIX.
+
+       (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
+       than variable 'reload_address_base_reg_class'.  [Note this
+       change is unrelated to the others in this patch].
+
+       * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
+        leading underscore.
+
+Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * alias.c (record_alias_subset): Remove ignored `&'.
+       (init_alias_once): Likewise.
+
+       * c-lex.c (UNGETC): Cast first argument of comma expression to void.
+
+       * config/mips/mips.c (mips_asm_file_end): Cast the result of
+       fwrite to `int' when comparing against one.
+
+       * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
+       (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
+
+       * cse.c (rehash_using_reg): Change type of variable `i' to
+       unsigned int.
+
+       * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
+       assigning it to one.
+
+       * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
+
+       * final.c (final_scan_insn): Likewise for variable `i'.
+       (output_asm_insn): Cast a char to unsigned char when used as an
+       array index.
+
+       * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
+       assigning it to one.
+
+       * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
+
+       * recog.c (preprocess_constraints): Cast a char to unsigned char
+       when used as an array index.
+
+       * regmove.c (find_matches): Likewise.
+
+       * reload1.c (calculate_needs): Add default case in switch.
+       (eliminate_regs_in_insn): Initialize variable `offset'.
+       (set_offsets_for_label): Change type of variable `i' to unsigned.
+       (reload_as_needed): Wrap variable `i' in macro check on
+       AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
+
+       * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
+       with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
+       when comparing against one.
+
+       * stor-layout.c (layout_decl): Cast maximum_field_alignment to
+       unsigned when comparing against one.  Likewise for
+       GET_MODE_ALIGNMENT().
+       (layout_record): Cast record_align to int when comparing against a
+       signed value. 
+       (layout_type): Cast TYPE_ALIGN() to int when comparing against a
+       signed value.
+
+       * tree.c (get_identifier): Cast variable `len' to unsigned when
+       comparing against one.
+       (maybe_get_identifier): Likewise
+
 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
 
        * toplev.c (rest_of_compilation): Do not set reload_completed.