+Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
+
+ * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
+ * config/avr/libgcc.S: Lost part of the previous patch.
+
+2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
+ object before calling pthread_mutex_init.
+
+2000-09-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
+ config/sh/crtn.asm: New files.
+ * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
+ (crt1.o, crti.o, crtn.o): New targets.
+ * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
+ sh/t-elf.
+ * configure: Rebuilt.
+ * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
+ STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
+ * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
+ Undefine for config/elfos.h to redefine.
+ (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
+
+2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
+ legitimize_pic_address, output_pic_addr_const): Declare.
+ * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
+ (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
+ (TARGET_SWITCHES): New switch -mprefergot.
+ (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
+ (PIC_OFFSET_TABLE_REGNUM): Define.
+ (GOT_SYMBOL_TABLE): Likewise.
+ (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
+ (ENCODE_SECTION_INFO): Define.
+ (FINALIZE_PIC): New macros.
+ (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
+ (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
+ * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
+ (prepare_move_operands): Call emit_pic_move or
+ emit_pic_const_move if appropriate.
+ (output_far_jump): For PIC, use braf and output long offset.
+ (machine_dependent_reorg):
+ (sh_expand_prologue): Save and initialize the PIC register.
+ (sh_expand_epilogue): Restore it.
+ (initial_elimination_offset): Account for it.
+ (nonpic_symbol_mentioned_p): New function.
+ (legitimize_pic_address): Likewise.
+ (output_pic_addr_const): Likewise.
+ * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
+ (call, call_value): Use them.
+ (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
+ symPLT_label2reg): New expands.
+ * invoke.texi (SH Options): Document -mprefergot.
+
+2000-09-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
+ * gcse.c (hash_string_1): New function.
+ (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
+ (expr_equiv_p) <ASM_OPERANDS>: Likewise.
+ * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
+ (canon_hash_string): New function.
+ (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
+ (exp_equiv_p) <ASM_OPERANDS>: Likewise.
+ (fold_rtx): Use ASM_OPERANDS accessor macros.
+ * emit-rtl.c (copy_insn_1): Likewise.
+ * integrate.c (copy_rtx_and_substitute): Likewise.
+ * stmt.c (expand_asm_operands): Likewise. Give an
+ ASM_OPERANDS rtx the mode of the output reg being set from it.
+
+2000-09-01 Fred Fish <fnf@be.com>
+
+ * fix-header.c (write_rbrac): Add putc and getc to list of
+ functions to protect against prior definition as a macro.
+
+2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
+ (c_size_type_node): Define.
+ * c-decl.c (init_decl_processing): Initialize c_size_type_node.
+ * c-common.c (enum format_lengths, enum format_std_version,
+ format_length_info, format_type_detail, BADLEN, NOLENGTHS,
+ format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
+ T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
+ T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
+ T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
+ TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
+ format_types): Define.
+ (format_char_info, print_char_table, scan_char_table,
+ time_char_table): Rearrange for new organization of information
+ about format length modifiers and standard versions.
+ (T_ST): Redefine to use c_size_type_node.
+ (check_format_info): Obtain information about length modifiers and
+ standard versions from tables. Adjust warning message wordings.
+ Use the name from the user's program for `ll' and `hh' length
+ modifiers in warning messages. Use more informative names for
+ wanted types where available (for wchar_t, wint_t, size_t, signed
+ size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
+
+2000-09-01 Jim Wilson <wilson@cygnus.com>
+
+ * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
+ * combine.c (distribute_notes): Handle REG_NORETURN.
+ * rtl.c (reg_note_name): Add REG_NORETURN.
+ * rtl.h (enum reg_note): Likewise.
+
+ * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
+ ia64_file_start.
+ * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
+ (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
+ (emit_predicate_relation_info): Handle conditional calls with
+ REG_NORETURN.
+ * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
+ instead of ia64_file_start.
+ * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
+ * config/ia64/ia64.md (safe_across_calls_all,
+ save_across_calls_normal): New patterns.
+
+ * loop.c (check_final_value): Check for biv use before checking for
+ giv use. Check for both biv and giv uses. Always set last_giv_use
+ if there is a giv use.
+
+2000-09-01 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
+ (madddi3): Likewise.
+ (maddsi3): New.
+
+Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (clear_storage): Don't use emit_move_insn unless
+ either BLKmode or proper size.
+ (store_constructor): Don't call clear_storage if REG of wrong size.
+
+ * flow.c (init_propagate_block_info): Don't mark frame dead at end
+ of function if returns wiht stack pointer depressed.
+
+2000-09-01 Andrew Haley <aph@redhat.com>
+
+ * dwarf2out.c (stack_adjust_offset): New function.
+ (dwarf2out_stack_adjust): Break out stack adjust logic into
+ new stack_adjust_offset function. Look inside parallels and
+ sequences for stack adjustments.
+
+2000-08-31 Jeff Law <law@cygnus.com>
+
+ * arm.md: Use no_new_pseudos to determine when it is safe
+ to create new pseudo registers.
+
+ * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
+ when we can safely allocate new registers.
+
+2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
+
+ * stmt.c (expand_asm_operands): Twiddle generating_concat_p
+ so that CONCATs are not generated for ASMs.
+ * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
+ not generating_concat_p.
+ * function.c (pop_function_context_from): Reset
+ generating_concat_p.
+ (prepare_function_start): Likewise.
+ * rtl.c (generating_concat_p): Define.
+ * rtl.h (generating_concat_p): Declare.
+ * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
+
+2000-08-22 Philipp Thomas <pthomas@suse.de>
+ Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
+
+ * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
+ for translation.
+
+2000-08-30 Greg McGary <greg@mcgary.org>
+
+ * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
+ * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
+ * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
+
+2000-08-30 Greg McGary <greg@mcgary.org>
+
+ * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
+ (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
+ (TREE_INT_CST): New macro.
+ * varasm.c (const_hash, compare_constant_1, record_constant_1):
+ Use new macro TREE_INT_CST.
+
+Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
+
+ * contrib.texi: Add self.
+
+2000-08-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
+ (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
+ and labels.
+
+2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * fixinc/gnu-regex.c: Don't define `const'.
+
+Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (store_constructor): Allow variable bounds of array type.
+ (expand_expr): Don't blow up if type is ERROR_MARK.
+ * varasm.c (output_constructor): Don't access lower bound of array
+ type unless need it if index is supplied (so it can be a variable
+ if no index is supplied).
+ Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
+ Other minor cleanups.
+
+2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
+ for compilations in stage 1 and subsequent stages, respectively.
+ * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
+ * configure: Rebuilt.
+ * x-vax, x-vax-gcc: Deleted.
+
+2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
+
+ * c-common.c (declare_function_name): Use func_id_node,
+ function_id_node, and pretty_function_id_node. Do not make
+ __func__ visible at file scope.
+ * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
+ CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
+ (function_id_node, pretty_function_id_node, func_id_node): New
+ macros.
+ * c-decl.c (init_decl_processing): Initialize function_id_node,
+ pretty_function_id_node, and func_id_node.
+ (c_make_fname_decl): Correct comment.
+
+ * tree.h (struct tree_identifier): Constify pointer member.
+
+ * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
+ * c-pragma.h (struct weak_syms): Constify name and value members.
+ (add_weak): Constify arguments.
+
+ * calls.c (special_function_p): Constify a char *.
+ (expand_call): Remove variable which is initialized and then
+ never used.
+ * dependence.c (struct def_use, struct induction, struct subscript):
+ Constify 'variable' member.
+ (get_low_bound, have_induction_variable): Constify char * argument.
+ (find_induction_variable): Add braces to avoid dangling else.
+ (classify_dependence): Constify char * arrays.
+ * profile.c (output_func_start_profiler): Constify a char *.
+ * stor-layout.c (finalize_record_size): Constify a char *.
+ * tree.c (is_attribute_p): Constify a char *.
+ * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
+
+ * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
+ for comprehensibility. Do not call get_identifier if we did
+ not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
+ create temporary string constants, not ggc_alloc_string. No
+ need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
+ char * to hold IDENTIFIER_POINTERs.
+
+2000-08-29 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.md (muldi3): Use grfr_register_operand
+ for the inputs.
+
+2000-08-29 Richard Henderson <rth@cygnus.com>
+
+ * reload.c (push_secondary_reload): Allow class == reload_class
+ if we're using a reload_in/out pattern.
+
+ * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
+ the half that does not conflict with the reload register.
+ (reload_outti): Likewise.
+
+2000-08-29 Kazu Hirata <kazu@hxi.com>
+
+ * reload.c: Fix formatting.
+
+ * stmt.c: Fix formatting.
+
+ * gcc.c: Fix formatting.
+
+2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
+
+ * flags.h (time_report, mem_report): New global flags.
+ * toplev.c: Define time_report and mem_report.
+ (f_options): Add -ftime-report and -fmem-report.
+ (compile_file): Turn on time_report if quiet_flag is off.
+ Call ggc_print_statistics at very end if mem_report is on.
+ * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
+
+ * ggc-common.c (ggc_print_statistics): Rename to
+ ggc_print_common_statistics; all callers changed. Scale
+ quantities above 10K to kilobytes and above 10M to megabytes.
+ * ggc-page.c (ggc_page_print_statistics): Rename to
+ ggc_print_statistics. Report memory consumed by internal data
+ structures for each allocation bucket. Scale quantities above
+ 10K to kilobytes and above 10M to megabytes.
+ * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
+ Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
+ Define tally_leaves always.
+ (ggc_print_statistics): New function.
+ * ggc.h: Adjust for renamed functions.
+
+Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
+
+ * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
+ output_movsisf instead of which_alternative.
+
+ * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
+
+Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
+
+ * config/avr/avr-protos.h: (avr_output_ascii) Removed.
+ (avr_progmem_p): New prototype.
+ (output_movsisf): Prototype declaration changed.
+ (output_movqi): New prototype.
+ (output_movhi): New prototype.
+ (call_insn_operand): Likewise.
+ (final_prescan_insn): Likewise.
+ (avr_simplify_comparision_p): Likewise.
+ (avr_normalize_condition): Likewise.
+ (compare_eq_p): Likewise.
+ (out_shift_with_cnt): Likewise.
+ (const_int_pow2_p): Likewise.
+ (output_reload_inhi): Prototype declaration changed.
+
+ * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
+ (ldi_reg_rtx): New. rtx for r31.
+ (avr_init_stack): Initialize as "__stack".
+ (function_prologue): Use it.
+ Replace all TARGET_ENHANCED with AVR_ENHANCED.
+ (avr_mcu_name): Initialize as "avr2".
+ (avr_enhanced_p, avr_mega_p): New variables.
+ (mcu_types, avr_override_options): Handle all known MCU types.
+ Also handle avr1 (only preprocess, assemble and link).
+ (print_operand): Using of `%K' in output template removed.
+ (out_movqi_r_mr): Optimized.
+ (out_movhi_r_mr): Likewise.
+ (output_movqi): New function.
+ (output_movhi): Likewise.
+ (out_movsi_r_mr): Optimized.
+ (output_movsisf): Compute insn length for `adjust_insn_length'
+ (out_movqi_mr_r): Optimized.
+ (out_movhi_mr_r): Optimized.
+ (adjust_insn_length): Use output_movsisf, output_movqi,
+ output_movhi for insn length adjusting.
+ (reg_unused_after): Use dead_or_set_p.
+ (preferred_reload_class): Now havn't any restriction.
+ (reg_was_0): New function.
+ (io_address_p): Likewise.
+ (const_int_pow2_p): Likewise.
+ (output_reload_inhi): Likewise.
+ (output_reload_insisf): Likewise.
+
+ * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
+ (LIB_SPEC): Use -lc for all supported devices.
+ (LIBGCC_SPEC): Use -lgcc for all supported devices.
+ (AVR_MEGA): Define as avr_mega_p.
+ (AVR_ENHANCED): New, define as avr_enhanced_p.
+ (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
+ (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
+ (CRT_BINUTILS_SPECS): Handle all known MCU types.
+ Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
+ (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
+ (ASM_SPEC): Pass -mmcu=... to the assembler.
+ Change all -DAVR_* to -D__AVR_*__.
+ (INIT_TARGET_OPTABS), config/avr/libgcc.S:
+ Rename library functions to start with two underscores.
+ (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
+ alignment.
+ (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
+ (SUPPORTS_WEAK): Likewise.
+ (LDI_REG_REGNO): New. Register r31 will be used as temporary
+ register for loading constants to r0-r14.
+
+ * config/avr/avr.md: Replace all TARGET_ENHANCED with
+ AVR_ENHANCED.
+ (*mov_r_sp): Removed. Handled by output_movhi.
+ (*mov_sp_r): Likewise.
+ (*mov_sp_r_no_interrupts): Likewise
+ (*mov_sp_r_tiny): Likewise.
+ (*movqi): Use output_movqi.
+ (*reload_inqi): New.
+ (*movhi): Use output_movhi.
+ (*reload_inhi): New.
+ (*negsi2): Optimized.
+ (*negsf2): Likewise.
+ Added peepholes (define_peephole2) for loading constants to r0-r14
+ and for using `cpse' command.
+
+ * config/avr/libgcc.S: Rename library functions to start with two
+ underscores.
+ Add support for enhanced core.
+ (_moqhi3): Fix typo, now _modqi3.
+ (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
+ (__prologue_saves__): Remove test for stack adjust by 0.
+ (__tablejump__): New.
+
+ * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
+ Add multilib support.
+
+Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
+
+ * loop.c (prescan_loop): Don't check unknown_address_altered
+ when deciding if insert_loop_mem is safe. Add BLKmode MEMs
+ to loop_store_mems as necessary.
+ (loop_invariant_p): Don't check unknown_address_altered
+ or unknown_constant_address_altered.
+
+2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
+
+2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
+ print just the filename.
+ * cpplex.c (_cpp_run_directive): Add additional argument, the
+ name to give the synthetic buffer. This defaults to
+ translated "<command line>".
+ * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
+ Adjust to match.
+ (_cpp_define_builtin): New function.
+ * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
+ * cpphash.h: Update prototypes.
+
+ * tradcpp.c (main): Process -D and -U simultaneously, in the
+ order they appeared on the command line.
+
+2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (define_label): Call warning_with_file_and_line and
+ error_with_file_and_line instead of plain warning or error.
+
+ * c-parse.in (label): Use save_filename/save_lineno to ensure
+ correct values for calls to define_label.
+
+2000-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ * calls.c (expand_call): Don't create a VAR_DECL just to throw it
+ away.
+ * expr.c (expand_expr, case TARGET_EXPR): Don't call
+ mark_addressable.
+ * tree.h (get_file_function_name): Remove two duplicate
+ declarations.
+
+2000-08-28 Kazu Hirata <kazu@hxi.com>
+
+ * tree.c: Fix formatting.
+
+ * xcoffout.c: Fix formatting.
+
+2000-08-28 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
+
+2000-08-28 Daniel Berlin <dberlin@redhat.com>
+
+ * dwarf2out.c (dwarf2out_finish): Don't bother calling
+ break_out_includes if it won't do anything.
+
+2000-08-28 Richard Henderson <rth@cygnus.com>
+
+ * reload.c (push_secondary_reload): Revert 2000-08-16 change.
+ (find_reloads): Likewise.
+ * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
+ (reload_inhi): Likewise.
+
+2000-08-28 Richard Henderson <rth@cygnus.com>
+
+ * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
+ (call_insn_operand): Don't expect a surrounding mem.
+ (constant_call_address_operand): Likewise.
+ * config/i386/i386.h (PREDICATE_CODES): Update.
+ * config/i386/i386.md (call patterns): Move the match_operand
+ for the call destination inside the mem.
+
+2000-08-28 Richard Henderson <rth@cygnus.com>
+
+ * local-alloc.c (requires_inout): Don't use reserved range for
+ EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
+ * recog.c (asm_operand_ok): Likewise.
+ (preprocess_constraints, constrain_operands): Likewise.
+ * regclass.c (record_reg_classes): Likewise.
+ * reload.c (find_reloads): Likewise.
+ * reload1.c (maybe_fix_stack_asms): Likewise.
+ (reload_cse_simplify_operands): Likewise.
+ * stmt.c (expand_asm_operands): Likewise.
+
+ * md.texi: Update constraints documentation.
+ * tm.texi (EXTRA_CONSTRAINT): Update.
+
+2000-08-28 Daniel Berlin <dberlin@redhat.com>
+
+ * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
+ (print_die): If we don't know the offset of the
+ target die, try the symbol. Add a trailing newline.
+ (reverse_all_dies): New fn.
+ (dwarf2out_finish): Call it.
+ (break_out_includes): Reorganize for clarity.
+ (add_sibling_attributes): Don't call reverse_die_lists.
+ (output_comp_unit): Rename from output_comdat_comp_unit. Use for
+ primary CU, too.
+ * flags.h: Add flag_eliminate_dwarf2_dups.
+ * toplev.c (f_options): Support -feliminate-dwarf2-dups.
+
+2000-08-28 Jason Merrill <jason@redhat.com>
+
+ * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
+ * dwarf2out.c: #include "md5.h".
+ (DIE_LABEL_PREFIX): New macro.
+ (dw_val_struct): Add 'external' flag to val_die_ref.
+ (add_AT_die_ref, AT_ref): Adjust.
+ (AT_ref_external, set_AT_ref_external): New fns.
+ (build_abbrev_table): Call set_AT_ref_external.
+ (value_format): Call AT_ref_external.
+ (die_struct): Add die_symbol field.
+ (new_die): Clear it.
+ (dwarf_tag_name): Handle BINCL/EINCL.
+ (dwarf2out_start_source_file): Add BINCL DIE.
+ (dwarf2out_end_source_file): Add EINCL DIE.
+ (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
+ (loc_checksum, attr_checksum, die_checksum): New fns.
+ (is_type_die, is_comdat_die, is_symbol_die): New fns.
+ (compute_section_prefix, assign_symbol_names): New fns.
+ (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
+ (output_die): Call output_die_symbol and AT_ref_external.
+ (output_comdat_comp_unit): New fn, split out from...
+ (dwarf2out_finish): ...here. Also call add_sibling_attributes for
+ secondary CUs.
+ (output_pubnames, output_aranges): Abort if we see entries from
+ secondary CUs.
+ * toplev.h: Declare file_name_nondirectory.
+ * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
+ (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
+ (debug_start_source_file): Call dwarf2out_start_source_file
+ regardless of debug verbosity.
+ (debug_end_source_file): Similarly.
+ * tree.h: Declare clean_symbol_name.
+ * tree.c (clean_symbol_name): Split out from...
+ (get_file_function_name_long): ...here.
+
+ * dwarf2out.c (new_loc_descr): Use calloc.
+ (splice_child_die): Remove the die from the right parent.
+ (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
+
+Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * toplev.c (decode_g_option): Don't give warning for unknown -g
+ option; return 0 instead.
+ (main): If -g option is not recognized by front end or
+ language-independent code, give warning.
+
+2000-08-28 Greg McGary <greg@mcgary.org>
+
+ * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
+ * config/i386/i386.c (ix86_expand_compare): Remove `static'.
+ * config/i386/i386.md (trap, conditional_trap): New insn & expand.
+
+2000-08-27 Greg McGary <greg@mcgary.org>
+
+ * cpplex.c (parse_string): Don't look for backslash
+ before first char in `namebuf'.
+ * loop.c (strength_reduce): Skip NOTEs.
+
+2000-08-27 Jason Merrill <jason@redhat.com>
+
+ * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
+ DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
+ TREE_ASM_WRITTEN, either.
+ (finish_decl): Adjust.
+
+2000-08-28 Philipp Thomas <pthomas@suse.de>
+
+ * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
+ they have been incorporated into the gettext CVS. Change the text to
+ reflect the current status of NLS. Add instructions for accessing
+ the gettext CVS and add the patch from Martin v. Loewis.
+
+2000-08-27 Geoff Keating <geoffk@cygnus.com>
+
+ * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
+ by using gen_lowpart_common.
+ (movdi_internal64+6): Likewise.
+
+2000-08-26 Alexandre Oliva <aoliva@redhat.com>
+
+ * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
+ Document.
+
+ * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
+ numbers to the ranges used by GDB.
+
+2000-08-25 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.h (struct machine_function): Add n_varargs.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
+ (ia64_expand_prologue): Likewise.
+ (ia64_setup_incoming_varargs): Set it. Properly skip the current
+ argument for stdargs.
+
+2000-08-25 Jason Merrill <jason@redhat.com>
+
+ * integrate.c (expand_inline_function): Pull out the original decl.
+
+2000-08-25 Jim Wilson <wilson@cygnus.com>
+
+ * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
+
+ * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
+
+2000-08-25 Greg McGary <greg@mcgary.org>
+
+ * flow.c (dump_edge_info): Use ARRAY_SIZE.
+ * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
+
+2000-08-25 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.h (STRUCT_VALUE): Define to 0, not NULL.
+
+Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
+
+ * i386.c (ix86_find_base_term): New.
+ * i386-protos.h (ix86_find_base_term): Prototype.
+ * i386.h (FIND_BASE_TERM): Define.
+ * alias.c (find_base_term): Use it.
+ * tm.texi (FIND_BASE_TERM): Document it.
+
+ * alias.c (true_dependence, write_dependence_p): Unchanging
+ memory can't conflict with non-unchanging memory.
+
+ * alias.c (memrefs_conflict_p): A BLKmode reference
+ to a symbol (or CONST_INT address) always conflicts
+ with a reference to another symbol.
+
+2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.c (time_char_table): Don't allow width and flags with
+ "z" format.
+
+2000-08-25 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
+ way as LT and LTU when the second operand has 0 in low word.
+
+2000-08-26 Michael Hayes <mhayes@cygnus.com>
+
+ * basic-block.h (struct loop): Rename `exits' field to
+ `exit_edges'. Add `entry_edges' and `num_entries' fields.
+
+ * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
+ (flow_loop_entry_edges_find): Add.
+ (flow_edge_list_print): Rename from flow_exits_print.
+ (flow_loops_find): Call flow_loop_entry_edges_find.
+ (flow_loop_dump): Dump entry_edges list.
+ (flow_loops_free): Free entry_edges.
+
+2000-08-26 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.c (loop_dump_aux, debug_loop): New functions.
+ (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
+
+ * flow.c (flow_loops_dump): Add callback parameter.
+ (flow_loop_dump): Add callback parameter and call it. Move
+ loop note debugging code to loop_dump_aux.
+
+ * basic-block.h (flow_loop_dump): Add callback parameter
+ (flow_loops_dump): Likewise.
+
+ * toplev.c (rest_of_compilation): Add NULL callback function pointer
+ to call to flow_loops_dump.
+
+2000-08-26 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.c (count_loop_regs_set): Replace start and end arguments
+ with loop argument. All callers udated.
+
+2000-08-26 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.c (constant_high_bytes): Delete.
+
+2000-08-26 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
+ and NOTE_INSN_LOOP_VTOP to...
+ (find_and_verify_loops) ...here.
+
+Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
+
+ * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
+ (fini_dummy, init_dummy): Use it.
+
+Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
+
+ * cpplex.c (is_macro_disabled): Caller has already checked
+ that we're not a preprocessed file.
+
+2000-08-24 Mark Mitchell <mark@codesourcery.com>
+
+ * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
+ (c-iterate.o): Remove target.
+ * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
+ * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
+ (finish_decl): Don't handle iterators.
+ (grokdeclarator): Likewise.
+ * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
+ * gcc/c-gperf.h: Regenerated.
+ * gcc/c-iterate.c: Removed.
+ * gcc/c-lex.c (init_lex): Don't handle iterators.
+ * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
+ (compstmt_primary_start): Remove push_iterator_stack call.
+ (stmt): Don't allow iterator statements. Replace iterator_expand
+ with expand_expr_stmt.
+ (all_iter_stmt): Remove.
+ (all_iter_stmt_simple): Likewise.
+ (all_iter_stmt_with_decl): Likewise.
+ * gcc/c-tree.h (ITERATOR_P): Remove.
+ (ITERATOR_BOUND_P): Likewise.
+ (init_iterators): Remove declaration.
+ (iterator_expand): Likewise.
+ (iterator_for_loop_start): Likewise.
+ (iterator_for_loop_end): Likewise.
+ (iterator_for_loop_record): Likewise.
+ (push_iterator_stack): Likewise.
+ (pop_iterator_stack): Likewise.
+ * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
+ (readonly_warning): Likewise.
+ * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
+
+2000-08-24 Jim Wilson <wilson@cygnus.com>
+
+ * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
+ Copy type in a TYPE_DECL, just like pushdecl does.
+
+2000-08-24 Richard Henderson <rth@cygnus.com>
+
+ * toplev.c (main): Enable flag_reorder_blocks at -O2.
+
+2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
+
+ * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
+ asked for one page, allocate GGC_QUIRE_SIZE of them and put
+ the extras on the free list.
+ (release_pages): Clean up.
+ (ggc_set_mark): Don't adjust G.allocated here...
+ (sweep_pages): ... do it here.
+
+2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cppfiles.c (read_include_file): Rearrange initializations.
+
+2000-08-24 Richard Henderson <rth@cygnus.com>
+
+ * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
+
+ * config/ia64/ia64-protos.h: Update.
+ * config/ia64/ia64.c (gr_register_operand): New.
+ (fr_register_operand, grfr_register_operand): New.
+ (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
+ (grfr_reg_or_8bit_operand): New.
+ (gr_reg_or_0_operand): Rename from reg_or_0_operand and
+ use gr_register_operand.
+ (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
+ (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
+ (gr_reg_or_8bit_and_adjusted_operand): Likewise.
+ (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
+ (fr_reg_or_fp01_operand): Likewise.
+ (not_postinc_memory_operand): New.
+ (ia64_split_timode): Remove unused variables.
+ (rtx_needs_barrier): Check arguments to cmpxchg.
+ (builtin_description): Remove.
+ (bdesc_2argsi, bdesc_2argdi): Remove.
+ (ia64_init_builtins): Declare all builtins directly.
+ (ia64_expand_fetch_and_op): Rewrite to be called from
+ ia64_expand_builtin directly. Use expand_binop and co.
+ (ia64_expand_op_and_fetch): Likewise.
+ (ia64_expand_compare_and_swap): Likewise.
+ (ia64_expand_binop_builtin): Remove.
+ (ia64_expand_lock_test_and_set): New.
+ (ia64_expand_lock_release): New.
+ (ia64_expand_builtin): Use them.
+ * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
+ (EXTRA_CONSTRAINT): Use it.
+ (PREDICATE_CODES): Update.
+ * config/ia64/ia64.md (*): Use gr_register_operand and co.
+ (mf): Indicate that we set memory as well as use it.
+ (fetchadd_acq_si): Show memory being modified as well.
+ (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
+ (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
+ (lock_test_and_set_si, lock_test_and_set_di): Remove.
+ (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
+ (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
+ (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
+ (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
+ (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
+ (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
+ (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
+ (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
+ * config/ia64/ia64intrin.h (*): Cast result to the appropriate
+ return type. Pretty print definitions.
+
+2000-08-24 Jim Wilson <wilson@cygnus.com>
+
+ * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
+ we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
+
+2000-08-24 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
+ AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
+ (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
+ get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
+
+2000-08-24 Greg McGary <greg@mcgary.org>
+
+ * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
+ and extendtab within their proper array boundaries.
+ * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
+ for the entire array.
+
+ * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
+ * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
+ * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
+ * config/fr30/fr30.c (fr30_print_operand): Likewise.
+ * config/i386/dgux.c (output_options): Likewise.
+ * config/i386/dgux.h (ASM_FILE_START): Likewise.
+ * config/m88k/m88k.c (output_options): Likewise.
+ * config/m88k/m88k.h (ASM_FILE_START): Likewise.
+ * config/mcore/mcore.c (mcore_output_inline_const_forced,
+ layout_mcore_frame, handle_structs_in_regs): Likewise.
+ * config/mips/mips.c (output_block_move): Likewise.
+ * config/rs6000/rs6000.c (rs6000_override_options,
+ rs6000_file_start): Likewise.
+ * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
+ * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
+ * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
+ * builtins.c (expand_builtin_setjmp): Likewise.
+ * expr.c (safe_from_p): Likewise.
+ * flow.c (life_analysis): Likewise.
+ * fold-const.c (size_int_type_wide): Likewise.
+ * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
+ * genattrtab.c (make_length_attrs): Likewise.
+ * genopinit.c (gen_insn): Likewise.
+ * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
+ * global.c (global_alloc): Likewise.
+ * local-alloc.c (find_free_reg): Likewise.
+ * mips-tdump.c (print_symbol): Likewise.
+ * mips-tfile.c (parse_def, parse_input): Likewise.
+ * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
+ * stmt.c (expand_nl_goto_receiver): Likewise.
+ * stor-layout.c (set_sizetype): Likewise.
+ * varasm.c (decode_reg_name): Likewise.
+ * toplev.c (decode_f_option, decode_W_option,
+ set_target_switch, print_switch_values): Likewise.
+ (NUM_ELEM): Remove macro.
+ (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
+
+2000-08-24 Greg McGary <greg@mcgary.org>
+
+ * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
+ (MAIN_NAME_P, main_identifier_node): New macros.
+ * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
+ * c-decl.c (start_decl, grokdeclarator, start_function,
+ store_parm_decls, finish_function): Use MAIN_NAME_P.
+ * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
+ * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
+ * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
+ * config/pdp11/pdp11.c (output_function_prologue): Likewise.
+
+2000-08-24 Greg McGary <greg@mcgary.org>
+
+ * cppfiles.c (actual_directory): Don't write beyond `dir'
+ when it contains "".
+ * real.c (asctoeg): Stay within bounds of etens[][].
+
+2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * dependence.c (dependence_string, direction_string,
+ dump_one_node, dump_node_dependence): Hide unused identifiers.
+ (get_low_bound, normalize_coefficients): Match definition to
+ static prototype.
+ (get_one_coefficient): Initialize variables `value0_is_idx' and
+ `value1_is_idx'.
+ (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
+ (ziv_test): Delete variable `idx', use parameter `sub' instead.
+ (direction_merge): Avoid automatic aggregate initialization.
+ (have_dependence_p): Use `src' not `dest' to set `src_idx'.
+ Initialize variables `dest_idx' and `src_idx'.
+ (end_dependence_analysis): Avoid C89 style function definition.
+
+2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.c (time_char_table): Don't allow width with %F.
+ (check_format_info): Don't allow "Z" length with scanf.
+
+2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * diagnostic.c (finish_diagnostic): Define.
+ (output_do_printf): Use wrap_text instead of output_add_string.
+ (default_print_error_function): Avoid embedded '\n'.
+
+ * diagnostic.h (flush_diagnostic_buffer): Declare.
+
+2000-08-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
+
+2000-08-23 Hans-Peter Nilsson <hp@axis.com>
+
+ * Makefile.in (GCC_PASSES): Add specs.
+
+2000-08-23 Jim Wilson <wilson@cygnus.com>
+
+ * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
+ * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
+ EHANDLER nor UHANDLER bit is set.
+ (__get_except_table): Likewise.
+
+2000-08-23 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/lib1funcs.asm: Replace upper case condition codes
+ with lower case versions.
+
+ * config/arm/arm.h (STRUCT_VALUE): Define.
+ (STRUCT_VALUE_REGNUM): Delete.
+
+2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cpphash.h (IN_I): New flag for directive table.
+ * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
+ #pragma with IN_I.
+ (_cpp_check_directive): If -fpreprocessed, execute directives
+ marked with IN_I. Issue no warnings in this case.
+ * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
+
+2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
+ %u.
+ (check_format_info): Support printf 'I' flag; warn about it with
+ -pedantic.
+
+2000-08-23 Richard Earnshaw (rearnsha@arm.com)
+
+ * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
+ barrier can't be ignored by the alias analysis code.
+
+2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
+ works inside fixincl.
+
+Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
+
+ * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
+ simplify_relational_operation() unless both operands are of
+ VOIDmode.
+ * cse.c (fold_rtx): Likewise.
+
+Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
+
+ * rtlanal.c (rtx_unstable_p): The pic register is stable
+ (within one function) and the actual rtx should be used
+ when checking the registers.
+ (rtx_addr_can_trap_p): Pic memory addresses can't trap.
+
+ * alias.c (true_dependence, write_dependence_p): Fix
+ bug in previous patch.
+
+ * i386.c (ix86_GOT_alias_set): New.
+ (legitimize_pic_address): Use it.
+
+ * rtlanal.c (rtx_unstable_p): An unchanging MEM is
+ only stable if its address is stable.
+ (rtx_varies_p): An unchanging MEM can't vary if
+ its address doesn't vary.
+