diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 775db9991bf..4d0cd5ea9b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -14947,14472 +14947,4 @@ Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson * expmed.c (emit_store_flag): Prevent losing a pending stack adjust the same way we prevent losing queued increments. -Fri Dec 31 19:10:31 1999 Richard Kenner - - * function.c (update_temp_slot_address): Handle case where sum of - temporary address plus offset in register is a valid address. - -1999-12-30 Herman A.J. ten Brugge - - * genrecog.c (change_state) Corrected typo. - -1999-12-30 Kaveh R. Ghazi - - * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free, - getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc, - strerror, getrlimit, setrlimit, abort): Add prototype arguments. - -1999-12-30 Bernd Schmidt - - * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE - case, expand GT comparisons correctly. Fix a comment before this - part of the code. - -1999-12-30 Gabriel Dos Reis - - * dwarfout.c: Include "frame.h" - * dwarf2out.c: Likewise. - * Makefile.in (dwarfout.o): Depend on frame.h - (dwarf2out.o): Likewise. - -1999-12-29 "Martin v. Loewis" - - Restore i386 binary compatibility in Dwarf EH info. - * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old - value of FIRST_PSEUDO_REGISTER. - * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER. - (struct frame_state): Use DWARF_FRAME_REGISTERS. - * dwarfout.c (output_reg_number): Ditto. - * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto. - (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS. - -1999-12-29 Bruce Korb - - * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK - * fixinc/fixincl.tpl(TEST_CT): Just do the existence test once - (_RE_CT): not needed - * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c - rewritten to scan the file text once only - "template<..." test added - * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c - (is_cxx_header): declaration added - * fixinc/fixtests.c(is_cxx_header): removed - (apply_fix_p_t): removed - (double_slash_test): is_cxx_header is only called once now - * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG - * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state - within the templates. - The borken spelling of "broken" was fixed. - * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages - The default level depends on FIXINC_DEBUG. - -1999-12-29 Kaveh R. Ghazi - - * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h. - Otherwise provide a declaration for atexit. - (init_dummy): Make sure dummy call to atexit is nevertheless - called with correct number of args. - - * frame.c: Update comments referring to other files. - - * libgcc2.c: Likewise. - -1999-12-29 Kaveh R. Ghazi - - * cse.c (free_element, get_element): Remove unused prototypes. - - * fold-const.c (extract_muldiv): Initialize variables `op0' and - `op1'. - - * jump.c (invert_exp): Add explicit braces to avoid ambiguous - `else' clauses. - -Wed Dec 29 12:44:54 1999 Donald Lindsay - - * configure.in,configure: case arm for mn10200-*-* now sets - float_format=i32 so that float.h will correctly claim "double" - to be 32 bits. Ran autoconf to generate configure from .in file. - -Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (conditional zero): If op1 is a register, force it into - the same register as op0. - -1999-12-28 Mark Mitchell - - * tree.h (BINFO_BASETYPES): Improve documentation. - -1999-12-28 Kaveh R. Ghazi - - * configure.in (--enable-checking): Use a more portable `for' - loop syntax. - -1999-12-28 Kaveh R. Ghazi - - * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h, - arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use. - - * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h: - Delete files. - - * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED): - Delete descriptions. - - * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h, - m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h, - m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h, - pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h, - xm-svr4.h: Remove all instances of sys_siglist handling. - -1999-12-27 Jakub Jelinek - - * config/sparc/sparc.md (cmp_zero_qi, - cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64, - cmp_zero_extendqidi2_andcc_set): New patterns. - -1999-12-28 Manfred Hollstein - - * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a. - (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define. - (fpgnulib.c, xfgnulib.c): Add rules. - * m68k/t-mot3300-gas: Likewise. - -1999-12-27 Ian Lance Taylor - - * configure.in: Avoid [[ by using test and changequote. Add - changequote required by 1999-12-14 change. - * configure: Rebuild. - -1999-12-27 Clinton Popetz - - * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix. - -1999-12-27 Christophe Jaillet - - * alias.c (nonlocal_reference_p): Add else for disjoint ifs. - * flow.c (find_use_as_address): Likewise. - * function.c (fixup_var_refs_1): Likewise. - (walk_fixup_memory_subreg, fixup_stack_1): Likewise. - * jump.c (invert_exp, redirect_exp): Likewise. - * loop.c (replace_call_address): Likewise. - (count_nonfixed_reads): Likewise. - * rtlanal.c (modified_between_p): Likewise. - (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise. - (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise. - * unroll.c (remap_split_bivs): Likewise. - -1999-12-27 Kaveh R. Ghazi - - * diagnostic.c (v_message_with_decl): Use .* format specifier - instead of building the format specifier width manually. - - * system.h (strsignal): Don't check HAVE_STRSIGNAL when - determining whether to provide a prototype. Remove the - sys_siglist clause in the conditional. - -1999-12-23 Martin v. Löwis - - * fold-const.c (operand_equal_p): Use memcmp to compare string - constants. - Suggested by D. J. Bernstein - -1999-12-17 Jakub Jelinek - - * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure - UNITS_PER_WORD and BITS_PER_WORD are compile time constants when - compiling libgcc2. - * config/mips/mips.h (TARGET_64BIT): Likewise. - * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise. - * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead - of {SI,DI}type and DIunion. Define these types to QI/HI modes on - dsps. Give routines proper names if SI/DI modes are not used. - * longlong.h: Use DWunion instead of DIunion. - -1999-12-26 Zack Weinberg - - * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING, - GC_CHECKING, GC_ALWAYS_COLLECT. - * configure.in: Allow --enable-checking with an argument - listing check modes to enable. - * config.in, configure: Rebuilt. - * ggc-page.c, ggc-simple.c: Define GGC_POISON (and - GGC_ALWAYS_VERIFY for ggc-simple.c) only if - ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if - ENABLE_GC_ALWAYS_COLLECT. - * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING - throughout. - * tree.h, tree.c: Change ENABLE_CHECKING to - ENABLE_TREE_CHECKING throughout. - -Sun Dec 26 07:48:20 1999 Richard Kenner - - * fold-const.c (fold_truthop): Properly check for FP RHS. - -1999-12-24 Mark Mitchell - - * toplev.h (note_deferall_of_defined_inline_function): Declare. - * toplev.c (note_deferral_of_defined_inline_function): New - function, split out from ... - (rest_of_compilation): ... here. Use it. - -Fri Dec 24 12:34:26 1999 Richard Kenner - - * expr.c (store_constructor): Don't call clear_storage if size is - variable. - -1999-12-24 Kaveh R. Ghazi - - * Makefile.in (toplev.o): Depend on loop.h. - - * dwarfout.c: Include tm_p.h. - - * emit-rtl.c (restore_emit_status): Mark parameter with - ATTRIBUTE_UNUSED. - - * final.c (final_scan_insn): Likewise. - - * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump, - flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find, - flow_depth_first_order_compute, flow_loop_pre_header_find, - flow_loop_tree_node_add, flow_loops_tree_build, - flow_loop_level_compute, flow_loops_level_compute, - flow_loop_outside_edge_p): Add prototypes. - (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED. - - * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack): - Mark with ATTRIBUTE_NORETURN. - - * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED. - - * local-alloc.c (no_conflict_p): Likewise. - - * loop.c (insert_bct): Hide definitions of variables with hidden - usage. - (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED. - - * regclass.c (memory_move_secondary_cost): Mark variable `mem' - with ATTRIBUTE_UNUSED. - (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED. - (reg_scan): Likewise. - - * reload.c (find_reloads): Remove unused variables `changed'. - - * reload1.c (reload_reg_class_lower): Don't unnecessarily cast - away const-ness. - (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED. - Remove unused variable `insn'. - - * toplev.c: Include loop.h. - (report_file_and_line): Remove unnecessary prototype. - - * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED. - - * unroll.c (biv_total_increment): Likewise. - -Thu Dec 23 23:15:22 1999 J"orn Rennecke - - * reload1.c (emit_input_reload_insns): Restore old behaviour - wrt. 'special' reloads. - -1999-12-23 Zack Weinberg - - * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on - hash.h. (cse.c): Don't depend on hashtab.h. - - * cse.c: Don't include hashtab.h. - (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes - of dead functions. - * ggc-simple.c: Don't include hash.h. - -1999-12-22 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Call - gen_abstract_function on our function context. - -Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson - - * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H. - -1999-12-23 Michael Hayes - - * config/c4x/c4x.c (c4x_address_cost): Add statement to default - case in switch. - -1999-12-22 Michael Hayes - - * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0 - constraints to "a!r". - -1999-12-21 Mark Mitchell - - * Makefile.in (calls.o): Depend on function.h. - (alias.o): Likewise. - -1999-12-21 Bernd Schmidt - - * reload1.c (emit_reload_insns): Break out code and variables into... - (input_reload_insns, other_input_address_reload_insns, - other_input_reload_insns, input_address_reload_insns, - inpaddr_address_reload_insns, output_reload_insns, - output_address_reload_insns, outaddr_address_reload_insns, - operand_reload_insns, other_operand_reload_insns, - other_output_reload_insns): ... new static variables, and... - (emit_input_reload_insns, emit_output_reload_insns, do_input_reload, - do_output_reload): ... new functions. - -Tue Dec 21 07:06:36 1999 Richard Kenner - - * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0. - -1999-12-21 Michael Hayes - - * md.texi: Add c4x constraints documentation. - -1999-12-21 Martin v. Löwis - - * config/i386/dgux.c (struct option): Rename to - lang_independent_option. - (struct m_options): Add description field. - (output_options): Rename option type, add sep declaration, output - ix86_cpu_string and ix86_arch_string only if set. - (output_file_start): Rename option type. - -Mon Dec 20 23:15:36 1999 Mike Stump - - * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on - stmp-int-hdrs. - (libgcc2.a): Similarly. - -Mon Dec 20 23:06:47 1999 David Edelsohn - - * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss - with W_TYPE_SIZE == 32. Do not fall through to POWER architecture - for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER. - -Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable. - Remove redundant initialization of "frexpon" and "expon". - -Mon Dec 20 15:00:04 1999 Richard Kenner - - * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first. - - * expr.c (store_constructor): New argument SIZE; pass to clear_storage. - (store_constructor_field, expand_expr): Pass new arg. - -1999-12-20 Mark Mitchell - - * Makefile.in (explow.o): Depend on function.h. - - * stor-layout.c (set_sizetype): Fix typo. - -1999-12-20 Bernd Schmidt - - * function.c (cfun): Renamed from current_function. All users - changed. - * function.h (cfun): Rename declaration as well. - - * reload.h (struct insn_chain): Change live_throughout and dead_or_set - to be of type regset_head, not regset. All users changed by adding - address operator. - * reload1.c (new_insn_chain): Don't allocate regsets, just clear them. - -1999-12-20 Michael Hayes - - * config/c4x/rtems.h: New file. - -1999-12-19 Bernd Schmidt - - * reload1.c (spill_failure): Take class of failed reload as argument - and print it. Caller changed. - -Sun Dec 19 07:50:42 1999 Richard Kenner - - * rs6000.h (SUBTARGET_DEFAULT): New macro. - (TARGET_SWITCHES): Allow subtargets to default switches. - * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro. - -1999-12-18 Mark Mitchell - - * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize - in a main program. - -Sat Dec 18 20:42:43 1999 Richard Henderson - - * cccp.c (main): Define __STDC_VERSION__ as necessary. - * cppinit.c (cpp_handle_option): Likewise. - - * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to - determine when to define. - -Sat Dec 18 20:34:00 1999 Richard Henderson - - * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle - cmove with mismatched test and data modes. - -Sat Dec 18 20:30:15 1999 Richard Henderson - - * c-typeck.c (c_expand_start_case): Don't warn for long switch - in system headers. - -Sat Dec 18 16:28:43 1999 Richard Kenner - - * alias.c: Minor reformatting. - * flow.c: Likewise. - * regs.h: Likewise. - * stor-layout.c: Likewise. - * fold-const.c: Likewise. - (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign. - (struct cb_args, const_binop_1, const_binop): Pass type of arg, - not arg itself. - (size_int_wide): Cache nodes even if garbage collecting. - (twoval_comparison_p): Reenable SAVE_EXPR case if operand - of SAVE_EXPR has no side effects. - * cse.c: Move a comment. - * tree.c: Minor reformatting. - (int_size_in_bytes): Return -1 if constant overflows. - -Sat Dec 18 18:30:20 1999 J"orn Rennecke - - * unroll.c (copy_loop_body): Don't treat a REG like a PLUS. - -1999-12-18 10:42 -0800 Zack Weinberg - - * objc/objc-parse.c: Regenerate. This file must be rebuilt - after any change to c-parse.in, even if objc-parse.y didn't - change. Oops. - -1999-12-18 David S. Miller - - * toplev.c (rest_of_compilation): Restore BLOCK tree - reconstruction and branch shortening changes lost in - December 18th change. - -Sat Dec 18 05:29:29 1999 Scott Bambrough - - * config/arm/linux-elf.h: Change all instances of - ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS. - * config/arm/uclinux-elf.h: Likewise. - -1999-12-18 Gabriel Dos Reis - - * toplev.c (notice, vmessage, v_message_with_file_and_line, - v_message_with_decl, file_and_line_for_asm, - v_error_with_file_and_line, v_error_with_decl, v_error_for_asm, - verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl, - v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl, - v_pedwarn_with_file_and_line, vsorry, vnotice, count_error, - pfatal_with_name, fatal_io_error, need_error_newline, - last_error_function, last_error_tick, announce_function, - default_print_error_function, print_error_function, - report_error_function, fnotice, error_with_file_and_line, - error_with_decl, error_for_asm, error, set_fatal_function, fatal, - _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line, - warning_with_decl, warning_for_asm, warning, pedwarn, - pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to - diagnostic.c - (compile_file): Use fnotice instead of notice. Adjust call. - - * diagnostic.c: New file. - - * Makefile.in (OBJS): Include diagnostic.o - (diagnostic.o): Define dependence. - -1999-12-18 Michael Hayes - - * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0). - Tweak formatting. - -1999-12-18 Michael Hayes - - * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re. - -1999-12-17 13:21 -0800 Zack Weinberg - - * fixtests.c (is_cxx_header): New fn, split out of - double_slash_test. - (else_endif_label): Allow "#endif // comment" in C++ headers, - as determined by is_cxx_header. - * fixfixes.c (else_endif_label_fix): Update comment. - * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not - a tty. - * genfixes: Correct double thinko in commandline parsing. - * hackshell.tpl: Generate correct sh syntax for bypass - entries. - - * inclhack.def (all): Whenever an inserted preprocessor - conditional is split over multiple lines, use double - backslashes in this file so the fixed header will be readable. - - (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h - and add bypass entry for correct version of this header. - (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h. - (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h. - - (hpux8_bogus_inlines): New fix, split from... - (ultrix_atof_param) ... here. - (math_expression): Add bypass entry keyed to glibc comment - indicating the problem has been dealt with; disable - unnecessary sed operations; update commentary. - (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max, - add select and bypass entries, simplify shell operation. - (math_huge_val_ifndef): Split from math_gcc_ifndefs. - - (ip_missing_semi, rs6000_param, tinfo_cplusplus, - ultrix_atof_param): Add select entry. - (stdio_va_list, sunos_mather_decl): Add bypass entry. - (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the - comments with the fixes they describe. - - * c-parse.in (string action): Do not warn about ANSI string - concatenation in system headers. Affects C parser only. - * c-parse.y, c-parse.c, c-parse.h: Rebuild. - -1999-12-16 Jakub Jelinek - - * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if - compiling libgcc2 the macro depends always on arch cpp defines. - -Fri Dec 17 10:34:16 1999 Richard Earnshaw - - * loop.c (insert_loop_mem): Don't record MEMs from inside - EXPR_LISTs. - -Fri Dec 17 12:08:11 MET 1999 Jan Hubicka - - * regclass.c (regclass): Do not use flowgraph when not optimizing. - - * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV - notes too, create one when replacement failed, attempt to simplify - resulting notes. - (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL - or REG_EQUIV notes. - -1999-12-16 Mark Mitchell - - * crtstuff.c (__dso_handle): Declare. - (__cxa_finalize): Likewise. - (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is - non-NULL. - - * invoke.texi: Document -fuse-cxa-atexit. - - * tree.h (ptr_type_node): Document. - (const_ptr_type_node): Likewise. - -Fri Dec 17 01:32:38 MET 1999 Jan Hubicka - - * regmove.c (optimize_reg_copy_1): Ignore LOOP notes. - (optimize_reg_copy_2): Likewise. - (optimize_reg_copy_3): Likewise. - (fixup_match_2): Likewise. - (regmove_optimize): Likewise. - (fixup_match_1): Liekwise. - - * i386.md (HI to SImode promoting splitters): Rewrite. - (pushsf mem peep2): New. - (testhi to andhi peep2): Remove. - * i386.h (x86_promote_QImode): New. - (TARGET_PROMOTE_QImode): New. - (PREDICATE_CODES): Add promotable_binary_operator. - * i386.c (x86_promote_QImode0: New. - (promotable_binary_operator): New. - * i386-protos.h (promotable_binary_operator): New. - - * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify - condition. - (one_cmpl?i*): Pass "NOT" to unary_operator_ok. - -1999-12-16 Mark Mitchell - - * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H. - * function.c (insert_block_after_note): Remove. - (retrofit_block): Likewise. - (identify_blocks): Fix indentation. - (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a - NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END. - * function.h (insert_block_after_note): Remove prototype. - (retrofit_block): Likewise. - * integrate.c (expand_inline_function): Don't call - find_loop_tree_blocks. Use expand_start_bindings_and_block, not - just expand_start_bindings. Use the block_map to remap old - NOTE_BLOCKs to new ones. - (integrate_decl_tree): Keep track of remapped blocks. - * integrate.h (struct inline_remap): Add block_map. - * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set - NOTE_BLOCK on the notes. - (expand_start_bindings): Rename to ... - (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK. - (expand_end_bindings): Set NOTE_BLOCK. - * toplev.c (rest_of_compilation): In function-at-a-time-mode, - reconstruct the BLOCK tree. - * tree.h (expand_start_bindings): Macroize. Call ... - (expand_start_bindings_and_block): New function. - -1999-12-16 Jakub Jelinek - - * config/sparc/sparc.c (print_operand): Cast fprintf arguments - to match the format. - -1999-12-16 David S. Miller - - * expr.c (emit_move_insn_1): Only emit clobbers if one of - the outputs is a SUBREG. - * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th - change. - - * config/sparc/sparc.c (epilogue_renumber): Add default case - to switch stmt. - -Thu Dec 16 11:33:57 MET 1999 Jan Hubicka - - * toplev.c (rest_of_compilation): Run branch shortening after - reg-stack. - - * regclass.c (loop_depth): Remove - (scan_one_insn): Do not handle LOOP_NOTE insns. - (regclass): Go through basic blocks and set loop_cost - -Thu Dec 16 02:56:25 1999 Zack Weinberg - - * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too. - -Thu Dec 16 10:43:35 MET 1999 Jan Hubicka - - * i386.md (movqi): Use "nonimmediate_operand" for output operand. - (movstrictqi, movdi, movsf, movdf, movxf): Likewise. - (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise. - -Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com) - - * loop.c (insert_loop_mem): Ignore memory clobbers. - - * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0) - to (OP A B). - -Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com) - - * profile.c: Remove redundant #include "output.h". - - * h8300.md (HImode preinc peephole): Fix typo. - -1999-12-15 Jason Merrill - - * function.c (retrofit_block): Abort if we don't find a suitable insn. - (insert_block_after_note): Abort if we don't have a previous block. - Remove FN parameter. - * function.h: Adjust. - -1999-12-15 Mark Mitchell - - * builtins.c (expand_builtin_mathfn): Make sure not to expand the - argument more than once. - -1999-12-15 Jason Merrill - - * stmt.c (expand_decl): Expand upper bound of a dynamic array. - -1999-12-15 Jakub Jelinek - - * expr.c (emit_group_load): Use dst mode if src is VOIDmode. - -Wed Dec 15 16:11:55 MET 1999 Jan Hubicka - - * function.c (PREFERRED_STACK_BOUDNARY): Provide default value. - (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY, - update stack_alignment_needed. - (prepare_function_start): Initialize stack_alignment_needed - * function.h (struct function): Add field stack_alignment_needed. - -Wed Dec 15 14:55:24 1999 J"orn Rennecke - - * caller-save.c (insert_one_insn): Returns struct insn_chain *. - Handle live_throughout / dead_or_set instead of live_before / - live_after. - (save_call_clobbered_regs): Get register livenessinformation from - chain->live_throughout. - (add_stored_regs): New function. - (insert_restore, insert_save): Add restored / saved registers to - dead_or_set. - * global.c (reg_dies): New parameter chain. - (reg_becomes_live): Third parameter is regs_set now. - Changed all callers. - (reg_dies): New parameter chain. Changed all callers. - (build_insn_chain): Set live_throughout instead of - live_before / live_after. - * reload.h (struct insn_chain): Replace members live_before / - live_after with live_throughout / dead_or_set. - * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set - instead of live_before / live_after. - (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise. - (order_regs_for_reload, find_reg, finish_spills): Likewise. - (choose_reload_regs_init): Likewise. - * stupid.c (current_chain, find_clobbered_regs): Delete. - (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set - instead of chain->live_before / chain->live_after. - (mark_hard_ref): New function. - (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout. - -1999-12-15 David S. Miller - - * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT. - -Wed Dec 15 15:05:30 MET 1999 Jan Hubicka - - * flow.c (calculate_loop_depth): Make global, remove prototype, - rewrite to use new loop infrastructure. - (find_basic_block): Remove calculate_loop_depth call. - * toplev.c (rest_of_compilation): Call find_basic_block. - * output.h (calculate_loop_depth): Declare. - - * flow.c (dump_flow_info): Dump loop_depth. - (flow_loops_nodes_find): Increase loop_depth for basic block in the - body. - (flow_loops_find): Initialize the loop_depth for each basic block. - -1999-12-15 Jason Merrill - - * tree.c (decl_function_context): Handle virtual functions. - - * tlink.c (scan_linker_output): Don't look in demangled name when - looking for linker output keywords. - - * dwarfout.c (output_type): We can defer namespace-scope classes. - -Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com) - - * regclass.c (record_reg_classes): Update comment for merging - register class preferences in reg->reg copies. Tighten conditions - for merging register class preferences in reg->reg copies. - -Wed Dec 15 02:19:32 1999 David Edelsohn - - * rs6000.md (tablejumpdi): Generate DImode LABEL_REF. - -1999-12-14 Geoff Keating - - * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete. - (INIT_SECTION_ASM_OP): Delete. - (FINI_SECTION_ASM_OP): Delete. - (STARTFILE_SPEC): Define to hold just crtbegin.o. - -1999-12-14 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Do call abort if - the abstract origin wasn't emitted. - - * dwarf2out.c (class_scope_p): New fn. - (gen_subprogram_die): Use it. - (gen_variable_die): Use it. Tweak logic. - (gen_struct_or_union_type_die): Check context_die to determine - if we're function-local. - (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE. - -1999-12-14 Bernd Schmidt - - * loop.c (check_dbra_loop): Can't reverse a biv that has - maybe_multiple set. - -1999-12-14 Nick Clifton - - * config/arm/arm.c: Add support for -mcpu=arm720 command line - switch. - -Tue Dec 14 18:13:32 1999 J"orn Rennecke - - * loop.c (strength_reduce): Fix sign of giv lifetime calculation - for givs made from biv increments. - -Tue Dec 14 08:11:27 1999 Richard Henderson - - * configure.in (alpha-osf, alpha-linux): Handle ev6[78]. - * alpha.c (override_options): Recognize -mcpu=ev67. - * alpha.h (CPP_CPU_EV67_SPEC): New. - (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it. - (EXTRA_SPECS): Update. - -Tue Dec 14 08:04:28 1999 Richard Henderson - - * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as - appropriate for -lang-c89 and -std=*. - * cppinit.c (cpp_handle_option): Likewise. - (new_pending_define): New, split out from cpp_handle_option. - * gcc.c (default_compilers): Don't define __STRICT_ANSI__ - or enable trigraphs for -ansi/-std=*. - - * ginclude/stdarg.h (__va_copy): New. - (va_copy): Don't define for C89. - -Tue Dec 14 08:37:27 CST 1999 Clinton Popetz - - * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns - for long long multiply-accumulate. - -Tue Dec 14 13:51:38 MET 1999 Jan Hubicka - - * regclass.c (scan_one_insn): Set loop_cost to 1 when - optimizing for size. - -1999-12-14 Bernd Schmidt - - * reload1.c (reload): Can't avoid select_reload_regs/finish_spills - if something changed. Back out that part of yesterday's changes. - - * loop.c (loop_max_reg): New static variable. - (loop_optimize): Initialize it. Eliminate one unnecessary call to - max_reg_num. - (scan_loop): Call reg_scan_update whenever we may have added new - registers, and update loop_max_reg. - -Tue Dec 14 12:07:29 MET 1999 Jan Hubicka - - * regclass.c (record_reg_classes): Do not do the copying preferrencing - when source does not die. - - * regclass.c (record_reg_classes): Handle INOUT operands propertly. - -1999-12-14 Jakub Jelinek - - * config/sparc/linux64.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC - variants on Linux. - * config/sparc/linux.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Likewise. - * config/sparc/linux-aout.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Likewise. - - * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32. - (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64, - not %g2. - (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2 - as sparc64 block profiling register. - * config/sparc/sparc.c (sparc_override_options): Allow block - profiling with -m32. - (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block - profiling register. - * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these - macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64. - * config/sparc/sol2.h (MACHINE_STATE_*): Likewise. - - * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing - for sparc64. - * config/sparc/sparc.h: Likewise. - * config/sparc/xm-sysv4-64.h: Likewise. - * config/float-sparc.h: Likewise. - * glimits.h: Likewise. - * longlong.h: Likewise. - - * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1. - (ASM_IDENTIFY_GCC): Remove. - -1999-12-14 Bernd Schmidt - - * combine.c (combine_simplify_rtx): Don't make shared rtl. - (simplify_logical): Likewise. - -1999-12-14 Mumit Khan - - * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin. - * cppfiles.c (INO_T_EQ): Likewise. - -1999-12-14 Mumit Khan - - * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support. - * i386/mingw32.h (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * i386/uwin.h (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - - * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition. - * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise. - -Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com) - - * combine.c (combine_simplify_rtx): Fix order of checks for - (ashiftrt foo C) -> (lt foo (const_int 0)) simplification. - -1999-12-13 Clinton Popetz - - * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out - 12/10/99 change, reapplied to merged-arm-thumb-backend-branch. - -1999-12-10 Bernd Schmidt - - * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is - defined. - * regclass.c (inv_reg_alloc_order): New array. - (regclass_init): If REG_ALLOC_ORDER is defined, initialize it. - - * reload.h (struct insn_chain): Delete fields group_size, group_mode, - counted_for_groups, counted_for_nongroups. Add fields rld and - n_reloads. - * reload.c (push_secondary_reload): Don't set nongroup field of - new reloads. - (push_reload): Likewise. - (find_reloads): Delete code to compute nongroup fields. - * reload1.c (reload_insn_firstobj): New static variable. - (pseudos_counted, spilled_pseudos): Now of type regset_head. All - users changed. - (calculate_needs, find_tworeg_group, find_group, possible_group_p, - count_possible_groups, modes_equiv_for_class_p, new_spill_reg, - dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete - functions. - (count_pseudo, select_reload_regs, copy_reloads, find_reg): New - functions. - (struct hard_reg_n_uses): Deleted. - (potential_reload_regs): Deleted. - (init_reload): Initialize spilled_pseudos and pseudos_counted. - (reload): Don't try to allocate reload registers if we already know - we have to make another pass. Call select_reload_regs. Free memory - starting with reload_firstobj when starting another pass. - Don't allocate spilled_pseudos. - (calculate_needs_all_insns): Call copy_reloads for an insn that - needs reloads; don't call calculate_needs. - (spill_cost): New static array. - (used_spill_regs_local): New static variable. - (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code - to compute potential_reload_regs. - (find_reload_regs): Completely rewritten to use find_reg. - (allocate_reload_reg): Don't test counted_for_groups or - counted_for_nongroups. Lose NOERROR arg and code to give an error; - all cllers changed. - (choose_reload_regs): Add fallback code that uses the existing - register allocation from find_reload_regs. - -Mon Dec 13 00:54:14 1999 Philippe De Muyter - - * flow.c (create_edge_list): Cast xmalloc return value. - -Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com) - - * doprnt.c: Remove incorrect comment closure. - - * cse.c: Fix a few minor whitespace goofs. - -1999-12-13 Don Bowman - - * mips/vxworks.h: Fix problem with comment termination. - (EXTRA_SECTIONS): Add in_sbss. - (EXTRA_SECTION_FUNCTIONS): Corresponding changes. - -1999-12-12 David S. Miller - - * cse.c (struct cse_reg_info): Add hash_next member, - reorder rest of struct for better packing on 64-bit - hosts. - (cse_reg_info_tree): Kill. - (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash, - REGHASH_FN): New custom pow2 hash mechanism. - (NBUCKETS): Kill. - (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to - use a pow2 hash table. - (get_cse_reg_info): Rework to use new REGHASH. - (new_basic_block): Likewise, use HASH_SIZE, and inline - free_element call. - (remove_from_table): Rework to use HASH_SIZE/HASH_MASK, - and inline free_element call. - (lookup_as_function, insert, flush_hash_table, invalidate, - remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, - invalidate_for_call, use_related_value, find_comparison_args, - fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise. - (hash_cse_reg_info, cse_reg_info_equal_p, free_element, - get_element): Kill. - -Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_basic_block): Free qty_table consistently. - -1999-12-12 David S. Miller - Jakub Jelinek - - * config/sparc/sparc.md (movtf reg/reg split): Don't generate - SUBREGs by hand, gen the appropriate hard reg directly. - (movtf reg/mem split): Likewise and alter_subreg on destination - if necessary. - (movtf mem/reg split): Similarly. - (movdf_cc_sp64): Rename from hidden pattern. - (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64. - (movtf_cc_sp64, following split): New pattern and splitter. - (movdf_cc_reg_sp64): Rename from hidden pattern. - (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require - TARGET_HARD_QUAD. - (movtf_cc_reg_sp64, following split): New pattern and splitter. - -1999-12-12 Stephen L Moshier - - * loop.c (load_mems): Don't hoist written floating point mem - if -ffloat-store. - -1999-12-12 Mark Mitchell - - * except.h (struct eh_queue): Add `next' pointer. - (struct eh_status): Make x_ehqueue a pointer. - (push_ehqueue): Declare. - (pop_ehqueue): Likewise. - * except.c (expand_eh_region_end): Adjust now that ehqueue is a - pointer. - (expand_fixup_region_end): Likewise. - (expand_leftover_cleanups): Likewise. - (push_ehqueue): Define. - (pop_ehqueue): Likewise. - (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather - than doing it inline. - (expand_start_all_catch): Adjust now that ehqueue is a - pointer. - (mark_eh_queue): Mark all level of the queue. - (mark_eh_status): Adjust now that ehqueue is a - pointer. - (init_eh_for_function): Allocate ehqueue. - (free_eh_status): Free it. - * stmt.c (expand_cleanups): Save the ehqueue around the cleanup - expansion for a fixup. - -1999-12-12 Kaveh R. Ghazi - - * gthr-single.h (__gthread_active_p): Add prototype arguments. - - * libgcc2.c (__udivmoddi4): Remove unnecessary decls. - (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg, - __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret, - function_ptr, getpagesize, __enable_execute_stack, - __enable_execute_stack, __clear_insn_cache, - __enable_execute_stack, __do_global_dtors, __do_global_ctors, - _cleanup, _exit, __default_terminate, __terminate_func, - __terminate, __empty, __throw, new_eh_context, - eh_context_initialize, eh_context_static, eh_context_specific, - get_eh_context, __get_eh_context, __get_eh_info, - init_reg_size_table, eh_threads_initialize, - __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow, - __unwinding_cleanup, throw_helper, __throw, __rethrow, - __pure_virtual): Add prototype arguments. - (__bb_exit_func): Cast a sizeof to long when comparing against one. - Cast a signed value to unsigned long when comparing against one. - (new_eh_context): Wrap in _GTHREADS macro. - (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at - declaration. - (in_reg_window): Mark parameters with __attribute__ ((__unused__)). - (throw_helper): Initialize variables `handler_p' and `pc_p'. - -1999-12-11 Kaveh R. Ghazi - - * combine.c (record_promoted_value): Remove unused variable - `links2'. - - * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'. - - * global.c (record_conflicts): Likewise for `j'. - - * genoutput.c (output_insn_data): Don't unnecessarily cast away - const-ness. - -1999-12-11 Kaveh R. Ghazi - - * i386-protos.h (output_387_binary_op, output_fix_trunc, - output_fp_compare): Constify a char*. - - * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add - static prototypes. - (override_options, ix86_comp_type_attributes, print_operand, - output_387_binary_op, output_fix_trunc, output_fp_compare): - Constify a char*. - (ix86_sched_reorder): Mark parameter `clock_var' with - ATTRIBUTE_UNUSED. - - * i386.h (DEBUG_PRINT_REG): Constify a char*. - -Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco - - * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third - operand, for use in the Java front-end. - -1999-12-10 Ben Collins - - * configure.in: Fix typo for "-64" in 64bit as check. - * configure: Rebuilt. - -1999-12-10 Jakub Jelinek - - * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where - appropriate. - -1999-12-10 Kaveh R. Ghazi - - * c-parse.in (string): With -Wtraditional, warn if ANSI string - concatenation is utilized. - - * invoke.texi (-Wtraditional): Document it. - -1999-12-10 Kaveh R. Ghazi - - * flow.c (flow_loops_dump): Avoid ANSI string concatenation. - Cast a ptrdiff_t to long and pass it to printf with %ld. - -1999-12-10 Geoff Keating - - * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no - 68881, we have no 68881 registers at all. - (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT - value in a 68881 register if it is available. - -1999-12-10 Clinton Popetz - - * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns - for long long multiply-accumulate. - -1999-12-10 Bernd Schmidt - - * loop.c (insert_loop_mem): Undo last change. - -1999-12-10 David S. Miller - - * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p): - New functions. - * config/sparc/sparc-protos.h: Add them. - * config/sparc/sparc.h: Add them to PREDICATE_CODES. - (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S - constraints which use those helpers. - (EXTRA_CONSTRAINT): Use this new macro. - * md.texi: Update sparc target constraints documentation. - * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg, - movsf_const_high, movsf_const_lo, movsf_insn): Delete. - (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0, - movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns. - (movsf high/lo_sum split): Rework for new patterns. - (movsf expander): Allow storing fp_zero to memory if ! live_g0. - -1999-12-09 Gavin Romig-Koch - - * c-common.c (c_common_nodes_and_builtins): - Create __builtin_ptrdiff_t and __builtin_size_t. - -Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com) - - * pa/elf.h (MAX_OFILE_ALIGNMENT): Define. - -Fri Dec 10 00:53:10 1999 J"orn Rennecke - - * regclass.c (globalize_reg): Re-instate test that allows - fixed registers to be declared as a variable even after functions - are defined. - -Fri Dec 10 00:52:13 MET 1999 Jan Hubicka - - * i386.md (cpu attribute): Add "athlon". - (athlon_decode): New attribute. - (Athlon scheduling units definitions): New. - (fcmp and shld patterns): Set athlon_decode to "vector". - * i386.c (athlon_cost): New. - (m_ATHLON): New. - (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, - x86_use_sahf): Set for Athlon. - (x86_use_fiop): Unset for Athlon. - (override_options): Define Athlon alignments and "athlon" name. - (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon. - * i386.h (TARGET_ATHLON): New. - (enum processor_type): Add PROCESSOR_ATHLON. - (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__" - for CPU_DEFAULT==5 - (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon. - -1999-12-09 Andreas Jaeger - - * loop.c (record_biv): Declare parameter as int. - - * config/i386/i386-protos.h: Declare long_memory_operand. - -1999-12-09 Mark Mitchell - - * tree.c (copy_node): Do zero the TREE_CHAIN, even for an - EXPR_WITH_FILE_LOCATION. - -Thu Dec 9 11:36:24 MET 1999 Jan Hubicka - - * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand - in expander. - - * flow.c (recompute_reg_usage): Use basic block info to get loop_depth. - - * combine.c (try_combine, distribute_notes): Remove REG_N_REFS - updating code. - -1999-12-09 Jakub Jelinek - - * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs - default on linux64 again. - * config/sparc/t-linux64: Add mno-app-regs and non-medlow code - models for multilibing. - * genmultilib: Accept | as alternative separator within a set in - MULTILIB_OPTIONS. - - * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define. - - * calls.c (precompute_arguments): Make sure initial_value contains - value pseudo which CSE expects. - * cse.c (struct set): New entry orig_src. - (cse_insn): Set it early on entry, use it for libcall EQUIV note - replacement. - -Wed Dec 8 22:24:15 1999 Richard Henderson - - * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns. - -1999-12-08 Bernd Schmidt - - * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops. - -1999-12-08 Jakub Jelinek - - * config/sparc/sparc.c (ultra_cmove_results_ready_p, - ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix. - - * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits - if TARGET_ARCH32. - - * longlong.h: Merge in changes from glibc. - Also don't clobber %g2 register in 32bit SPARC assembly, so that - -mno-app-regs libgcc can be compiled. - * libgcc2.c: Add defines so that the updated longlong.h - can be used in libgcc2.a. Also, make sure on most architectures - (at least on all which have optimized code in longlong.h defined - for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests. - -1999-12-08 Alexandre Oliva - - * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that - `-m EMULATION' is added to non-default LINK_ARCH_SPECs. - * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker - is GNU ld. - * configure: Rebuilt. - -Wed Dec 8 03:45:40 1999 Richard Henderson - - * alpha.c (secondary_reload_class): For !BWX, sub-simode - outputs require a register. - -1999-12-08 Brendan Kehoe - - * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi - _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to - functions like dptoul will be resolved. - (libgcc2.a): Make sure that the object files from DPBIT are named - differently (prefix `_dp') from those that would be coming from - FPBIT. - -1999-12-08 Alexandre Oliva , Jakub Jelinek - - * configure.in: When target is sparc* and tm_file contains 64, - test for 64bit support in assembler. If not supported, remove - sparc/t-sol2-64 from target-dependent Makefile fragments. - (AS_SPARC64_FLAG): Define to the assembler flag for 64bit. - (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags. - (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache. - * acconfig.h (AS_SPARC64_FLAG): Added. - * configure, config.in: Rebuilt. - * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit - support. Use AS_SPARC64_FLAG. - -1999-12-07 Jakub Jelinek - - * 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 - - * 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 - - * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std - documentation. - -1999-12-06 David S. Miller - - * combine.c (check_promoted_subreg): Do not conditionalize this upon - PROMOTE_FUNCTION_RETURN. - -Mon Dec 6 15:12:14 1999 Jim Wilson - - * 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 - - * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be - zero if there was an error. - -1999-12-06 Jakub Jelinek - - * 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 - - * 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 - - * 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 - - * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro. - -1999-12-05 Jakub Jelinek - - * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi. - -1999-12-05 Mark Mitchell - - * 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 - - * 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 - - * 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 - - * flow.c (flow_loops_dump): Add missing argument when calling - flow_loop_nested_p. - -1999-12-04 Geoffrey Keating - Greg McGary - - * 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 - Geoffrey Keating - - * 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 - - * frame.c (fde_split): Reimplement to avoid variable sized array. - -Thu Dec 2 18:59:48 1999 J"orn Rennecke - - * 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 - - * invoke.texi: Document the mips option -mno-crt0 - -1999-12-02 Mike Karr - - * 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 - - * 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 - - * 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 - - * i386.md (extend?f?f2): Force the input into a register, not - the output. - -1999-12-01 Jakub Jelinek - - * config/sparc/sparc.md (movsf_const_intreg): Add constraints for - regclass' sake. - (movdf_const_intreg_sp32): Likewise. Prefer the memory load - alternative because setting up 64bit constant is usually costly, - especially when reload is in progress or completed. - (movdf_const_intreg_sp64): Likewise. - (movdf_const_intreg split): Fix building up constants when - HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit. - -Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com) - - * combine.c (if_then_else_cond): Use const_true_rtx instead of - const1_rtx for return values in EQ/NE comparison against (const_int 0) - case. - - * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers. - (asm_file_start): Emit .am33 into assembly file when compiling for - the AM33. - (print_operand_address): Handle POST_INC addresses. - (can_use_return_insn, initial_offset): Check AM33 registers too. - (expand_prologue): Check & save AM33 registers too. - (expand_epilogue): Similarly. - (secondary_reload_class): Handle AM33 specific secondary reloads. - (output_tst): Emit efficient code for the AM33 too. - * mn10300.h (CPP_SPEC, TARGET_AM33): Define. - (TARGET_SWITCHES): Add -mam33 switch. - (FIRST_PSEUDO_REGISTER): Handle new AM33 registers. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise. - (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise. - (enum reg_class, REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. - (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. - (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise. - (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise. - (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. - (HAVE_POST_INCREMENT): Define. - (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33. - (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address. - * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants. - (mulsi, andsi, iorsi, xorsi, notsi): Likewise. - (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise. - (zero_extend to SI from QI/HI): Likewise. - (sign_extend to SI from QI/HI): Likewise. - (mulsidi3, umulsidi3): New patterns for the AM33. - (tstsi with zero extension from QI/HI): Add AM33 variants. - (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too. - (return_internal_regs, store_movm): Handle new AM33 registers. - * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define. - (LIBGCC, INSTALL_LIBGCC): Likewise. - * invoke.texi: Document new flags. - -Fri Nov 26 10:59:12 CET 1999 Jan Hubicka - - * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition. - (addsi3_carry): Likewise. - (sbbsi3_cc): Add "binary_operator_ok" to the condition. - (sbbsi3_carry): Likewise. - (mulsi3): Rewrite to expander, ensure that only one operand is memory. - (mulhi3): Likewise. - (test?i_1): Ensure that only one operand is memory. - (conditional move patterns): likewise. - (shift and rotate patterns): Rewrite to expander, add - "binary_operator_ok" to the condition. - - * i386.md (QImode patterns): Remove '*' before the 'r' constraints. - * i386.h (procesor_costs): Add movzbl_load field. - (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in - non-Q registers, accept DImode registers anywhere. - (Q_CLASS_P): New. - (MEMORY_MOVE_COST): Calculate QImode moves correctly. - * i386.c (*_cost): Set value for movxbl_load field. - - * (addsi): New add to lea splitter. - (ashlsi): Likewise. - (lea to add/shift peep2): New. - -1999-12-01 Mark Salter - - * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0. - * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0. - * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0. - -Tue Nov 30 15:20:52 MET 1999 Jan Hubicka - - * i386.c (ix86_expand_move): Never add clobbers to move patterns. - * i386.md (movsi_xor): New. - (movsi_or): New. - (movsi_1, movhi_1, movqi_1): Remove. - (movsi_2): Rename to movsi_1. - (movhi_2): Rename to movhi_1. - (movqi_2): Rename to movqi_1. - (movdi_1): Remove; remove splitter. - (movdi_2): Rename to movdi_1. - (divmodsi4 splitter): Do not emit clobbers for move patterns. - (long move peep2): Do not create QI or HI mode mov0s - (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole. - - * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns, - rewrite splitters. - - * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives. - (abs?f2_if): Likewise. - -1999-11-30 Alex Samuel - - * ggc.h (ggc_test_and_set_mark): New macro. - (ggc_mark_rtx): Use ggc_test_and_set_mark. - (ggc_mark_tree): Likewise. - (ggc_mark_rtvec): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. - -1999-11-30 Jason Merrill - - * dwarf2out.c (scope_die_for): Only handle types. Only search for - containing types. - (decl_scope_table): Just an array of trees now. - (push_decl_scope): Simplify. - (dwarf2out_init): Adjust. - (local_scope_p): New fn. - (gen_inlined_enumeration_type_die): Don't call scope_die_for. - (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise. - (gen_typedef_die): Likewise. - (gen_lexical_block_die): Don't call push/pop_decl_scope. - (gen_inlined_subroutine_die): Likewise. - (gen_abstract_function): Set current_function_decl temporarily. - (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration. - Handle block extern declarations. Don't call push/pop_decl_scope. - (gen_decl_die): Fix logic for block externs. - -1999-11-30 Kaveh R. Ghazi - - * calls.c (special_function_p): Remove `realloc' and add `strdup' - to the list of functions which have attribute malloc by default. - -1999-11-30 Kaveh R. Ghazi - - * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an - integer constant does not match the traditional type, limit the - warnings to cases where the base of the type is ten. - - * invoke.texi (-Wtraditional): Document it. - -Tue Nov 30 15:18:35 1999 Franz Sirl - - * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST - * rs6000.md: Only access a CONST_INT with INTVAL - -Tue Nov 30 14:21:00 1999 Richard Henderson - - * lcm.c (compute_laterin): Cast bb->aux to size_t not int. - (compute_nearerout): Likewise. - * ggc-page.c (ggc_page_print_statistics): Explicitly cast - size_t to unsigned long for formatting. - -1999-11-30 Jakub Jelinek - - * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE): - Allow the user to override call-used/fixed state of %g2-5 - registers from the command line (with the exception of %g4 for - embedded model). - (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that - there is a higher chance of having a leaf function. - (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros - for ARCH64 which has %ccr register. - * config/sparc/sparc.md (return_losum_si, return_losum_di): New - patterns. - * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return - insn accept into delay slot any insn which does not use %[ol] - registers. Accept some LO_SUM and shift left by 1 for the normal - restore case. - (output_function_epilogue): Likewise. - (epilogue_renumber): Added argument which inhibits any renumbering - and just tests if the rtx does not use any %[ol] registers. - (output_return): Reflect above change. - -1999-11-30 Jakub Jelinek - - * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg - aggregate passing for sizes <= 16 bytes. - -1999-11-30 Bernd Schmidt - - * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P. - * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code. - * reload.c (find_dummy_reload): Likewise. - (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P. - * reload1.c (reload_as_needed): Likewise. - * stupid.c (stupid_find_reg): Likewise. - * tm.texi (Obsolete Register Macros): Delete section. - * gmicro.h: Remove all traces of the two macros. - * i386.h: Likewise. - * m88k.h: Likewise. - * mips.h: Likewise. - -1999-11-30 Brendan Kehoe - - * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define. - (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags. - (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs. - * sparc.md (sparclite86x_branch, sparclite86x_shift): New function - units for the sparclite86x chip. - (flush): Revert October 14th change; add SImode specifically. - (flushdi): Copy of flush, but DImode, to avoid genrecog warnings. - * invoke.texi: Document it. - -Tue Nov 30 14:58:14 1999 Nick Clifton - - * config/mn10200/mn10200.h (PREDICATE_CODES): Add - psimode_truncation_operand. - - * config/mn10200/mn10200.c (psimode_truncation_operand): New - function. Return true if the operand is either a MEM valid - for a PSImode address or not a MEM at all. - - * config/mn10200/mn10200.md (truncsipsi2): Use - psimode_truncation_operand. - -1999-11-30 Michael Hayes - - * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions. - (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise. - (flow_loop_exits_find, flow_loop_nodes_find): Likewise. - (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise. - (flow_loop_tree_node_add, flow_loops_tree_build): Likewise. - (flow_loop_level_compute, low_loops_level_compute): Likewise. - (flow_loops_find, flow_loop_outside_edge_p): Likewise. - * basic-block.h: Protect from multiple inclusion. - (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes. - (struct loops, struct loop): Define structures. - * sbitmap.c (sbitmap_a_subset_b_p): New function. - * sbitmap.h: Protect from multiple inclusion. - (sbitmap_a_subset_b_p): Add prototype. - * Makefile.in (LOOP_H): New macro. - (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H. - -Tue Nov 30 01:34:47 1999 Philippe De Muyter - - * cppinit.c (CAT): The argument list of this macro may not contain - spaces ! - -1999-11-29 David S. Miller - - Move quantity tables and register equivalence chains into - per-qty and per-register structure arrays respectively. - * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const, - qty_const_insn, qty_comparison_code, qty_comparison_const, - qty_comparison_qty): Delete, replace with... - (qty_table): this structure table. - (reg_next_eqv, reg_prev_eqv): Delete, replace with... - (reg_eqv_table): this structure table. - (make_new_qty): Add argument MODE. Caller updated. - Update to use qty_table and reg_eqv_table. - (make_regs_eqv, delete_reg_equiv, insert_regs, - insert, exp_equiv_p, cse_rtx_varies_p, canon_reg, - fold_rtx, equiv_constant, record_jump_cond, cse_insn, - cse_process_notes, cse_main, cse_basic_block): Likewise. - -Mon Nov 29 16:56:42 1999 Richard Kenner - - * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse - operation if C is negative. - (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects. - (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive - law for some divisions if constant is negative and change other - divisions to the opposite rounding. - - * expr.c (store_constructor_field): If bit position is not multiple - of alignment of TARGET's mode, use BLKmode. - - * expr.c (expand_expr_unaligned): Add more code from full case - that is needed when OP0 is in a register. - -Mon Nov 29 18:09:39 1999 J"orn Rennecke - - * dwarfout.c (field_byte_offset): Size can be zero if there was - an error. - -1999-11-29 Bernd Schmidt - - * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE. - (associate_trees): Delete unused var TEM. - (extract_muldiv): Delete unused var CANCEL_P. - - * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT] - (target_isinf, target_isnan, target_negative): Add return types to - function definitions. - -1999-11-29 Bruce Korb - - * fixinc/fixincl.c(process): don't skip GLIBC files any more. - * fixinc/hackshell.tpl: ditto - * fixinc/fixtests.c(double_slash_test): more C++ header testing - * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach - -1999-11-29 Bernd Schmidt - - * reload.c (push_reload): When looking for a register to put into - reg_rtx, make sure all hard regs in a multi-reg register are in the - right class and nonfixed. - - * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers, - pending_read_insns, pending_write_insns, pending_read_mems, - pending_write_mems, pending_list_length, last_pending_memory_flush, - last_function_call, sched_before_next_call): Move static variables - into a structure. - (bb_ prefixed versions): Replace with single array bb_deps. - (struct deps): New structure. - (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1, - sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new - argument of type "struct deps *"; use that instead of global - variables. All callers changed. - (init_rgn_data_dependencies): Delete function. - (init_rtx_vector): Delete function. - (init_deps): New function. - - (free_pending_lists): Simplify, we always use the bb_deps array even - if only one basic block. - (compute_block_backward_dependences): Likewise. - (schedule_region): Likewise. - - (propagate_deps): New function, broken out of - compute_block_backward_dependences. - (compute_block_backward_dependences): Use it. - - * alpha.md: Delete useless patterns that tried to work around - register elimination problems. - - * unroll.c (loop_iterations): Don't abort if iteration variable - was made by loop. - - From Joern Rennecke: - * reload1.c (reloads_conflict): Reverse test comparing operand - numbers when testing for conflict between output/outaddr reloads. - -1999-11-29 David S. Miller - - * config/sparc/sparc.c (init_cumulative_args): Fix type of third - arg. - * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE. - -1999-11-28 Robert Lipe - - * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn - table from .fini into .dtor. - -1999-11-28 Anthony Green - - * tree.h (struct tree_decl): Add malloc_flag. - (DECL_IS_MALLOC): Define. - * c-common.c (attrs): Add A_MALLOC attribute. - (init_attributes): Add this attribute to the table. - (decl_attributes): Handle malloc attribute. - * calls.c (special_function_p): Check for the malloc attribute. - * extend.texi (Function Attributes): Document malloc attribute. - -Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload shift-add patterns): Remove. - -1999-11-28 Herman A.J. ten Brugge - - * reorg.c (dbr_schedule) Print more statistics. Corrected - problem when printing info when 3 delay slots are filled. - -1999-11-28 Jakub Jelinek - - * combine.c (setup_incoming_promotions): Pass an outgoing - regno to FUNCTION_ARG_REGNO_P which it expects. - -1999-11-28 Andreas Jaeger - - * mips/linux.h (CPP_PREDEFINES): Undefine before redefining. - -Sun Nov 28 00:48:15 1999 Philippe De Muyter - - * cccp.c (do_include): Avoid initialization of automatic variable. - - * integrate.c (mark_stores): Function definition made void, to match - previous declaration. - * regclass.c (dump_regclass): Ditto. - * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'. - -Sat Nov 27 08:38:26 1999 Richard Kenner - - * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is - known to be multiple of divisor. - - * expr.c (store_constructor): Don't clobber TARGET if CLEARED. - - * combine.c (try_combine): Add code to try to merge a set of a - two-word pseudo to a constant with a setting of one of those words - to a constant. - - * fold-const.c (negate_expr, associate_trees, extract_muldiv): New. - (split_tree): Completely rework to make more general. - (make_range, fold): Call negate_expr. - (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math. - (fold, associate): Call new split_tree and associate_trees. - (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv. - -1999-11-26 Bernd Schmidt - - * loop.c (try_copy_prop): Avoid GNU C extension. - -1999-11-25 Mark Mitchell - - * except.c (init_eh_for_function): Still zero eh_return_context, - eh_return_stack_adjust, and eh_return_handler. - - * except.h (eh_status): Adjust documentation for x_protect_list. - (begin_protect_partials): New function. - * except.c (enqueue_eh_entry): Fix formatting. - (get_first_handler): Add consistency check. - (add_partial_entry): Adjust usage of protect_list. - (emit_cleanup_handler): Save and restore ehqueue. - (expand_start_all_catch): Add comment. - (begin_protect_partials): New function. - (end_protect_partials): Adjust usage of protect_list. - (init_eh_for_function): Use xcalloc. - -1999-11-25 Kaveh R. Ghazi - - * c-common.c (check_format_info): Don't call a variadic function - with a non-literal format string. - - * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise. - - * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else, - pedantic_lvalue_warning, error_init, pedwarn_init, warning_init): - Likewise. - - * cccp.c (check_macro_name, do_xifdef, vwarning_with_line): - Likewise. - - * collect2.c (collect_wait): Likewise. - - * dbxout.c (dbxout_type): Likewise. - - * gcc.c (do_spec_1): Likewise. - - * genemit.c (gen_insn, gen_expand): Likewise. - - * genrecog.c (write_switch, write_subroutine): Likewise. - - * mips-tfile.c (catch_signal, botch): Likewise. - - * print-rtl.c (print_rtx): Likewise. - - * toplev.c (default_print_error_function, report_error_function, - _fatal_insn): Likewise. - -1999-11-25 Mark Mitchell - - * tree.c (unsave_expr_now): Handle NULL_TREE as input. - -Wed Nov 24 17:08:09 MET 1999 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative - operations when needed. - * i386.md (fop_?f_comm): New. - (fop_?f_1): Do not accept commutative operands. - -1999-11-25 Andreas Jaeger - - * config/mips/mips.md (casesi_internal): Add missing brace. - -1999-11-25 Jason Merrill - - * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose. - (splice_child_die): Handle moving a child DIE from the declaration - DIE of a class to its specification. - (gen_struct_or_union_type_die): Use 'complete' consistently. - (gen_decl_die): Generate the virtual context DIE first. - Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN. - -1999-11-24 Gavin Romig-Koch - - * config/mips/mips.md (call_value_multiple_interanal1): New. - -1999-11-24 Jason Merrill - - * dwarf2out.c (free_AT, free_die): New fns. - (remove_children): Call them. - (output_line_info): Disable removal of duplicate notes. - - Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set. - * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO - means pretend the type isn't defined. - Don't defer emitting types. - (gen_type_die_for_member): New fn. - (gen_decl_die): Call it. - (splice_child_die): New fn. - (gen_member_die): Call it rather than generate duplicate dies. - - Defer emitting information for the abstract instance of an inline - until we either inline it or emit an out-of-line copy. - * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN - from output_inline_function if DECL_ABSTRACT is also set. - (block_ultimate_origin): Likewise. - (gen_abstract_function): New fn. - (gen_decl_die, gen_inlined_subroutine_die): Call it. - (gen_subprogram_die): An abstract instance is not a declaration - just because it doesn't match current_function_decl. Don't abort - because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration - has an abstract origin. - * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the - abstract instance here. - -Wed Nov 24 18:39:18 1999 Andrew Haley - - * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case - where we need to reload fpul from a system register. - -1999-11-24 Andreas Jaeger - - * config/mips/linux.h (CPP_PREDEFINES): Added. - (LINK_SPEC): Remove -Y since this is only needed on sparc. - -1999-11-24 Andreas Jaeger - - * config/mips/linux.h (TARGET_VERSION): Added. - (HANDLE_SYSV_PRAGMA): Added. - (DEFAULT_VTABLE_THUNKS): Added. - -Wed Nov 24 14:12:15 MET 1999 Jan Hubicka - - * local-alloc.c (qty): New structure and static variable. - (qty_phys_reg): Remove, all references changed to qty. - (qty_n_refs): Likewise. - (qty_min_class): Likewise. - (qty_birth): Likewise. - (qty_death): Likewise. - (qty_size): Likewise. - (qty_mode): Likewise. - (qty_n_calls_crossed): Likewise. - (qty_alternate_class): Likewise. - (qty_changes_size): Likewise. - (qty_first_reg): Likewise. - (alloc_qty): Rename variable QTY to QTYNO. - (finf_free_reg): Likewise. - (local_alloc): Allocate qty, do not allocate the removed variables. - -Wed Nov 24 17:26:05 1999 Geoffrey Keating - - * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler - when -membedded-pic is passed. - - * config/mips/mips.md (casesi): Handle 64-bit case too. - (casesi_internal_di): New insn. - - * config/mips/mips.c (embedded_pic_offset): Always make the - embedded-pic subtractions relative to the name of the current - function by use of the magic string "..CURRENT_FUNCTION". - * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen. - -1999-11-24 Geoffrey Keating - - * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO - of (const_int 0), when what we really care about is - whether it's a zero constant anyway. - (div_trap_mips16): Likewise. - -1999-11-23 Mark Mitchell - - * loop.c (loop_optimize): Always find_loop_tree_blocks and - unroll_block_trees when generating debuggable code. - - * tree.h (unsave_expr_1): New function. - (lang_unsave): New variable. - (get_callee_fndecl): New function. - * tree.c (unsave_expr_now_r): New function. - (lang_unsave): Define. - (unsave_expr_1): Likewise. - (unsave_expr_now_r): Split out from unsave_expr_now. - (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise, - call unsave_expr_now_r. - (get_callee_fndecl): Define. - - * Makefile.in (gencheck): Don't depend on lang_tree_files. - (gencheck.o): Do depend on lang_tree_files. - - * integrate.h (copy_decl_for_inlining): New declaration. - * integrate.c (copy_and_set_decl_abstract_origin): Remove. - (copy_decl_for_inlining): New function. - (integrate_parm_decls): Use it. - (integrate_decl_tree): Likewise. - -1999-11-23 Gavin Romig-Koch - - * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split - the second two from the first. - (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4. - * config/mips/mips.md (movcc,reload_incc,reload_outcc, - conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than - ISA_HAS_FP4. - * config/mips/mips.c (mips_move_1word,gen_conditional_branch, - override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than - ISA_HAS_FP4. - -Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (call_internal_symref, call_value_internal_symref): No mode - needed on the address operand. - * pa.c (call_operand_address): Check for the correct mode. - -1999-11-23 Bernd Schmidt - - * loop.c: Include "basic-block.h". - (try_copy_prop, replace_loop_reg): New functions. - (load_mems): Detect registers that just hold copies of the hoisted - mem, and call try_copy_prop to eliminate them. - * Makefile.in (loop.o): Update dependencies. - -Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson - - * Makefile.in (gencheck.o): Depend on gencheck.h. - (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h. - (insn-peep.o): Depend on except.h and function.h. - (insn-attrtab.o): Depend on RECOG_H. - (insn-output.o): Depend on toplev.h and flags.h. - (gengenrtl.o): Depend on real.h. - (gen-protos.o): Depend on cpplib.h and cpphash.h. - Unify all dependencies to be on RECOG_H rather than recog.h. - -Tue Nov 23 00:57:10 1999 Rainer Orth - - From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998: - * configure.in: Try building a bi-arch 32/64-bit compiler on - sparc-*-solaris2.7 and higher. - * configure: Rebuild. - -Mon Nov 22 23:09:44 1999 David O'Brien - - * config/freebsd.h: New, FreeBSD architecture independent file. - * config/i386/freebsd-elf.h: removed FreeBSD architecturally - independent pieces. - * config/i386/freebsd.h: include i386/perform.h via tm.h rather than - directly by i386/freebsd.h. - * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally - independent configuration file. - (*-*-freebsdelf): Include i386/perform.h via tm.h rather than - directly by i386/freebsd.h. - * configure: Rebuilt. - - * xm-i386.h: Define `__i386__' if not defined, rather than `i386' - which is in the user's namespace. - * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs. - `i386' which is not in our namespace. - -Mon Nov 22 22:58:01 1999 "R. Kelley Cook" - - * invoke.texi (ARM Options): Add in -mno-alignment-traps - -1999-11-22 Jason Merrill - - * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last. - (add_dwarf_attr, add_child_die): Just push onto the front. - (reverse_die_lists): New fn. - (add_sibling_attributes): Use it. - (push_decl_scope): Reorganize. - (add_name_and_src_coords_attributes): Don't set file and line for - an artificial decl. - (gen_subprogram_die): An artificial function doesn't need to match - file and line. - (gen_compile_unit_die): Return the generated die. Only add - AT_comp_dir if the filename is relative. - (remove_AT): Simplify loop. Also free string values. - (output_die): A DIE ref can't be null. - (output_value_format, value_format): Take a dw_attr_ref. - (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove. - (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, - AT_addr, AT_lbl): New fns. - (various): Use them. - (various): Constify. - -Mon Nov 22 23:53:50 1999 J"orn Rennecke - - * combine.c (combine_simplify_rtx): When handling a SUBREG, - take SUBREG_WORD into account. - (if_then_else_cond): Likewise. - -1999-11-22 Jason Merrill - - * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising - clause from BSD license, pursuant with - - ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change - -1999-11-22 Bernd Schmidt - - * loop.c (load_mems): Reformat slightly. - * basic-block.h (regset_head): New typedef. - (INIT_REG_SET): New macro. - -1999-11-22 Bruce Korb - - * emit-rtl.c (gen_sequence): Only return the pattern of an insn if - its code is INSN and it has no notes. - -1999-11-22 Andrew Haley - - * varasm.c (function_defined): Remove. - (make_function_rtl): Don't set function_defined. - (make_decl_rtl): Remove global register warning. - * regclass.c (no_global_reg_vars): New variable. - (globalize_reg): Warn if function has already been defined. - (regclass_init): Set no_global_reg_vars. - -Mon Nov 22 14:42:22 MET 1999 Jan Hubicka - - * regclass.c (reg_pref): New structure and static variable - (prefclass): Delete. - (altclass): Delete. - (all uses of prefclass and altclass): Use reg_pref instead. - -1999-11-21 Nick Clifton - - * invoke.texi (ARM Options): Replace -mshort-load-bytes with - -malignment-traps. - (arm.h): Replace -mshort-load-bytes with -malignment-traps. - (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. - (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. - -Sun Nov 21 17:11:13 1999 Geoffrey Keating - - * varasm.c (output_constructor): Solve problem with long long - bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1). - -Fri Nov 19 05:48:45 CET 1999 Jan Hubicka - - * global.c (allocno): New structure and static variable. - (allocno_reg): Remove, all references replaced by allocno. - (allocno_size): Likewise. - (hard_reg_conflicts): Likewise. - (hard_reg_preferences): Likewise. - (hard_reg_copy_preferences): Likewise. - (hard_reg_full_preferences): Likewise. - (regs_someone_prefers): Likewise. - (allocno_calls_crossed): Likewise. - (allocno_n_refs): Likewise. - (allocno_live_length): Likewise. - (find_reg): Rename ALLOCNO to NUM. - - * regclass.c (may_move_in_cost): Rename from may_move_cost, all - references updated. - (may_move_out_cost): New variable. - (init_reg_sets_1): Initialize may_move_out_cost. - (record_reg_classes): Use may_move_out_cost. - - * regclass.c (dump_regclass): New function. - (regclass): New parameter DUMP, call DUMP_REGCLASS. - * toplev.c (rest_of_compilation): Open lreg dump file before regclass, - pass rtl_dump_file to regclass. - * rtl.h (regclass): Update prototype. - -Fri Nov 19 06:32:19 CET 1999 Jan Hubicka - - * i386.md (neg, not and abs patterns): Revmap to use - ix86_expand_unary_operator and ix86_unary_operator_ok. - (add?f and sub?f expanders): Force operand 1 to register. - * i386.c (ix86_expand_unary_operator): Rewrite. - (ix86_unary_operator_ok): Ensure that memory operands - match real opcode. - (ix86_binary_operator_ok): Do not allow operand 1 to - come into memory and operand 0 not. - (ix86_expand_binary_operator): Ensure that - src1 is not non-matching memory. - - * i386.md (negs?2): Rewrite to expanders, new patterns and splitters - to support integer registers and memory. - (abss?2_integer): Likewise. - - * i386.h (enum reg_class): Add FLOAT_INT_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS - and GENERAL_REGS. - * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS. - (movsf): Likewise; unify 4th and 5th alternative. - (pushdf): Likewise. - (movdf_1): Likewise; rename to movdf_integer. - (pushxf): Likewise; rename to pushxf_integer; fix output template; - remove redundant splitter. - (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition. - (movdf_nointeger): New. - (movxf_nointeger): New. - (pushxf_nointeger): New. - - * i386.md (extend?f?f): Split to expander and pattern, refuse two - memory operands in patterns. - (fop*): Refuse two memory operands. - - * i386.md (ashrsi3_31): Allow cltd when optimizing for size even - on !TARGET_USE_CLTD CPUs. - -Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell - - * extend.texi: Document C++ restricted pointers and references. - -1999-11-19 Bernd Schmidt - - * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC. - (invalidate_skipped_set): Call it unconditionally. - (cse_set_around_loop): Likewise. - -Thu Nov 18 17:29:34 MST 1999 Diego Novillo - - * rtl.texi (mem): Add documentation for alias-set argument - to RTX `mem'. - -Fri Nov 18 13:39:22 CET 1999 Jan Hubicka - - * i386.h (struct_processor_costs): New fields int_load, int_store, - fp_move, fp_load and fp_store - (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of - fp->int moves - (MEMORY_MOVE_COST): New macro. - * i386.c (386_cost): Define new fields. - (i486_cost): Likewise. - (pentium_cost): Likewise. - (pentiumpro_cost): Likewise. - (k6_cost): Likewise. - -Fri Nov 19 11:11:55 1999 Greg McGary - Geoffrey Keating - - * config/m68k/m68kelf.h: Suppress '/* within comment' warning. - - * config/m68k/m68k.h (MASK_PCREL): Don't use same value as - MASK_ALIGN_INT. - - * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro. - (TARGET_STRICT_ALIGNMENT): New macro. - (TARGET_SWITCHES): Add "strict-align" and "no-strict-align". - (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT. - * invoke.texi (M680x0 Options): Document -mstrict-align. - -Thu Nov 18 11:10:03 1999 Jan Hubicka - Richard Henderson - - * i386-protos.h (split_xf, ix86_split_movdi): Remove. - (ix86_split_long_move): Declare. - * i386.c (split_xf, ix86_split_movdi): Remove. - (ix86_split_to_parts, ix86_split_long_move): New. - * i386.md (dimode move splitters): Use ix86_split_long_move. - (dfmode move splitters): Likewise. - (xfmode move splitters): Likewise. - (movsf_1): Allow F->r. - (movdf_1, movxf_1): Allow F->ro. - -1999-11-17 Mark Mitchell - - * except.h (struct eh_entry): Add goto_entry_p. - (eh_region_from_symbol): Remove prototype. - * except.c (find_func_region_from_symbol): New function. - (emit_cleanup_handler): Likewise. - (eh_region_from_symbol): Make it static. - (add_new_handler): Verify the argument. - (find_func_region): Update comment. - (expand_eh_region_end): Expand handlers here, rater than waiting - until expand_leftover_cleanups or start_all_catch. - (expand_leftover_cleanups): Don't expand here. - (expand_start_all_catch): Or here. - (expand_rethrow): Check the return value from find_func_region. - * function.c (expand_function_end): Emit the catch_clauses. - -1999-11-18 Gavin Romig-Koch - - * integrate.c (expand_inline_function): Add necessary check for NULL. - -1999-11-18 Nick Clifton - - * toplev.c (main): Correctly detect an unrecognised option. - - * cppinit.c (cpp_handle_option): Do not claim to have consumed - a -f option if it has not been recognised. - -Thu Nov 18 00:59:11 1999 Michael Gschwind - - * basic-block.h (update_life_extent): Remove trailing comma on - enumeration type list. - -1999-11-18 Herman A.J. ten Brugge - - * varasm.c (output_constructor) Solved problem with long long - bitfields. Corrected calculating this_time and shift. Also - corrected calculating mask when BITS_PER_UNIT == 32 (c4x). - -Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (split_edge): Take looping structure into account when - determining where to put the new block note. - -Wed Nov 17 20:42:43 1999 Jeff Holcomb - - * Makefile.in (ggc-none.o): Provide host specific version if - needed. - -Wed Nov 17 16:51:23 1999 Richard Henderson - - * cse.c (delete_trivially_dead_insns): Identify no-op insns - containing subregs too. - -Wed Nov 17 17:39:48 MST 1999 Diego Novillo - - * invoke.texi: Add documentation for -muninit-const-in-rodata. - * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define. - (TARGET_UNINIT_CONST_IN_RODATA): Define. - (text_section): Add switches -munint-const-in-rodata and - -mno-uninit-const-in-rodata. - (ASM_OUTPUT_COMMON): Remove. - (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized - const objects should be placed in read-only data. Otherwise declare - them in common. - -Wed Nov 17 16:38:32 1999 Richard Henderson - - * jump.c (jump_optimize_1): Revert last change. - -Wed Nov 17 15:18:30 1999 Richard Henderson - - * jump.c (jump_optimize_1): Don't try to duplicate the loop exit - test if optimizing for size. - -1999-11-17 Mark Mitchell - - * Makefile.in (toplev.o): Depend on except.h. - (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise. - -Mon Nov 15 22:45:39 CET 1999 Jan Hubicka - - * i386.md (divmodsi4): Rewrite to expander. - (*divmodsi4_nocltd): New. - (*divmodsi4_cltd): New. - (divmodsi4 splitter): Handle the case when input comes in edx. - (udivmodhi4): Do not use constraints in exander. - (ashrsi3_31): Conditionize by TARGET_USE_CLTD. - -1999-11-17 Jason Merrill - - * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1 - for the common case. - -1999-11-16 Jakub Jelinek - - * explow.c (hard_function_value): Add outgoing argument. - * expr.h (hard_function_value): Declare it. - * calls.c (expand_call, emit_library_call_value): Update callers. - * function.c (aggregate_value_p): Ditto. - (diddle_return_value): Must look at the outgoing registers - on archs with register windows. - -Mon Nov 15 20:46:45 1999 Richard Henderson - - * alpha.c (alpha_build_va_list): Use make_lang_type and - initialize TYPE_NAME for the va_list record. - - * flow.c (calculate_global_regs_live): Zero bb->aux to begin. - - * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long - for printing. - * ggc.h (struct ggc_statistics): Rearrange elements for better - packing on 64-bit hosts. - * lcm.c (compute_laterin): Store a size_t not an int in bb->aux. - (compute_nearerout): Likewise. - -Tue Nov 16 14:37:52 1999 Geoffrey Keating - - * config/rs6000/rs6000.c (first_reg_to_save): Save - PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed. - -1999-11-15 Jason Merrill - - * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table - notion of nesting to find the DIE for a type or function. - DIEs can go in limbo even if we got a context_die. - (push_decl_scope): Our context doesn't need to be in decl_scope_table. - (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test - for local type. - (gen_decl_die): Ignore NAMESPACE_DECLs for now. - (gen_type_die): Writing out the context doesn't cause member class - template instantiations to be written out as well. - -Mon Nov 15 15:33:18 1999 Richard Henderson - - * rs6000.h (ASM_OUTPUT_DEF): New. - Based on proposed addition from David Edelsohn. - -1999-11-15 Robert Lipe - Bruce Korb - - * fixinc/inclhack.def - (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features - (unixware7_byteorder_fix): added. Removes conflicts for new defs - in net/inet.h. - (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax - (svr4_endian): enabled with SVR5 - (svr4_mkdev): simplified syntax and enabled with SVR5 - -Sun Nov 14 18:49:37 1999 David O'Brien - - * configure.in: Handle libgcc2 threads support on FreeBSD platforms. - * configure: Rebuilt. - * config/t-freebsd-thread: New file. - -Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_decompose_address): Verify the base is a REG - before trying to examine its register number. - - * basic-block.h: Remove all #defines and prototypes related to - integer lists. - (free_bb_mem, compute_preds_succs): Remove prototype. - * rtl.h (free_bb_mem): Remove prototype. - * flow.c (alloc_int_list_node); Remove function. - (add_inst_list_node, free_int_list, add_pred_succ): Likewise. - (compute_preds_succs, free_bb_mem): Likewise. - * gcse.c (gcse_main): Do not call free_bb_mem anymore. - * toplev.c (rest_of_compilation): Likewise. - * haifa-sched.c (build_control_flow): Use flow generated edge - list to build the haifa specific edge list. - (find_rgns): Use new CFG data structures instead of pred/succ lists. - (schedule_insns): Do not build pred/succ lists anymore. Instead - build the edge table. - - * basic-block.h (dump_bb_data): Remove declaration. - * flow.c (dump_bb_data): Remove function. - * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function. - (sbitmap_union_of_predsucc): Likewise. - - * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds - argument. All callers changed. - (delete_null_pointer_checks_1): No longer need to compute the - pred/succ lists. - - * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument. - All callers changed. - (pre_expr_reaches_here_p_work): Likewise. - (pre_edge_insert): No longer call pre_expr_reaches_here_p. - * lcm.c (compute_laterin): Fix initialization of LATER. - (compute_nearerout): Similarly for NEARER. - -Sun Nov 14 12:41:57 1999 Bernd Schmidt - - * cse.c (set_nonvarying_address_components): Delete unused function. - (refers_to_p): Likewise. - -Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as - needed. - -Sat Nov 13 16:20:09 1999 Michael Hayes - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro - definition in do while (0). - -Fri Nov 12 16:26:25 1999 Jim Wilson - - * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change. - -Fri Nov 12 12:43:49 1999 Richard Henderson - - * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT. - -Fri Nov 12 15:14:19 1999 Vladimir Makarov - - * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it. - (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto. - (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. - (INITIAL_FRAME_POINTER_OFFSET): Remove it. - - * i960.c (i960_function_prologue): Don't allocate space for g8-g11 - saved on the stack. Output more accurate stack frame statistics - into assembler file. - -1999-11-12 11:47 -0800 Zack Weinberg - - * genextract.c (record_insn_name): New function. - (get_insn_name): No longer a stub. - (main): Call record_insn_name for each insn. After each label - written, print the insn name in a comment. - -Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi - - * output.h (const_section, init_section, fini_section): Add - prototypes. - - * alpha/elf.h (const_section): Delete declaration. - - * svr4.h (const_section): Likewise. - -Fri Nov 12 08:54:22 1999 Mark Mitchell - - * tree.h (SAVE_EXPR_PERSISTENT_P): New macro. - * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially. - (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P - expressions. - * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on - variable-sized array bounds. - -Fri Nov 12 08:04:45 1999 Catherine Moore - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use - ASM_OUTPUT_LABEL. - -Fri Nov 12 13:31:54 1999 Bernd Schmidt - - * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode - addresses the same way GO_IF_LEGITIMATE_INDEX does. - -Fri Nov 12 12:36:04 1999 Bernd Schmidt - - * cse.c (hash_arg_in_struct): Delete. - (struct table_elt): Delete elt in_struct. - (struct set): Delete elt src_in_struct. - (merge_equiv_classes): Don't set either hash_arg_in_struct or - the corresponding in_struct elts. - (canon_hash): Likewise. - (safe_hash): Likewise. - (find_best_addr): Likewise. - (record_jump_cond): Likewise. - (cse_insn): Likewise. - -Thu Nov 11 19:45:24 1999 Jim Wilson - - * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back. - - * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large - unsigned types. - -Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (diddle_return_value): Put back check that the DECL_RTL - for the function is a register. - - * function.c (diddle_return_value): Use hard_function_value to - get an rtx suitable for use in the USE/CLOBBER insn. - - * global.c (global_conflicts): Update comments. - (record_conflicts): No need to record conflicts between pseudos here. - -1999-11-11 Bruce Korb - - * fixinc/fixincl.c: Added verbose levels for status messages - -Thu Nov 11 13:23:04 1999 Bernd Schmidt - - * jump.c (jump_optimize_1): Avoid passing an rtx that is not an - operand as argument to expand_and or expand_binop. - -Thu Nov 11 02:21:16 1999 Rodney Brown - - * xcoffout.c (xcoffout_source_file): Change ggc_add_root to - gcc_add_string_root. - -Wed Nov 10 21:24:19 1999 Jason Eckhardt - - * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4. - -Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_flow_dominators): Initially put all blocks on - the worklist. - * lcm.c (compute_antinout_edge, compute_available): Similarly. - * gcse.c (compute_cprop_avinout): Remove. - (compute_cprop_data): Use compute_available. - (delete_null_pointer_checks_1): Use compute_available. - - * basic-block.h (compute_available): Returns a void now. - * gcse.c (one_classic_gcse_pass): Do not expect compute_available - to return a value anymore. - * lcm.c (compute_available, compute_antinout_edge): Revamp to use - worklists. Fix boundary cases. Compute maximal solutions. - (compute_laterin, compute_nearerout): Similarly. - - * dwarf2out.c (add_AT_location_description): Allow - (mem (plus (pseudo) (...)) too. - -Wed Nov 10 10:52:42 1999 Tom Tromey - - * gcc.c (do_spec_1): Support text between `%u' and `%O'. - -Wed Nov 10 12:43:21 1999 Philippe De Muyter - Kaveh R. Ghazi - - * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. - - * gansidecl.h: Likewise. - - * rtl.c: Likewise. - - * rtl.h: Likewise. - - * toplev.h: Likewise. - - * tree.c: Likewise. - - * tree.h: Likewise. - - * varray.c: Likewise. - - * varray.h: Likewise. - -Wed Nov 10 10:57:22 1999 Clinton Popetz - - * gcov.c (struct arcdata): Add hits and total, remove prob. - (output_branch_counts): New. - (process_args): Set output_branch_counts if -c. - (calculate_branch_probs): Store hits and total instead of - percentage. - (output_data): Emit counts if output_branch_counts is true. - * gcov.texi (Invoking Gcov): Document -c switch.. - -Wed Nov 10 01:10:41 1999 Philippe De Muyter - - * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and - `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type. - -Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson - - * invoke.texi (C Dialect Options): Add missing builtins from - c-common.c to list. - * extend.texi (Other Builtins): Copy to this list. - -Wed Nov 10 04:58:09 1999 Alexandre Oliva - - * Makefile.in (recog.o): Use BASIC_BLOCK_H macro. - (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove - redundant bitmap.h. - -Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_flow_dominators): No longer treat basic block 0 - or (n_basic_blocks - 1) specially. Clear the AUX field before - starting computation of doms/pdoms. Fix initial state for pdoms. - -Wed Nov 10 03:58:08 1999 Alexandre Oliva - - * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to - match rtl.o's: added ggc.h and toplev.h - ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h. - ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h. - ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H). - -Tue Nov 9 10:30:08 1999 Tom Tromey - - * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed - from HAVE_DOS_BASED_FILESYSTEM. - * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not - HAVE_DOS_BASED_FILESYSTEM. - (main): Likewise. - (split_directories): Only special-case DOS file names if - HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR - instead of explicit tests. Conditionalize on !VMS. - (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit - tests. Conditionalize on !VMS. - (process_command): Only use make_relative_prefix if !VMS. - (free_split_directories): Conditionalize on !VMS. - (DIR_UP): Conditionalize on !VMS. - -Wed Jun 9 16:57:11 1999 Mumit Khan - - * gcc.c (STANDARD_BINDIR_PREFIX): Provide default. - -Fri Feb 5 14:22:01 1999 Mumit Khan - - * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX - case. - -Mon Nov 8 14:16:57 1999 Michael Meissner - - * invoke.texi (Environment Variables): Document relative path - lookup. - * gcc.c (DIR_UP): If not defined, define as "..". - (standard_bindir_prefix): New static, holds target location to - install binaries. - (split_directories): New function to split a filename into - component directories. - (free_split_directories): New function, release memory allocated - by split_directories. - (make_relative_prefix): New function, make a relative pathname if - the compiler is not in the expected location. - (process_command): If GCC_EXEC_PREFIX was not specified, see if we - can figure out an appropriate prefix from argv[0]. - * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of - STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define - STANDARD_BINDIR_PREFIX. - -Wed Nov 10 11:47:54 1999 Michael Hayes - - * config/c4x/c4x-protos.h: New file. Prototypes for functions defined - in c4x.c. - * config/c4x/c4x.h: Moved prototypes to c4x.h. - * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class, - c4x_secondary_memory_needed) Delete. - (fp_zero_operand): Add mode argument. - -Thu Nov 4 15:52:35 1999 Andrew Haley - - * reload1.c (reload_reg_free_for_value_p): Don't use a register - that is in reload_reg_used. - -Tue Nov 9 16:43:00 1999 Nick Clifton - - * config/arm/arm-protos.h: New file: Prototypes for functions - defined in arm.c and pe.c. - * config/arm/arm.h: Fix compile time warnings. - * config/arm/arm.c: Fix compile time warnings. - * config/arm/pe.h: Fix compile time warnings. - * config/arm/aout.h: Fix compile time warnings. - -Tue Nov 9 14:55:44 1999 Nick Clifton - - * config/m32r/m32r-protos.h: New file: Prototypes for functions - defined in m32r.c - - * config/m32r/m32r.h: Move prototypes to m32r-protos.h - Add support for subtargets. - Add prototypes for new predicates. - Add scheduling macros. - - * config/m32r/m32r.c: Fix compile time warnings. - (int8_operand): New predicate function. - (reg_or_cmp_int16_operand): New predicate function. - (extend_operand): New predicate function. - (m32r_adjust_code): New scheduling function. - (m32r_adjust_priorty): New scheduling function. - (m32r_sched_init): New scheduling function. - (m32r_sched_reorder): New scheduling function. - (m32r_sched_variable_issue): New scheduling function. - (direct_return): New codegen function. - (m32r_not_same_reg): New rtl testsing function. - - * config/m32r/m32r.md: Fix compile time warnings. - Add support for pre decrement and post increment memory - references. - Add S patterns. - Add fabs patterns. - -Mon Nov 8 22:20:13 1999 J"orn Rennecke - - * global.c (EXECUTE_IF_CONFLICT): Don't define. - (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead. - (find_reg): Likewise. - -Mon Nov 8 13:16:46 1999 Jason Eckhardt - - * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0 - to avoid assembler errors. - -Mon Nov 8 15:38:41 1999 Nick Clifton - - * config/v850/v850-protos.h: New file: Prototypes for functions - defined in v850.c - * config/v850/v850.h: Move prototypes to v850-protos.h - * config/v850/v850.c: Move prototypes to v850-protos.h - * config/v850/v850.md: Fix compile time warnings. - - * config/fr30/fr30-protos.h: New file: Prototypes for functions - defined in fr30.c - * config/fr30/fr30.h: Move prototypes to fr30-protos.h - * config/fr30/fr30.c: Fix compile time warnings. - * config/fr30/fr30.md: Fix compile time warnings. - -Mon Nov 8 07:25:37 1999 Mark Mitchell - - * tree.h (get_containing_scope): Declare it. - * tree.c (get_containing_scope): New fucntion. - (decl_function_context): Use it. - * toplev.c (rest_of_compilation): Use get_containing_scope. - -aMon Nov 8 03:03:07 1999 Alexandre Oliva - - * Makefile.in (rtl.o): Depend on toplev.h. - -Sun Nov 7 20:55:14 1999 Mark Mitchell - - * cse.c (delete_trivially_dead_insns): Replace alloca with - xmalloc/xcalloc. - * except.c (update_rethrow_references): Likewise. - (init_eh_nesting_info): Likewise. - * function.c (identify_blocks): Likewise. - * gcse.c (dump_hash_table): Likewise. - * graph.c (print_rtl_graph_with_bb): Likewise. - * loop.c (combine_movables): Likewise. - (move_movables): Likewise. - (count_loop_regs_set): Likewise. - (strength_reduce): Likewise. - * profile.c (compute_branch_probabilities): New function, split - out from ... - (branch_prob): Here. Replace alloca with xmalloc/xcalloc. - * regclass.c (regclass): Likewise. - * regmove.c (regmove_optimize): Likewise. - * toplev.c (compile_file): Likewise. - (main): Don't mess with the stack rlimit. - -Sun Nov 7 19:41:17 1999 Catherine Moore - - * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define. - (ASM_DECLARE_FUNCTION_SIZE): Conditionally define. - -Sun Nov 7 10:23:28 1999 Mark P. Mitchell - - * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns. - -Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com) - - * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change. - (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in - macro expansion. - -Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net) - - * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo. - -Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (post_dominators): Kill. - (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators. - (compute_code_hoist_data): Use compute_flow_dominators. Do not - pass in a pdom array since we do not need pdoms. - * haifa-sched.c (schedule_insns): Similarly. - * flow.c (compute_dominators): Remove dead function. - (compute_flow_dominators): Do not compute doms or pdoms if the - caller does not request them. Split up loop to build doms and - pdoms. Use a worklist to compute doms and pdoms. - * basic-block.h (compute_dominators): Remove prototype. - -Sat Nov 6 11:38:39 1999 Richard Henderson - - * haifa-sched.c (struct haifa_insn_data, h_i_d): New. - (insn_luid, insn_priority, insn_costs, insn_units): Remove. - (insn_reg_weight, insn_depend, insn_dep_count): Remove. - (insn_blockage, insn_ref_count, line_note, insn_tick): Remove. - (cant_move, fed_by_spec_load, is_load_insn): Remove. - (schedule_region): Remove unused variable. - (schedule_insns): Allocate h_i_d, and not all the separate arrays. - -Sat Nov 6 10:00:34 1999 Mark Mitchell - - * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca. - (update_equiv_regs): Likewise. - (block_alloc): Likewise. - * reg-stack.c (reg_to_stack): Likewise. - (convert_regs_2): Likewise. - * reload1.c (reload_as_needed): Likewise. - -Sat Nov 6 09:57:59 1999 Mark Mitchell - - * Makefile.in (dbxout.o): Depend on ggc.h. - (dwarf2out.o): Likewise. - (xcoffout.o): Likewise. - * dbxout.c: Include ggc.h. - (dbxout_init): Register lastfile as a root. - * dwarf2out.c: Include ggc.h. - (dwarf2out_line): Register lastfile as a root. - * xcoffout.c: Include ggc.h. - (xcoffout_source_line): Register xcoff_lastfile as a root. - -Sat Nov 6 09:52:09 1999 Richard Henderson - - * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination. - -Sat Nov 6 07:48:59 1999 Catherine Moore - - * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already - defined. - (ASM_DECLARE_FUNCTION_SIZE): Likewise. - -Fri Nov 5 18:33:39 1999 J"orn Rennecke - - * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro. - (EXECUTE_IF_CONFLICT): Likewise. - (ALLOCNO_LIVE_P): Avoid signed division. - (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise. - (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT. - (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET. - -Fri Nov 5 12:04:02 1999 Richard Henderson - - * haifa-sched.c (schedule_block): Don't crash if there's no - next insn for an interblock movement. - (add_branch_dependences): Don't allow clobber insns to move either. - -Fri Nov 5 10:18:11 1999 Richard Henderson - - * i386.c (split_xf): New. - * i386-protos.h: Declare it. - * i386.md (movxf_1): Add general regs alternatives. - (movxf_1+1): New splitter for same. - -Fri Nov 5 12:05:52 1999 Nick Clifton - - * function.c (purge_addressof_1): Add missing return values. - -Fri Nov 5 10:07:25 1999 Nick Clifton - - * function.c (is_addressof): New function. Returns true if - the given piece of RTL is an ADDRESSOF. - (purge_addressof_1): Make boolean. Return false if the - ADDRESSOFs could not be purged. - (purge_addressof): If ADDRESSOFs could not be purged from the - notes attached to an insn, remove the offending note(s), - unless they are attached to a libcall. - -1999-11-05 Andreas Jaeger - - * genoutput.c (null_operand =): Initialize all fields. - - * errors.h: Add extern to prototypes. - -Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (m68k-next-nextstep4): Handle Openstep 4.2. - * configure: Rebuilt. - -Fri Nov 5 01:24:37 1999 J"orn Rennecke - - * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division. - (mirror_conflicts): New function. - (global_alloc): Call it. - (expand_preferences): Remove redundant CONFLICTP test. - (find_reg, dump_conflicts): Likewise. - (prune_preferences): Process conflicts one word at a time. - -Fri Nov 5 01:05:21 1999 Richard Henderson - - * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP - instead of an explicit loop. - -Thu Nov 4 23:07:14 1999 Jim Wilson - - * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt, - if REG_RETVAL check succeeds, then put classp in src_elt. - -Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (pad_to_arg_alignment): Only update argument_pad - if the argument's alignment is greater than STACK_BOUNDARY. - -Thu Nov 4 16:44:53 1999 Richard Henderson - - * bitmap.h (BITMAP_XFREE): New. - * flow.c (life_analysis): Use it. - (life_analysis_1): Free blocks. - - * combine.c (undo_commit): New. - (try_combine): Use it. Don't zap undobuf.undos. - (combine_instructions): Don't zap undobuf.undos; free the - undobuf.frees list. - - * local-alloc.c (local_alloc): Free qty_phys_num_sugg. - - * stmt.c (cost_table_): New. - (estimate_case_costs): Use it instead of xmalloc. - - * toplev.c (compile_file): Reuse dumpname memory instead - of strdup'ing it. - -Thu Nov 4 16:36:44 1999 Richard Henderson - - * reg-stack.c (convert_regs_1): Initialize target_stack->top - after verifying an EH edge. - - * haifa-sched.c (init_rgn_data_dependences): Correctly - size bb_pending_lists_length when zeroing. - -Thu Nov 4 16:36:36 1999 Richard Henderson - - * function.c (diddle_return_value): New. - (expand_function_end): Use it. - * stmt.c (expand_null_return): Likewise. - (expand_value_return): Likewise. - - * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level. - - * reload1.c (reload): Don't remove return value clobbers. - -Thu Nov 4 13:33:46 1999 Richard Henderson - - * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal. - -Thu Nov 4 12:49:52 1999 Richard Henderson - - * cse.c (cse_main): Use xmalloc, not alloca. - (cse_basic_block): Likewise. - * local-alloc.c (local_alloc): Likewise. - -Thu Nov 4 14:22:12 1999 David Billinghurst - Alexandre Oliva - - * rtl.c: Include toplev.h. - (fatal): Remove declaration. - -Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_block): Fix thinko. - -1999-11-03 James McKelvey - - * fixinc/fixincl.c(create_file): Allow for systems that do not have - S_IR* defined values - -1999-11-03 Philippe De Muyter - - * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer; - call `malloc' instead. - -Wed Nov 3 23:05:14 1999 Mark Mitchell - - * flags.h (flag_renumber_insns): Declare. - * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print - renumbering table. - * rtl.h (renumber_insns): Change prototype. - * toplev.c (flag_renumber_insns): Define. - (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns. - -Wed Nov 3 15:11:27 1999 David S. Miller - - * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts - and fpsqrtd. Use them and create fdiv function unit to more - accurately represent fpu sqrt pipeline semantics on UltraSparc. - * config/sparc/sparc.c: Account for fpsqrt{s,d} changes. - -Wed Nov 3 15:11:27 1999 Matteo Frigo - - * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to - 3 on UltraSparc. - * config/sparc/sparc.c (ultra_schedule_insn): Insert launched - insn into ready list, do not use just a raw swap. - -Wed Nov 3 14:51:59 1999 Mark P. Mitchell - - * rtl.h (renumber_insns): New function. - (remove_unnecessary_notes): Likewise. - * emit-rtl.c (renumber_insns): Define. - (remove_unncessary_notes): Likewise. - * toplev.c (rest_of_compilation): Remove dead code. - Use renumber_insns and remove_unncessary_notes. - - * gcse.c (struct null_pointer_info): New type. - (get_bitmap_width): New function. - (current_block): Remove. - (nonnull_local): Likewise. - (nonnull_killed): Likewise. - (invalidate_nonnull_info): Take a null_pointer_info as input. - (delete_null_pointer_checks_1): New function. - (delete_null_pointer_checks): Use it. - - * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc. - (split_edges): Likewise. - (schedule_block): Likewise. - (compute_block_backward_dependencies): Likewise. - (schedule_region): Likewise. - (schedule_insns): Likewise. - -Wed Nov 3 15:40:23 1999 Catherine Moore - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default. - * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME. - * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME. - * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME. - * jump.c (delete_unreferenced_labels): Don't delete if - LABEL_ALTERNATE_NAME is set. - * print-rtl.c (print_rtx): Dump alternate name. - * rtl.def (CODE_LABEL): Change format to "iuuis00s". - * rtl.h (LABEL_ALTERNATE_NAME): Define. - * rtl.texi (LABEL_ALTERNATE_NAME): Document. - * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document. - -Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi - - * fix-header.c (recognized_extern, recognized_function): Constify - a char*. - - * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'. - (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. - (compute_available): Remove unused variable `last'. - (compute_nearerout): Remove unused variable `temp_bitmap'. - (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. - Remove unused variable `x'. - - * scan.h (recognized_function, recognized_extern): Constify a - char*. - - * simplify-rtx.c (simplify_rtx): Remove unused variable `new'. - -Wed Nov 3 10:40:53 1999 Franz Sirl - - * varasm.c (decode_rtx_const): Use XSTR to access the string - of a SYMBOL_REF. - -Wed Nov 3 10:10:58 1999 Richard Henderson - - * c-decl.c (duplicate_decls): Copy DECL_MODE too. - -Wed Nov 3 12:12:59 1999 Bernd Schmidt - - * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes. - -Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (ireg_operand): New function. - * pa.h (PREDICATE_CODES): Handle ireg_operand. - * pa.md (parallel_addb, parallel_movb): Use ireg_operand. - Fix out of date comment. - - * pa.md (negdi2): Turn into expander + anonymous pattern. - - * reload.c (find_reloads): Fix typos in recent change. - - * dwarf2out.c: Do not include ctype.h. - -Tue Nov 2 21:53:44 1999 Richard Kenner - - * regclass.c (record_reg_classes): Always use may_move_cost when - seeing how operand fits with various register classes. - -Tue Nov 2 15:38:17 1999 Richard Henderson - - * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes. - * toplev.c: Revert Nov 1 13:22 change. - -Tue Nov 2 14:21:37 1999 Jason Eckhardt - - * config/pa/pa.md (height reduction patterns): Add checks for - overlapping operands to avoid semantic-destroying splits for - height reduction patterns. - -Tue Nov 2 15:27:31 1999 Alexandre Oliva - - * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should - have been an hyphen, fixed. - * configure: Rebuilt. - -Tue Nov 2 17:04:36 1999 Nick Clifton - - * config/arm/tpe.h: Add prototypes for exported functions. - * config/arm/pe.c: Fix compile time warnings. - * config/arm/semi.h: Fix compile time warnings. - * config/arm/arm.c: Fix compile time warnings. - * config/arm/arm.h: Fix compile time warnings. - * config/arm/arm.md: Fix compile time warnings. - * config/arm/thumb.c: Fix compile time warnings. - * config/arm/thumb.h: Fix compile time warnings. - * config/arm/thumb.md: Fix compile time warnings. - -Tue Nov 2 04:10:24 1999 Jan Hubicka - - * jump.c (jump_optimize_1): Swap the incscc and the conditional mode - detection code - - * unroll.c (unroll_loop): Remove LOOP notes when loop is - completely unrolled. - -Tue Nov 2 16:57:22 1999 Bernd Schmidt - - * cse.c (simplify_plus_minus, check_fold_const): Delete declarations. - -Tue Nov 2 09:43:00 1999 Catherine Moore - - * Makefile.in (genattrtab): Don't use (HOST_RTLANAL). - * rtl.h (rtx_equal_p): Move prototype. - * rtl.c (rtx_equal_function_value_matters): Move from - rtlanal.c - (rtx_equal_p): Likewise. - * rtlanal.c (rtx_equal_function_value_matters): Delete. - (rtx_equal_p): Likewise. - -Mon Nov 1 23:21:17 1999 Jason Merrill - - * libgcc2.c (__do_global_dtors): Only do EH frame stuff if - ! HAS_INIT_SECTION. - -Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com) - - * gcc.1 (PA options): Remove obsolete -mshared-libs options. - - * pa.h (ADDR_VEC_ALIGN): Define. - - * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT - notes when presented with "if (foo) break; end_of_loop" and - the break sequence gets moved out of the loop. - - * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc. - Remove explicit zero initializations of entries within MAP. - -Mon Nov 1 18:09:14 1999 Richard Henderson - - * reg-stack.c (convert_regs_1): Handle EH edges specially. - -Mon Nov 1 15:41:01 1999 Mark P. Mitchell - - * bitmap.h (BITMAP_XMALLOC): New macro. - * flow.c (CLEAN_ALLOCA): Remove. - (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca. - (life_analysis): Likewise. - (update_life_info): Don't use CLEAN_ALLOCA. - (life_analysis_1): Use xmalloc/xcalloc instead of alloca. - (calculate_global_regs_live): Likewise. - (print_rtl_with_bb): Likewise. - (verify_flow_info): Likewise. - * global.c (global_alloc): Likewise. - (global_conflicts): Likewise. - * integrate.c (save_for_inline_nocopy): Likewise. - (expand_inline_function): Likewise. - * jump.c (jump_optimize_1): Likewise. - (duplicate_loop_exit_test): Likewise. - (thread_jumps): Likewise. - * loop.c (loop_optimize): Likewise. - (combine_givs): Likewise. - (recombine_givs): Likewise. - * reorg.c (dbr_schedule): Likewise. - * unroll.c (unroll_loop): Likewise. - - * combine.c (combine_instructions): Use xmalloc instead of alloca. - -Mon Nov 1 13:22:30 1999 Richard Henderson - - * toplev.c (rest_of_compilation): Don't optimize the CFG - when rebuilding, just before dbr. - -Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi - - * output.h (assemble_end_function, assemble_destructor, - assemble_constructor, assemble_gc_entry, assemble_global, - assemble_label, output_constant_pool) Constify a char*. - - * varasm.c (assemble_destructor, assemble_constructor, - assemble_gc_entry, assemble_end_function, assemble_global, - assemble_label, output_constant_pool): Likewise. - -Mon Nov 1 14:22:51 1999 Nick Clifton - - * config/arm/thumb.c (thumb_expand_prologue): Add comments - explaining what is goin on in this function. - -Mon Nov 1 08:03:15 1999 Richard Kenner - - * regclass.c (record_reg_classes): In matching case, recompute - costs since the direction of movement is different. - -Sun Oct 31 21:59:34 MST 1999 Diego Novillo - - * resource.c (mark_target_live_regs): For unconditional branches, - the resources found at the branch target should be added to the - resources found so far, not intersected. - -Sun Oct 31 15:48:49 1999 Philippe De Muyter - - * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for - old cpp's. - * fixinc/fixincl.c (fcntl.h) : Do not include this file twice. - (sys/mman.h): Include this file only if #HAVE_MMAP. - (run_compiles): Initialize `esac_fmt' with one old KR string, not - with automatically concatenated ANSI strings. - -Sun Oct 31 23:57:07 1999 Mark Mitchell - - * ggc-page.c (struct page_entry): Remove save_num_free_objects. - (DIV_ROUND_UP): Robustify. - (ggc_recalculate_in_use_p): New function. - (release_pages): Don't inline it. - (ggc_alloc_obj): Don't refuse to allocate objects on pages for - outer contexts. - (ggc_pop_context): Use ggc_recalculate_in_use_p. - (clear_marks): Always save in_use_p. - (sweep_pages): Use ggc_recalculate_in_use_p. - (ggc_page_print_statistics): Avoid signed/unsigned comparisons. - Release pages before counting statistics. - -Sun Oct 31 23:42:37 1999 Mark Mitchell - - * toplev.c (rest_of_compilation): Fix thinko in this change: - - Fri Oct 29 15:25:07 1999 Arnaud Charlet - - (rest_of_compilation): If inside an inlined external function, - pretend we are just being declared. - -Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (calculate_global_regs_live): Fix thinko. - - * integrate.c (expand_inline_function): Fix bugs in previous - change from Oct 28, 1999. - -Sun Oct 31 20:27:45 1999 Mark Mitchell - - * stmt.c (expand_value_return): Fix typo in this change: - - Thu Oct 28 18:06:50 1999 Richard Kenner - (expand_value_return): Correctly convert VAL when promoting function - return; support RETURN_REG being a PARALLEL. - -Sun Oct 31 20:25:42 1999 Mark P. Mitchell - - * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs. - -Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi - - * hard-reg-set.h (reg_names): Constify a char*. - - * regclass.c (reg_names): Likewise. - - * regs.h (reg_names): Likewise - - * a29k/a29k.c (reg_names): Delete declaration. - - * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*. - - * arc/arc.c (arc_save_restore, arc_output_function_prologue, - arc_output_function_epilogue): Likewise. - - * elxsi/elxsi.c (reg_names): Likewise. - - * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. - - * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move): - Likewise. - - * m88k/m88k.c (output_function_profiler): Likewise. - - * sparc/sparc.c (sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Likewise. - -Sun Oct 31 13:32:15 CET 1999 Marc Lehmann - - * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber - warning from -Wuninitialized and put it under -W. - * function.c (uninitialized_vars_warning): Warn only when the - corresponding flag is set. - -Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): If an insn has only a single set, SRC_EQV - is nonzero and the single set does not have an elt, then assign - it an elt. - - * simplify-rtx.c: New file. - * Makefile.in (OBJS): Add simplify-rtx.o - (simplify-rtx.o): Add dependencies. - * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes. - * cse.c: Use simplify_gen_binary intead of cse_gen_binary. - (cse_gen_binary, simplify_unary_operation): Delete. - (simplify_binary_operation, simplify_plus_minus): Likewise. - (check_fold_consts, simplify_relation_operation): Likewise. - (simplify_ternary_operation): Likewise. - (delete_trivially_dead_insns): Simplify the contents of the - REG_EQUAL note before trying to substitute it into the source - of the reg-reg copy at the end of a libcall sequence. - - * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All - references/callers changed. - - * mn10200.c (mn10200_va_arg): Force the return value into a - register. - - * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro. - - * cccp.c (macroexpand): Avoid out of range accesses for omitted - arguments. - -Sat Oct 30 22:42:50 1999 Stephen L Moshier - - * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant. - -Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Fix thinko when optimizing comparisons - against -0.0. - -Sat Oct 30 21:32:17 1999 David Starner - - * gcc.texi (Passes): Update front-end files to their current - location. - -Sat Oct 30 14:41:40 1999 Richard Henderson - - * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. - (PREDICATE_CODES): Add addition_operation. - * alpha-protos.h (addition_operation): Declare. - (secondary_reload_class): Likewise. - * alpha.c (addition_operation): New. - (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS. - * alpha.md (adddi3): Turn into expander. - (*lda, *adddi_2): New. - (movsf, movdf patterns): Don't preference integer regs. - (movsi, movdi patterns): Don't preference fp regs. - -Sat Oct 30 14:38:22 1999 Richard Henderson - - * genrecog.c (write_switch): Check for duplicate CODE cases. - -Sat Oct 30 14:31:48 1999 Richard Henderson - - * ggc-common.c: Update pre-function commentary. - * ggc-page.c: Likewise. - (poison): Remove. - (poison_pages): Use memset directly. - (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages. - (ggc_collect): Poison before sweeping. - * ggc-simple.c: Update pre-function commentary. - (ggc_alloc_obj): Poison non-zeroed memory. - -Sat Oct 30 14:28:52 1999 Mark Mitchell - - * ggc-common.c (ggc_print_statistics): Make arguments to fprintf - match format string, even on 64-bit hosts. - * gcc-page.c (ggc_page_print_statistics): Likewise. - -Sat Oct 30 14:38:04 1999 Catherine Moore - - * config/i386/i386.c (ix86_cpu): Revert last patch. - * config/i386/i386.h (ix86_cpu): Ditto. - -Fri Oct 29 17:00:42 1999 Jim Wilson - - * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from - TYPE_SIZE, convert type of result to sizetype. - -Fri Oct 29 14:34:17 1999 Richard Henderson - - * flow.c (count_or_remove_death_notes): Equate NULL with the - universal set. - - * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change. - * toplev.c (rest_of_compilation): Rebuild CFG immediately before - dbr_schedule. - - * i386.c (pic_label_no): Delete. - (ix86_attr_length_default): Don't use single_set to peek - inside a parallel. - - * recog.c (peephole2_optimize): Allow recog_next_insn to index - the first insn after bb->end. - * i386.md (push mem peeps): Scratch is live after evaluation - of the memory. - (cmp mem peep): Similarly. - -Fri Oct 29 11:50:11 1999 Catherine Moore - - * calls.c (emit_library_call_value): Fix declaration of alignment_pad. - * function.c (pad_to_arg_alignment): Add missing braces. - -Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi - - * alpha/alpha-protos.h (literal_section): Add prototype. - (alpha_need_linkage, alpha_start_function,alpha_end_function): - Constify a char*. - - * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add - prototype. - (alpha_start_function, alpha_end_function, float_strings, - alpha_need_linkage): Constify a char* - - * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise. - - * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise. - -Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi - - * flow.c (debug_flow_info): Add prototype. - - * gcc.c (main): Likewise. - - * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work): - Likewise. - - * reload1.c (failed_reload, set_reload_reg): Likewise. - - * mips-tfile.c (main): Likewise. - (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark - with ATTRIBUTE_NORETURN. - -Fri Oct 29 18:16:03 1999 Andrew Haley - - * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if - DECL is not a memory ref. - -Fri Oct 29 09:05:34 1999 Catherine Moore - - * config/i386/i386.h (ix86_cpu): Remove extern attribute. - * config/i386/i386.c (ix86_cpu): Add extern attribute. - -Fri Oct 29 16:30:04 1999 Andrew Haley - - * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN. - * config/mips/elf64.h: ditto. - -Fri Oct 29 08:03:57 1999 Catherine Moore - - * expr.c (emit_push_insn): New argument alignment_pad. - Update all callers. Adjust stack pointer based on alignment pad. - * function.c (pad_to_arg_alignment): New argument alignment_pad. - Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY. - (locate_and_pad_parm): New argument alignment_pad. Update all - callers. - * expr.h (emit_push_insn): Update prototype. - (locate_and_pad_parm): Update prototype. - * calls.c (arg_data): Add new field alignment_pad. - (initialize_argument_information): Initialize alignment_pad. - -Fri Oct 29 02:51:35 1999 Mark Mitchell - - * except.c (free_eh_nesting_info): Free the info itself. - * function.c (free_after_compilation): Don't free NULL. - * gcse.c (alloc_pre_mem): Free the temp_bitmap, too. - (pre_edge_insert): Free inserted. - * stmt.c (free_stmt_status): Don't free NULL. - -Fri Oct 29 15:25:07 1999 Arnaud Charlet - - * gcov.c (DIR_SEPARATOR): Provide default. - (output_data): Add test for MS-DOS format absolute filename. - (fancy_abort): Correct program name. - (open_files): Open all files in binary mode. - * libgcc2.c (__bb_exit_func): Likewise. - - * profile.c (init_branch_prob): Specify binary when opening files. - - * flags.h (flag_unwind_tables): New decl. - * toplev.c (flag_unwind_table): New definition. - (f_options): Add -funwind-tables. - (decode_g_option): Clarify warning when unknown -g option is given. - (rest_of_compilation): If inside an inlined external function, - pretend we are just being declared. - - * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables. - (dwarf2out_frame_finish): Likewise. - -Fri Oct 29 07:44:26 1999 Vasco Pedro - - * fold-const.c (merge_ranges): If not in0, but in1, handle - upper bounds equal like subset case. - -Thu Oct 28 19:22:24 1999 Douglas Rupp - - * dbxout.c (dbxout_parms): Generate a second stabs line for parameters - passed in a register but moved to the stack. - -Thu Oct 28 19:12:57 1999 Sam Tardieu - - * gcc.c (pass_exit_codes, greatest_status): New variables. - (struct option_map): Add entry for "--pass-exit-codes". - (execute): Update greatest_status if error. - (display_help): Add documentation for -pass-exit-codes. - (process_command): Handle -pass-exit-codes. - (main): Look at pass_exit_codes and greatest_status on call to exit. - -Thu Oct 28 18:06:50 1999 Richard Kenner - - * reload.c (find_reloads): Refine test for no input reload - case to not includes reloads emitted after insn. - - * function.c (find_temp_slots_from_address): Handle sum involving - a register that points to a temp slot. - (update_temp_slot_address): Make recursive call if both old and - new are PLUS with a common operand. - * calls.c (expand_call): Mark temp slot for result as having - address taken. - - * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case. - - * gcc.c (process_command): Add standard_exec_prefix with "GCC" - component as well as "BINUTILS". - - * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS. - * integrate.c (copy_rtx_and_substitute): Likewise. - (expand_inline_function, integrate_parm_decls, integrate_decl_tree): - All callers changed. - * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise. - - * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use - gdb extensions, write size of type; also be more consistent - in using references when this is a subtype. - - * pa.md (extv, extzv, insv): Use define_expand to reject constant - that is out of range. - - * loop.c (unknown_constant_address_altered): New variable. - (prescan_loop): Initialize it. - (note_addr_stored): Set it for RTX_UNCHANGING_P MEM. - (invariant_p, case MEM): Remove handling for volatile and readonly; - check new variable if readonly. - (check_dbra_loop): Chdeck unknown_constant_address_altered. - - * cse.c (canon_hash, case MEM): Do not record if BLKmode. - (addr_affects_sp_p): Removed from note_mem_written and only - define #ifdef AUTO_INC_DEC. - - * alpha.c (input_operand, case ADDRESSOF): Treat as REG. - - * regclass.c (record_reg_classes): Properly handle register move - directions. - - * varasm.c (initializer_constant_valid_p, case MINUS_EXPR): - Don't think valid if both operands are invalid. - (struct constant_descriptor): New field RTL. - (mark_const_hash_entry): Mark it. - (record_constant{,_rtx}): Initialize it. - (output_constant_def): Allocate RTL in permanent obstack and - save in table. - ({record,compare}_constant_1): Modes must match for - CONSTRUCTOR of ARRAY_TYPE. - - * c-common.h (initializer_constant_valid_p): Delete decl from here. - * output.h (initializer_constant_valid_p): Move decl to here. - * c-common.c (initializer_constant_valid_p): Delete function from here. - * varasm.c (initializer_constant_valid_p): Move function to here. - - * tree.h (STRIP_SIGN_NOPS): New macro. - * fold-const.c (optimize_minmax_comparison): New function. - (invert_truthvalue, case WITH_RECORD_EXPR): New case. - (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS. - (fold, case EQ_EXPR): Call optimize_minmax_comparison and add - cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and - widening conversions. - (fold, case LE_EXPR): Rework changing unsigned to signed comparisons - to look at size of mode, not precision of type; also add missing cases. - (optimize_bit_field_compare, decode_field_reference): Don't try to - optimize COMPONENT_REF of a PLACEHOLDER_EXPR. - - * dwarf2out.c (ctype.h): Include. - (dwarf2out_set_demangle_name_func): New function. - (size_of_line_info): Deleted. - (output_line_info): Compute size of line info table from difference - of labels. - (base_type_die, add_name_attribute): Call demangle function, if any. - (field_byte_offset): Use bits per word for variable length fields. - (gen_array_type_die): Add array name. - (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline. - (dwarf2out_add_library_unit_info): New function. - - * explow.c (set_stack_check_libfunc): New function. - (stack_check_libfunc): New static variable. - (probe_stack_range): Allow front-end to set up a libfunc to call. - - * combine.c (simplify_comparison): When making comparison in wider - mode, check for having commuted an AND and a SUBREG. - (contains_muldiv): New function. - (try_combine): Call it when dividing a PARALLEL. - (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart. - (simplify_comparison, case ASHIFTRT): Recognize sign-extension of - a PLUS. - (record_value_for_reg): If TEM is a binary operation with two CLOBBERs, - use one of the CLOBBERs instead. - (if_then_else_cond): If comparing against zero, just return thing - being compared. - - * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x). - Don't generate shifts and subtract if have conditional arithmetic. - - * rtl.h (delete_barrier): New declaration. - * jump.c (jump_optimize): Set up to handle conditional call. - In conditional arithmetic case, handle CALL_INSN followed by a BARRIER. - (delete_barrier): New function. - - * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode. - - * recog.c (nonmemory_operand): Accept ADDRESSOF. - - * tree.c (build_type_attribute_variant): Push to obstack of - ttype around type_hash_canon call. - - * expr.c (placeholder_list): Move decl to file scope. - (expand_expr): Don't force access to volatile just because its - address is taken. - If ignoring reference operations, just expand the operands. - (expand_expr, case COMPONENT_REF): Propagate - EXPAND_CONST_ADDRESS to recursive call when expanding inner. - Refine test for using bitfield operations vs pointer punning. - (expand_expr, case CONVERT_EXPR): If converting to - BLKmode UNION_TYPE from BLKmode, just return inner object. - Use proper mode in store_field call. - Properly set sizes of object to store and total size in store_field - call for convert to union. - (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in - memory (like for ADDR_EXPR). Also, don't put constant in register if - we'll want it in memory. - (readonly_fields_p): New function. - (expand_expr, case INDIRECT_REF): Call it if LHS. - (expand_assignment): Handle a RESULT_DECL where - DECL_RTL is a PARALLEL. - (do_jump, case WITH_RECORD_EXPR): New case. - (get_inner_reference): Always go inside a CONVERT_EXPR - and NOP_EXPR if both modes are the same. - (store_field): Use bitfield operations if size of bitsize is not same - as size of RHS's type. - Check for bitpos not a multiple of alignment in BLKmode case. - Do block move in largest possible alignment. - (store_constructor): Set BITSIZE to -1 for variable size and properly - in case of array of BLKmode. - (expand_expr_unaligned): New function. - (do_compare_and_jump): Call it. - - * mips/iris5.h (SWITCHES_NEED_SPACES): New macro. - * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES - does not include 'o'. - - * function.c (instantiate_virtual_regs_1, case SET): Handle case where - both SET_DEST and SET_SRC reference a virtual register. - (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG. - - * integrate.c (expand_inline_function): Handle case of setting - virtual stack vars register (from built in setjmp); when parameter - lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early. - (subst_constant): Add new parm, MEMONLY. - (expand_inline_function, integrate_parm_decls): Pass new parm. - (integrate_decl_tree): Likewise. - (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P. - (try_constants): Call subst_constants twice, with MEMONLY 0 and 1. - (copy_rtx_and_substitute, case SET): Add explicit calls to - copy_rtx_and_substitute for both sides. - - * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for - constraints. - (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for - within INDEX_TYPE, instead of before. - (fixup_gotos): Use f->target_rtl, not the next insn, - since latter may be from a later fixup. - (expand_value_return): Correctly convert VAL when promoting function - return; support RETURN_REG being a PARALLEL. - (expand_return): When checking for result in regs and having - cleanup, consider PARALLEL in DECL_RTL as being in regs. - -1999-10-28 21:27 -0700 Zack Weinberg - - * cpplib.h (struct cpp_buffer: fname, nominal_fname, - last_nominal_fname): Mark const. - (struct include_hash: name, nshort, control_macro): Mark - const. - (struct macrodef: symnam): Mark const. - (struct if_stack: fname): Mark const. - (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete. - (IStable): New character-syntax array which encompasses all - the old is_foo arrays. - (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace, - is_space): New macros for interrogating IStable. - (check_macro_name): Kill last argument. All callers changed. - - * cppinit.c (initialize_char_syntax): Delete. - (is_idchar, is_idstart, is_hor_space, is_space, - trigraph_table): Delete. - (IStable): New. Initialize with clever macros to avoid - information duplication. - (builtin_array): Table of builtins to get rid of explicit list - in initialize_builtins. - (initialize_builtins): Use builtins_array. - (cpp_start_read): Call init_IStable, and set IStable['$'] if - opts->dollars_in_ident. - - * cppexp.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - (cpp_parse_expr): Avoid 'format string is not constant' - warning. Use ISGRAPH to identify printable chars. - * cppfiles.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - (read_and_prescan): Map trigraphs to chars with open-coded - if-else-if-... sequence, not a lookup table. - * cpphash.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - * cpplib.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused). - (check_macro_name): Remove ability to report an invalid - assertion name, which is never used. - (do_line): Constify a couple of char *'s. - * cppmain.c (main): Call cpp_cleanup before returning. - -Thu Oct 28 21:16:35 1999 Mark Mitchell - - * ggc.h (struct ggc_statistics): New type. - (ggc_get_size): New function. - (ggc_print_statistics): Likewise. - * ggc-common.c (ggc_stats): New variable. - (ggc_mark_rtx_children): Keep statistics. - (ggc_mark_tree_children): Likewise. - (ggc_print_statistics): New function. - * ggc-page.c (struct globals): Add bytes_mapped field. - (alloc_anon): Update it. - (release_pages): Likewise. - (ggc_get_size): New function. - (ggc_page_print_statistics): New function. - * ggc-simple.c (ggc_get_size): New function. - -Fri Oct 29 06:32:44 1999 Geoffrey Keating - - * flow.c (propagate_block): When the last reference to a label - before an ADDR_VEC is deleted because the reference is a dead - store, delete the ADDR_VEC. - -Thu Oct 28 12:28:50 1999 Richard Henderson - - * resource.c (find_free_register): Don't use the frame pointer - if frame_pointer_needed. - -Thu Oct 28 10:02:00 1999 Jim Wilson - - * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. - (function_arg_pass_by_reference): Check for a NULL pointer in cum. - - * config/i960/i960.c (i960_va_start): New locals base, num. - Use INDIRECT_REF instead of ARRAY_REF on valist. - (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist. - -Thu Oct 28 09:45:48 1999 Mark Mitchell - - * gcse.c (delete_null_pointer_checks): Fix typo in previous change. - -Thu Oct 28 03:37:50 1999 Peter Gerwinski - - * tree.def (PLACEHOLDER_EXPR): Update comments. - -Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi - - * c-common.c (check_format_info): Avoid non-literal format string - warnings when `first_arg_num' is zero. - -Thu Oct 28 12:28:48 1999 Bernd Schmidt - - * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s. - -Thu Oct 28 11:05:13 1999 Richard Earnshaw - - * arm.md (casesi_insn): Add a clobber of the condition code - register. - -Mon Oct 18 21:16:06 1999 Fred Fish - - * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is - used by both cc1 and cc1plus. - -Thu Oct 28 10:00:48 1999 Nick Clifton - - * config/arm/arm.c: Initialise arm_structure_size_boundary to - DEFAULT_STRUCTURE_SIZE_BOUNDARY. - * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define - to the value 32 if it has not already been defined. - * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): - Override definition in arm.h with a value of 8. - -Thu Oct 28 03:12:02 1999 David Starner - - * c-pragma.c (push_alignment): Don't check the return value - of xmalloc. - -Thu Oct 28 03:08:38 1999 Matteo Frigo - - * sparc.h (ADJUST_COST): Fix thinko. - -Thu Oct 28 02:44:03 1999 Glen Nakamura - - * cccp.c (rescan): Fixed obp pointer handling around call to - check_expand subroutine. - -Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (delete_null_pointer_checks): Only record non-null info - for pseudos when examining stores. - - * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add - splitters for these patterns. Use "#" for output templates. - (addsi3_carryin_shift): New pattern. - -Thu Oct 28 10:20:02 1999 Geoffrey Keating - - * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG - of the function return register into a plain REG until - after function inlining is done. - -Wed Oct 27 15:21:46 1999 Richard Henderson - - * jump.c (jump_optimize_1): If we did cross-jumping, and - the data will matter, rebuild the CFG. - * reg-stack.c (reg_to_stack): Only (re)build the CFG if - not optimizing. Don't run shorten_branches. - * toplev.c (rest_of_compilation): Run shorten_branches after - reg_to_stack. - -Wed Oct 27 12:33:40 1999 Mark Mitchell - - * rtl.h (note_stores): Add additional paramter. - * rtlanal.c (reg_set_p_1): Take additional paramter. - (reg_set_last_1): Likewise. - (reg_set_p): Adjust call to note_stores. - (reg_set_last): Likewise. - (note_stores): Pass data parameter to worker function. - * alias.c (record_set): Take additional parameter. - (init_alias_analysis): Pass it. - * caller-save.c (mark_set_regs): Take additional parameter. - (save_call_clobbered_regs): Pass NULL to note_stores. - * combine.c (set_nonzero_bits_and_sign_copies): Take additional - parameter. - (record_dead_and_set_regs_1): Likewise. - (reg_dead_at_p_1): Likewise. - (combine_instructions): Adjust calls to note_stores. - (try_combine): Likewise. - (record_dead_insn): Remove. - (record_dead_and_set_regs): Adjust calls to note_stores. - (reg_dead_at_p): Likewise. - * cse.c (invalidate_skipped_set): Take additional parameter. - (cse_check_loop_start): Likewise. - (cse_check_loop_start_value): Remove. - (cse_set_around_loop): Adjust calls to note_stores. - * flow.c (notice_stack_pointer_modification): Take additional - parameter. Remove duplicate declaration. - (record_volatile_insns): Adjust calls to note_stores. - * gcse.c (record_set_info): Take additional parameter. - (record_last_set_info): Likewise. - (invalidate_nonnull_info): Likewise. - (record_set_insn): Remove. - (compute_sets): Adjust calls to note_stores. - (last_set_insn): Remove. - (compute_hash_table): Adjust calls to note_stores. - (insert_insn_end_bb): Likewise. - (delete_null_pointer_checks): Likewise. - * global.c (mark_reg_store): Take additional parameter. - (mark_reg_clobber): Likewise. - (reg_becomes_live): Likewise. - (global_conflicts): Adjust calls to note_stores. - (build_insn_chain): Likewise. - * integrate.c (note_modified_parmregs): Take additional parameter. - (mark_stores): Likewise. Make it static. - (save_for_inline_nocopy): Adjust calls to note_stores. - (try_constants): Likewise. - * integrate.h (mark_stores): Remove declaration. - * jump.c (mark_modified_reg): Take additional parameter. - (thread_jumps): Adjust calls to note_stores. - * local-alloc.c (validate_equiv_mem_from_store): Take additional - parameter. - (no_equiv): Likewise. - (reg_is_set): Likewise. - (validate_equiv_mem): Adjust calls to note_stores. - (update_equiv_regs): Likewise. - (block_alloc): Likewise. - * loop.c (note_set_pseudo_multiple_uses_retval): Remove. - (note_addr_stored): Take additional parameter. - (note_set_pseudo_multiple_uses): Likewise. - (record_initial): Likewise. - (prescan_loop): Adjust calls to note_stores. - (strength_reduce): Likewise. - (check_dbra_loop): Likewise. - * regmove.c (flags_set_1): Take additional paramter. - (mark_flags_life_zones): Adjust calls to note_stores. - * reload1.c (mark_not_eliminable): Take additional parameter. - (forget_old_reloads_1): Likewise. - (reload_cse_invalidate_rtx): Likewise. - (reload_cse_check_clobber): Likewise. - (reload_combine_note_store): Likewise. - (move2add_note_store): Likewise. - (reload): Adjust calls to note_stores. - (reload_as_needed): Likewise. - (emit_reload_insns): Likewise. - (reload_cse_regs_1): Likewise. - (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx. - (reload_combine): Adjust calls to note_stores. - * resource.c (update_live_status): Take additional paramter. - (mark_target_live_regs): Adjust calls to note_stores. - * stupid.c (find_clobbered_regs): Take additional parameter. - (stupid_life_analysis): Adjust calls to note_stores. - -Wed Oct 27 19:26:12 1999 Nick Clifton - - * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete - definition. - - * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete - definition. - - * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms - of the variable arm_structure_size_boundary. - -Wed Oct 27 02:05:58 1999 Mark P. Mitchell - - * alias.c (init_alias_analysis): Allocate reg_known_value and - reg_known_equiv_p on the heap. Likewise for new_reg_base_value - and reg_seen. - (end_alias_analysis): Free reg_known_value and reg_known_equiv_p. - * cse.c (cse_main): Call end_alias_analysis. - * haifa-sched.c (schedule_insns): Likewise. - * local-alloc. (update_equiv_regs): Likewise. - * reload1.c (reload_cse_regs): Likewise. - -Wed Oct 27 01:49:17 1999 Rainer Orth - - * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET. - * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse - mapping from MASK_FPU. - -Wed Oct 27 01:42:26 1999 Scott Christley - - * sparc.md (call): Don't bound structure return size to 0xfff. - -Wed Oct 27 00:56:59 1999 Richard Henderson - - * resource.c (mark_target_live_regs): Check that the target - insn wasn't created after compute_bb_for_insn. - -Tue Oct 26 23:15:03 1999 Mark Mitchell - - * ggc-page.c (poison_pages): Don't be overzealous. - -Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com) - - * alias.c: Update comments for ADDRESS. - (nonlocal_reference_p): Look inside the ADDRESS to determine if - it is a local memory reference. - - * c-typeck.c (build_function_call): Check that the built-in - function is of class BUILT_IN_NORMAL before trying to recongize - it as BUILT_IN_ABS. - * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA. - * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE. - -Wed Oct 27 00:14:13 1999 Robert Lipe - - * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead - of alloca. - (pre_gcse): Likewise. - (hoist_expr_reaches_here_p): Likewise. - (hoist_code): Likewise. - (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core - code to ... - (pre_expr_reaches_here_p_work): ... here. - (expr_reaches_here_p): Replace alloca with xcalloc. Move core - code to ... - (expr_reaches_here_p_work): ... here. - -Tue Oct 26 20:42:45 1999 Richard Henderson - - * resource.c (find_basic_block): Delete. - (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead. - (init_resource_info): Call compute_bb_for_insn. - -Tue Oct 26 20:21:02 1999 Richard Henderson - - * flow.c (merge_blocks_move_predecessor_nojumps): Cope - with already adjacent blocks, but no fallthru. - (merge_blocks_move_successor_nojumps): Simplify. - (debug_flow_info): New. - - * toplev.c (rest_of_compilation): Open jump1 dump file before - jump and close after, as opposed to just using dump_rtl. - -Wed Oct 27 03:09:23 1999 J"orn Rennecke - - * reload.h (earlyclobber_operand_p): Declare. - * reload.c (earlyclobber_operand_p): Don't declare. No longer static. - * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with - an earlyclobbered output conflict with RELOAD_INPUT reloads - handle - case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p. - -Tue Oct 26 18:23:38 1999 Jan Hubicka - Richard Henderson - - * emit-rtl.c (emit_block_insn_before): New. - (emit_block_insn_after): New. - * basic-block.h: Declare them. - - * bitmap.h: Protect from multiple inclusion. - - * recog.c (scratch_operand): Handle VOIDmode correctly. - - * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New. - - * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack. - * function.c (assign_parms): Likewise. - * global.c (global_conflicts): Clarify STACK_REGS commentary. - - * reg-stack.c (max_uid): Remove. - (blocks, block_begin, block_end, block_drops_in): Remove. - (block_stack_in, block_out_reg_set, block_number): Remove. - (struct block_info_def, BLOCK_INFO): New. - (enum emit_where): New. - (current_block): New. - (BLOCK_NUM): Remove. - (mark_regs_pat, record_label_references): Remove. - (record_reg_life_pat, record_reg_life, find_blocks): Remove. - (nan): New. - (goto_block_pat, print_blocks, dump_stack_info): Remove. - (reg_to_stack): Simplified test for existance of fp code. Use - flow.c code. Call shorten_branches after cross-jump opt. - (check_asm_stack_operands): Renamed from record_asm_reg_life. - Return false if the asm doesn't use stack regs. Don't do life - analysis on the asm. - (emit_pop_insn): Replace function pointer arg `when' with - enum `where'. Update all callers. - (change_stack): Likewise. Update basic block end. - (emit_swap_insn): Use current_block->head to limit reverse search - for start of block. Use emit_block_insn_after. - (subst_stack_regs_pat): Handle USE and CLOBBER patterns. - (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct - structure assignment instead of bcopy. - (print_stack): New. - (convert_regs_entry, convert_regs_exit): New. - (convert_regs_1, convert_regs_2): Split out from convert_regs. - Work on basic blocks and the CFG. - (convert_regs): Use them. - - * i386.c (output_fix_trunc): Remove code for DImode input operand - not at top-of-stack. - * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with - appropriate mode. - (fix_truncdi_1): Allow any mode scratch. - -Tue Oct 26 13:30:35 1999 Richard Henderson - - * alpha.h (TARGET_MEM_FUNCTIONS): Define here. - * linux.h, netbsd.h, vms.h: Not here. - -1999-10-26 Gavin Romig-Koch - - * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY, - ISA_HAS_FP4,ISA_HAS_CONDMOVE): New. - (GENERATE_BRANCHLIKELY,HAVE_SQRT_P, - CONDITIONAL_REGISTER_USEAGE): Use them. - * config/mips/mips.c (mips_move_1word,mips_move_2words, - gen_conditional_branch,override_options) : Use them. - * config/mips/mips.md : Use them. - -Tue Oct 26 13:09:23 1999 Richard Henderson - - * i386.md (zero_extendqihi2): Use SImode register name with andl. - -Tue Oct 26 12:35:38 1999 Richard Henderson - - * integrate.c (function_cannot_inline_p): Don't allow inlining - if setjmp is used. - -Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi - - * c-parse.in (cast_expr): Constify. - - * cccp.c (special_symbol): Likewise. - - * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise. - - * dwarf2out.c (base_type_die): Likewise. - - * global.c (allocno_compare): Likewise. - - * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise. - - * regclass.c (fix_register): Likewise. - - * rtl.h (fix_register): Likewise. - - * stupid.c (stupid_reg_compare): Likewise. - - * toplev.c (decode_f_option): Likewise. - - * tree.c (build_complex_type): Likewise. - -Tue Oct 26 18:35:25 1999 Richard Earnshaw - - * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE. - -Tue Oct 26 15:42:56 1999 Bernd Schmidt - - * reload.c (find_reloads): Compute mode and nregs fields of all - reloads. - * reload1.c (calculate_needs_all_insns): Simplify a bit. - (calculate_needs): Use precomputed mode/nregs values. - (allocate_reload_reg): Likewise. - Break out two... - (failed_reload, set_reload_reg): ... new functions. - (choose_reload_regs_init): New function, mostly broken out from... - (choose_reload_regs): ... here. Lose all the save_xxx nonsense. - Also lose one #if 0 block. - -Tue Oct 26 02:48:32 1999 Marc Espie - - * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name - substitution. - -Tue Oct 26 01:27:32 1999 Mark Mitchell - - * tree.h (BLOCK_TYPE_TAGS): Remove. - (BLOCK_END_NOTE): Likewise. - (BLOCK_LIVE_RANGE_FLAG): Likewise. - (BLOCK_LIVE_RANGE_START): Likewise. - (BLOCK_LIVE_RANGE_END): Likewise. - (tree_block): Remove live_range_flag, live_range_var_flag, and - type_tags. Remove end_note, live_range_start, and live_range_end. - (remember_end_note): Remove prototype. - * tree.c (build_block): Don't set BLOCK_TYPE_TAGS. - * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call - remember_end_note. - * ggc-common.c (ggc_mark_tree_children): Don't mark - BLOCK_TYPE_TAGS or BLOCK_END_NOTE. - * integrate.c (adjust_copied_decl_tree): Remove. - * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS. - * stmt.c (last_block_end_note): Remove. - (init_stmt): Don't add a GC root for it. - (expand_fixup): Don't set it. - (remember_end_note): Remove. - (expand_end_bindings): Don't set last_block_end_note. - -Tue Oct 26 00:41:54 1999 Bernd Schmidt - - * reload1.c (reload_reg_free_for_value_p): Show - RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER - reloads. - -Mon Oct 25 23:54:45 1999 Geoff Keating - - * expmed.c (extract_bit_field): Allow for the case of non-integer - objects that are smaller than a word (like SFmode on a 64-bit - machine). - - * loop.c (basic_induction_var): A non-integer variable which is - being set by a paradoxical subreg is probably not a biv. - -1999-10-25 Herman A.J. ten Brugge - - * prefix.c (translate_name) Check for empty prefix string. - -Mon Oct 25 23:10:45 1999 Andreas Schwab - - * Makefile.in (CPP_CROSS_NAME): New variable. - (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross - xcpp. - (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the - names of the files to be uninstalled. - -Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com) - - * collect2.c (IS_DIR_SEPARATOR): Define. - (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR. - - * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static - functions too. - - * haifa-sched.c (add_dependence): Update the true dependency - cache the first time we add a true dependence to the LOG_LINKS chain. - -Mon Oct 25 22:27:40 1999 Jim Kingdon - - * fold-const.c (fold): Fix comment. - -Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi - - * dbxout.c (lastfile, cwd, dbxout_type_method_1, - dbxout_symbol_location, dbxout_symbol_name, dbxout_init, - dbxout_start_new_source_file, dbxout_source_file, - dbxout_source_line, dbxout_finish, dbxout_type_fields, - dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol): - Constify a char*. - (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes. - (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED. - (dbxout_block): Initialize variable `blocknum'. - - * dbxout.h (dbxout_init, dbxout_finish, - dbxout_start_new_source_file, dbxout_source_file, dbxout_types, - dbxout_args, dbxout_source_line): Constify a char*. - - * dwarfout.c (dwarf_tag_name, dwarf_attr_name, - dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name, - dwarf_fund_type_name, name_attribute, stmt_list_attribute, - low_pc_attribute, high_pc_attribute, body_begin_attribute, - body_end_attribute, comp_dir_attribute, sf_names_attribute, - src_info_attribute, mac_info_attribute, producer_attribute, - lookup_filename, generate_macinfo_entry, fundamental_type_code, - dwarfout_line, dwarfout_start_new_source_file, dwarfout_define, - dwarfout_undef): Constify a char*. - (add_incomplete_type, retry_incomplete_types): Add prototypes. - - * dwarfout.h (dwarfout_define, dwarfout_undef, - dwarfout_start_new_source_file, dwarfout_line): Constify a char*. - -1999-10-25 Gavin Romig-Koch - - * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined. - (MULTILIB_ISA_DEFAULT): New. - (MULTILIB_DEFAULTS): Use it. - * config/mips/mips.c (): Remove the now unnecessary definition - of MIPS_ISA_DEFAULT. - * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now - unnecessary definition. - -Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (pic_load_addr): Add constraints to operand 1. - -1999-10-25 Bruce Korb - - * fixinc/genfixes: Provide a means for specifying -D options to - AutoGen - -Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com) - - * arm.c (arm_override_options): Correct initialization of - arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched, - arm_is_strong, and arm_is_6_or_7. - - * loop.c (note_set_pseudo_multiple_uses_retval): New variable. - (note_set_pseudo_multiple_uses): New function. - (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine - if a pseudo set in the loop exit is used elsewhere. - -Sun Oct 24 20:52:40 1999 Mark Mitchell - - * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler. - -Sun Oct 24 21:02:46 1999 Richard Henderson - - * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into - a single load-address pattern. - -Sun Oct 24 19:33:24 1999 Mark P. Mitchell - - * haifa-sched.c (schedule_insns): Don't assign LUIDs differently - depending on whether or not line-number notes are present. - -Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi - - * cccp.c (progname, file_buf, default_include, include_file, - macrodef, definition, hashval, wchar_type, user_label_prefix, - directive, out_fname, if_stack, safe_write, index0, get_lintcmd, - expand_to_temp_buffer, is_system_include, base_name, - absolute_filename, read_name_map, open_include_file, - record_control_macro, check_precompiled, check_preconditions, - pcfinclude, pass_thru_directive, create_definition, - check_macro_name, comp_def_part, collect_expansion, - check_assertion, read_token_list, assertion_install, - assertion_lookup, eval_if_expression, conditional_skip, - validate_else, skip_quoted_string, quote_string, macarg1, - error_from_errno, install, lookup, hashf, dump_defn_1, - perror_with_name, pfatal_with_name, main, trigraph_pcp, - check_white_space, rescan, handle_directive, monthnames, - special_symbol, do_include, remap_include_file, write_output, - arglist, do_assert, do_unassert, do_line, do_error, do_once, - do_ident, do_sccs, do_xifdef, skip_if_group, - output_line_directive, macroexpand, macarg, change_newlines, - initialize_builtins, make_definition): Constify a char*. - - * pcp.h (stringdef): Likewise. - -Sun Oct 24 13:29:28 1999 Richard Henderson - - * unroll.c (copy_loop_body): Examine SET_DEST of single_set - not of pattern. - -Sun Oct 24 13:14:20 1999 Graham - Richard Henderson - - * alias.c: Include ggc.h. - (reg_base_value, new_reg_base_value, reg_base_value_size): Make static. - (record_set): Verify enough room in reg_base_value. - (init_alias_analysis): Allocate reg_base_value with xcalloc. - Register it as a GC root. - (end_alias_analysis): Free reg_base_value. Remove it as a GC root. - * Makefile.in (alias.o): Depend on ggc.h. - - * unroll.c (unroll_loop): Verify the insn before a barrier - is a JUMP_INSN before checking JUMP_LABEL. - -Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi - - * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*. - * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise. - * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/mips.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. - -Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi - - * output.h (ctors_section, dtors_section, bss_section): Prototype. - - * alpha/alpha-interix.h (text_section): Delete prototype. - * alpha/elf.h (text_section): Likewise. - * arm/linux-elf.h (text_section): Likewise. - * arm/linux-telf.h (text_section): Likewise. - * c4x/c4x.h (text_section): Likewise. - * dsp16xx/dsp16xx.h (bss_section): Likewise. - * elfos.h (text_section): Likewise. - * i386/aix386ng.h (text_section): Likewise. - * i386/i386-interix.h (text_section): Likewise. - * i386/sco5.h (text_section): Likewise. - * i386/svr3gas.h (text_section): Likewise. - * nextstep.h (text_section): Likewise. - * psos.h (text_section): Likewise. - * ptx4.h (text_section): Likewise. - * svr3.h (text_section): Likewise. - * svr4.h (text_section, ctors_section, dtors_section): Likewise. - -Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi - - * final.c (peephole): Delete prototype. - - * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. - (pre_insert_copies): Remove unused variable `bb'. - - * genrecog.c (debug_decision_0, debug_decision_list, main): Add - prototypes. - - * output.h (peephole): Add prototype. - -Sun Oct 24 11:35:30 1999 Mark P. Mitchell - - * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to - -O0. - -Sat Oct 23 21:13:00 1999 Mark Mitchell - - * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT - for inlined declarations. - -Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com) - - * arm.c (logical_binary_operator): New fucntion. - * arm.h (logical_binary_operator): Declare it. - (PREDICATE_CODES): Handle logical_binary_operator. - * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for - output constraints. Add appropriate splitters. - (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise. - (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise. - (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise. - -Fri Oct 22 23:46:50 1999 Bernd Schmidt - - * genoutput.c (struct operand_data): New elt eliminable. - (output_operand_data): Write it. - (scan_operands): Set it for MATCH_OPERAND, clear for other matchers. - (compare_operands): Take it into account. - * recog.h (struct insn_operand_data): New elt eliminable. - * reload1.c (check_eliminable_occurrences, elimination_effects): New - functions. - (old_asm_operands_vec, new_asm_operands_vec): Delete. - (eliminate_regs): Move code that detects changes to elimination - target regs into new function elimination_effects. - Delete one #if 0 block. - Abort for USE, CLOBBER, ASM_OPERANDS and SET. - (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs, - ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs. - Only call eliminate_regs for real operands of the insn, not for parts - of its structure or parts matched by things like match_operator. - Use elimination_effects and check_eliminable_occurrences. Use - copy_insn to duplicate the pattern when not in the final pass. - -Fri Oct 22 09:03:44 1999 Mark Mitchell - - * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld, - and fld. - -1999-10-22 Bruce Korb - - * fixinc/README: document the "mach" machine matching test - * fixinc/fixfixes.c: Implement the #else/#endif label fix - * fixinc/fixtests.c: Implement the #else/#endif label test - * fixinc/inclhack.def: utilize these tests and fixes - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - * fixinc/fixincl.sh: regen - -Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also - depend on ggc.h. - -Thu Oct 21 20:30:19 1999 Matthias Klose - - * gcc.1: Document exit codes. - -Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi - - * calls.c: Include tm_p.h later, so everything we need is defined. - * expr.c: Likewise. - * function.c: Likewise. - - * except.c: Include tm_p.h. - - * sparc.c: Likewise. - (dwarf2out_cfi_label): Don't prototype. - (check_return_regs, epilogue_renumber, - ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, - ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline, - ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask, - ultra_schedule_insn): Add static prototype. - (data_segment_operand, text_segment_operand): Call itself with the - proper number of arguments. - (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*. - - * sparc.h: Move all declarations to sparc-protos.h. - (SELECT_RTX_SECTION): Pass a missing MODE argument to - symbolic_operand. - - * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise. - - * config/svr4.h (text_section, ctors_section, dtors_section): Add - Prototypes. - (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION, - ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII): Constify a char*. - - * sparc-protos.h: New file for sparc prototypes. - -Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi - - * function.c (record_insns, contains): Always declare and define. - (record_insns): Mark with ATTRIBUTE_UNUSED. - -Thu Oct 21 13:03:49 1999 Jonathan Larmour - - * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option - to .section when outputting a .bss section to deal with multiple - .bss input sections (as happens with -fdata-sections) - Also output %progbits, not @progbits so the assembler doesn't treat as - a comment. - * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise - - * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of - thumb parts even when building with non-thumb CPUs, by forcing - thumb mode. - -Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.md (movsf_const_intreg): If splitting, length must be > 1. - (movdf_const_intreg_sp64): Similarly. - - * local-alloc.c (update_equiv_regs): Check the correct insn - for pre-existing REG_EQUIV notes. - -Wed Oct 20 20:41:46 1999 Mark Mitchell - - * cse.c (cse_end_of_basic_block): Don't return the end of a basic - block reached by a branch if we're not going to actually process - this block. - -Wed Oct 20 15:18:42 1999 Jim Wilson - - * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is - a local extern function declaration. - -Wed Oct 20 13:56:01 1999 Richard Henderson - - * i386.c (ix86_expand_prologue): Properly wrap USE around - reg for CALL_INSN_FUNCTION_USAGE. - -Thu Oct 14 18:51:37 1999 Andrew Haley - - * config/mips/mips.md (movdf_internal1a): Allow floating-point - move between GP_REGs. - -Wed Oct 20 15:36:11 1999 Andrew Haley - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of - the mode size when finding out if an offset is legal. - -Wed Oct 20 06:26:58 1999 Richard Henderson - - * basic-block.h (PROP_*): Move constants from ... - * flow.c: ... here. - (compute_bb_for_insn): Free the array before reallocating. - (update_life_info): New arg PROP_FLAGS; pass on to propagate_block. - (allocate_reg_life_data): Reset all reg variables collected by - propagate_block. - (get_block_head_tail): Don't convert from bb to block. - (get_bb_head_tail): New. Update all callers of get_block_head_tail. - (find_insn_reg_weight): Take block not bb. - (schedule_block): Don't set block num for moved insns. - (schedule_region): Don't update_life_info or find_insn_reg_weight. - (schedule_insns): Do it here instead. - * combine.c (combine_instructions): Invoke compute_bb_for_insn - before update_life_info. - * recog.c (split_all_insns, peephole2_optimize): Update for - new arg to update_life_info. - * rtlanal.c (remove_note): Cope with NULL note. - * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage - if we did sched1. - -Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com) - - * jump.c (jump_optimize_1): More accurately detect casesi insns. - - * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic - block records so that merge_blocks_nomove will clean up correctly. - (split_edge): Handle casesi insns. - - * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS. - -Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (call, call_value): Do not emit a blockage after restoring - the PIC register. - -Tue Oct 19 17:22:39 1999 Mark Mitchell - - * c-typeck.c (c_expand_asm_operands): Fix typo. - -Tue Oct 19 18:42:58 1999 Bernd Schmidt - - * arm.c (fpu_rhs_operand): Verify modes. - (fpu_add_operand): Likewise. - (di_operand): Likewise. - (soft_df_operand): Likewise. - -Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_return_in_memory): APCS rules state that the elements - of a structure returned in a register must be 'integer-like'. - -1999-10-19 Bruce Korb - - * fixinc/Makefile.in: Change the generation rules to run `genfixes' - in the source tree when the generated targets are out of date - * fixinc/genfixes: Alter it to run individual fixes for make. - * fixinc/README: rewrite - * fixinc/inclhack.def: moved initial comments to README - -Tue Oct 19 14:01:34 1999 Nick Clifton - - * toplev.c (main): Do not generate an error message if an - unrecognised command line switch is recognisable by another - language. If extra_warnings are enabled, then generate a - warning message instead. - -Tue Oct 19 11:41:12 1999 Mumit Khan - - * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro. - (insert_pack_attributes): Delete prototype. - - * c-pragma.c (default_alignment): New static variable. - (push_alignment): Initialize to current effective alignment. - (pop_alignment): Use to set new alignment. - (insert_pack_attributes): Delete function. - (handle_pragma_token): Set default_alignment as well each time - a #pragma pack() is encountered. - -Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (stack_result): Aggregates are not returned in - stack registers. - -Tue Oct 19 01:26:48 1999 Alasdair Baird - - * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation. - -Mon Oct 18 15:19:41 1999 Richard Henderson - - * basic-block.h (set_block_num): Declare. - * flow.c (update_life_info): Don't call compute_bb_for_insn - or free_basic_block_vars. - * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0. - (insn_orig_block): Remove. - (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM. - (schedule_block): Keep BLOCK_NUM up-to-date. - (schedule_insns): Use compute_bb_for_insn. - * recog.c (split_all_insns): Likewise. - (peephole2_optimize): Likewise. - -Mon Oct 18 18:50:51 1999 Andreas Schwab - - * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word - if the pic register is used. - -Mon Oct 18 02:38:46 1999 Bernd Schmidt - - * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT. - (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of - if that tests TREE_PERMANENT. - -Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (invalidate_for_call): Do not remove memory references from - the table here. It's handled elsewhere. - - * haifa-sched.c (add_dependence): Protect references to the - true dependency cache with #ifdef INSN_SCHEDULING. - (remove_dependence): Similarly. - - * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate - to the cfg code that this is a return instruction. - * mn10300.md (return_internal): Similarly. - - * combine.c (get_last_value): If the last set of a register - is after subst_low_cuid, then we can not use it to determine - the register's last value. - -Sun Oct 17 11:02:52 1999 Mark Mitchell - - * Makefile.in: Back out previous change. - -Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). - - * haifa-sched.c (add_dependence): Only check/update the cache - if it exists. - (remove_dependence): Likewise. - (schedule_insns): Only create the true_dependency_cache if the - average number of instructions in a basic block is very large. - -Sun Oct 17 11:02:52 1999 Mark Mitchell - - * Makefile.in (ggc-common.o): Depend on genrtl.h. - (ggc-simple.o): Likewise. - (ggc-page.o): Likewise. - -Sun Oct 17 02:09:50 1999 Andrew MacLeod - - * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available): - Prototype for exported functions. - (pre_lcm, pre_rev_lcm): Remove prototypes. - * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. - (compute_available): Move to lcm.c, and change parameter order. - (one_classic_gcse_pass): Call compute_ae_kill with parameters. - (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. - (gcse_main): No longer call compute_preds_succs. Rebuild the - set table after reach pre pass. - (pre_insert_map, pre_delete_map, edge_list): New. - (alloc_pre_mem): Allocate edge vectors. - (free_pre_mem): Delete edge vectors. - (compute_pre_data): Call new edge based lcm routines. - (process_insert_insn): New function. - (insert_insn_end_bb): Use it. - (pre_edge_insert): New function. - (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as - needed. - (pre_insert_copies): Revamp using new edge based lcm outputs. - (pre_delete): Likewise. - (one_pre_gcse_pass): Insert & remove fake edges to the exit - block. - (compute_code_hoist_vbeinout): New new edge based routines. - * lcm.c: Remove all the old LCM functions. Replace with new ones - that work with the new cfg datastructures and work with edges - instead of blocks. - -Sun Oct 17 00:44:17 1999 Bernd Schmidt - - * reload.h (struct reload): Add new fields "mode" and "nregs". - * reload1.c: Change all occurrences of reload_mode and reload_nregs - to reference the "mode" and "nregs" field within struct reload. - -Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (true_dependency_cache): New. - (add_dependence): Use the true dependency cache to avoid expensive - walks down the LOG_LINKS dependency list. Add entries to the - cache as necessary. - (remove_dependence): Remove entries from the true dependency cache - as needed. - (schedule_insns): Allocate and initialize and free the true - dependency cache. - - * haifa-sched.c (schedule_insns): Do not remove inter-block - dependencies anymore. - -Sat Oct 16 11:19:52 1999 Richard Henderson - - * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H. - * i386/t-winnt: Likewise. - -Sat Oct 16 11:11:54 1999 Richard Henderson - - * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug. - -1999-10-16 Manfred Hollstein - - * Makefile.in (LANGUAGES): Omit "proto". - (clean): Remove stale comment about removing unprotoize.c. - -Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi - - * protoize.c (safe_read, safe_write): Avoid the gcc extension of - using arithmetic on void pointers. - -Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (compute_block_forward_dependencies): Only check - for notes, deleted insns and duplicates if ENABLE_CHECKING is defined. - -Sat Oct 16 00:07:01 1999 Richard Henderson - - * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. - (expr_equiv_p): Reject memories with different alias sets. - -Fri Oct 15 15:17:29 1999 Greg McGary - - * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls. - * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags. - (f_options): Add "bounded-pointers" and "bounds-check" entries. - * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified". - (lang_init): Set default for flag_bounds_check if still "unspecified". - -Sat Oct 16 13:42:29 1999 Michael Hayes - - * config/c4x/c4x.md (HF mode patterns): Add missing modes. - -Sat Oct 16 13:37:46 1999 Michael Hayes - - * config/c4x/c4x.md (movstrqi_small): Utilise parallel move - instructions. - -Sat Oct 16 13:26:47 1999 Michael Hayes - - * config/c4x/c4x.md (*db_noclobber, - *decrement_and_branch_until_zero_noclobber): New patterns and - associated splitters. - -Sat Oct 16 13:13:15 1999 Michael Hayes - - * config/c4x/c4x.md (parallel instruction patterns): Rework - constraints to keep reload happy. - -Sat Oct 16 13:03:16 1999 Michael Hayes - - * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber, - *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber, - *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber): - Add new patterns and associated post-reload splitters. - -Sat Oct 16 12:42:12 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string. - -Sat Oct 16 12:34:44 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern - if appropriate. - * config/c4x/c4x.md (rpts_top): New pattern and splitter. - -Sat Oct 16 12:26:30 1999 Michael Hayes - - * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF - memory mode. - -Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Rely on memory_address_p to determine the - validity of non-indexed memory addresses. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic - operand in DFmode and SFmode when generating PA2.0 code. - -Fri Oct 15 14:25:19 1999 Richard Henderson - - * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF. - -Fri Oct 15 13:48:45 1999 Richard Henderson - - * mips.c (function_prologue): Fix argument types. - * mips.md (casesi): Use emit_jump_insn for casesi_internal. - (casesi_internal): Write to the scratch register. - -1999-10-15 11:16 -0700 Zack Weinberg - - * cppexp.c (cpp_parse_escape): Make static. Change second arg - to U_CHAR **. - (parse_charconst): Delete unnecessary cast when calling - cpp_parse_escape. - (cpplib.h): Kill prototype of cpp_parse_escape. - -Fri Oct 15 11:02:46 1999 Richard Henderson - - Based on patch from Michael Gschwind : - * unroll.c (unroll_loop): Cast return value of alloca. - * i370/i370.c: Include function.h and toplev.h. - (i370_label_scan): Remove c++ commented abort. - * i370/i370.h (HANDLE_PRAGMA): Takes three arguments. - (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept. - * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define. - * i370/xm-mvs.h, i370/xm-oe.h: Likewise. - -Fri Oct 15 03:01:01 1999 Loren Rittle - - * config/t-freebsd: Do not override USER_H. - * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_. - -Fri Oct 15 02:37:28 1999 Alastair J. Houghton - Mumit Khan - - * c-parse.in (component_decl): Support anonymous struct/union. - (%expect): Update. - * c-parse.y: Regenerate. - * c-parse.c: Likewise. - * objc/objc-parse.y: Likewise. - * objc/objc-parse.c: Likewise. - * c-decl.c (finish_struct): Don't sort the fields. - (field_decl_cmp): Delete unused function. - -Fri Oct 15 01:20:52 1999 Richard Henderson - - * sparc.md (movsf_const_intreg): Revert last constraint change. - (movdf_const_intreg_sp32): Likewise. - -Fri Oct 15 01:47:51 1999 Vladimir Makarov - - * cse.c: Include hashtab.h instead of splay-tree.h - (struct cse_reg_info): No longer use variant union. Add new - field "regno". All references changed to avoid union. - (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables. - (free_cse_reg_info): Remove. - (hash_cse_reg_info, cse_reg_info_equal_p): New functions. - (get_cse_reg_info): Revamp to use expandable hash tables instead - of splay trees. Initialize new fields in cse_reg_info structure. - (new_basic_block): Similarly. - -Thu Oct 14 23:51:56 1999 Richard Henderson - - * genrecog.c (message_with_line): Prototype. - (validate_pattern): Pass along the set for the dest, not a flag. - Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL. - Check for PC/CC0 as sources. - (nodes_identical): Check for children position match before - allowing the combination. - - * rtl.c (read_rtx): Track line number across \\\n. - -Thu Oct 14 23:50:25 1999 Richard Henderson - - * mips.h (SPECIAL_MODE_PREDICATES): New. - * mips.md (*) Use nonimmediate_operand not general_operand for outputs. - (movdi+1, movsi+1): Add output reload constraint. - (casesi_internal): Likewise. Fix commentary. - (return_internal): Use pmode_register_operand. - -Thu Oct 14 23:19:34 1999 Richard Henderson - - * 1750a.md (movstrqi): Add missing output reload constraint. - (call_value): Likewise. - * a29k.md (cpxxx patterns): Add missing match_operator mode. - (jmpfdec): Add missing inout reload constraint. - * elxsi.md (addsi patterns): Add missing output reload constraint. - (move from sp): Use @ alternates. - (call_value): No constraint on output. - * fr30.md (movsi_pop): Add missing output reload constraint. - (movsf_constant_store): Likewise. - (splits): Remove constraints. - (subsi3): Add missing mode. - * i370.md (cmpstrsi+1): Add missing output reload constraint. - (call_value): Likewise. - * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints. - * m32r.h (PREDICATE_CODES): Add seth_add3_operand. - * m32r.md (movsicc_internal): Add output reload constraint. - (movstrsi_internal): Add inout reload constraints. - * m88k.h (reg_names): Don't declare. - (SPECIAL_MODE_PREDICATES): New. - * m88k.md (*): Use register_operand not reg_or_0_operand - on destinations. - * mn10200.h (PREDICATE_CODES): New. - * ns32k.md (ffs pattern): Add output reload constraint. - * pdp11.md (sob pattern): Add inout reload constraint. - * sh.md (splits): Remove constraints. - (indirect_jump_scratch, fpu_switch): Add output reload constraint. - * v850.md (pattern_is_ok_for_epilogue): Likewise. - * vax.md (jgequ pattern): Add inout reload constraint. - -Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (djgpp): Revert previous patch. - * configure: Rebuit. - * config/i386/djgpp.h: Revert previous patch. - -Fri Oct 15 00:00:24 1999 Loren J. Rittle - - * fixinc/inclhack.def: Restore patch lost during last merge of - "no_bogosity" branch. - * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. - -Thu Oct 14 23:57:56 1999 Gavin Romig-Koch - - * fixincludes: Add a HPUX 11 fix for inttypes.h. - * fixinc/inclhack.def: Same. - * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate. - -Thu Oct 14 22:51:55 1999 Richard Henderson - - * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF - as the base of a PLUS. - -Fri Oct 15 18:36:07 1999 Michael Hayes - - * config/c4x/c4x.md: Define mode for remaining unspec operators. - * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand. - -Thu Oct 14 22:14:23 1999 Richard Henderson - - * pa.md (post_stw+1): Use pmode_register_operand. - (dcacheflush, icacheflush): Likewise. - - * i386.md (movstricthi_1): Allow r/r. - -Thu Oct 14 19:44:08 1999 Jan Hubicka - - * fold-const.c (fold): Convert (or (not arg0) (not arg1)) - to (not (and (arg0) (arg1))). Similary for and. - - * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case, - fallthrough to associate code. - Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have - bits in common. - - * combine.c (simplify_logical): Convert XOR to IOR if operands have - no bits in common; remove XOR to ROTATE conversion. - -Fri Oct 15 17:40:11 1999 Michael Hayes - - * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare. - -Fri Oct 15 17:27:17 1999 Michael Hayes - - * config/c4x/c4x.c (dst_operand): New. - (PREDICATE_CODES): Update. - * config/c4x/c4x.h (dst_operand): Declare it. - * config/c4x/c4x.md: Define mode for each unspec usage. - (move patterns): Use dst_operand predicate instead of src_operand. - (movqi_update, movqf_update): Delete. - -Thu Oct 14 18:48:54 1999 Richard Henderson - - * recog.c (pmode_register_operand): New. - * recog.h: Declare it. - * genrecog.c (pred_codes): Likewise. - (special_mode_pred_table): Likewise. - (validate_pattern): Don't warn no mode for address_operand. - - * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression - if the operand is not insn-like. - -Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com) - Sylvian Pion - - * fold-const.c (fold): Handle more simplifications allowed by IEEE. - -Thu Oct 14 17:30:14 1999 Richard Henderson - - * sparc.md (*): Use {nonimmediate,register}_operand as appropriate - instead of general_operand in a SET_DEST. Use const_double_operand - instead of an explicit test against CONST_DOUBLE. - (movsf_const_lo): Add missing register mode. - (goto_handler_and_restore): Add auxiliary test for Pmode. - (flush): Adjust to use address_operand. - (return_sf_no_fpu): Add missing output constraint. - -Thu Oct 14 17:21:26 1999 Richard Henderson - - * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand - for call return value. - (call_value_indirect_aix64, call_value_indirect_nt): Likewise. - -Thu Oct 14 13:54:25 1999 Jason Merrill - - * toplev.c (main): Only warn about options for other languages. - * collect2.c (main): Pass -w to sub-gcc. - -Thu Oct 14 16:27:50 1999 Richard Henderson - - * flow.c (propagate_block): Add call-clobbered registers to - significant too. - - * flow.c (propagate_block): Use free_EXPR_LIST_list instead of - zapping mem_set_list. - (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node. - (mark_set_1, mark_used_regs): Likewise. - -Thu Oct 14 10:51:49 1999 Richard Henderson - - * m68k.md (zero_extendsidi2): Add missing output reload constraint. - -Wed Oct 13 00:09:18 1999 Gerald Pfeifer - - * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes, - -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only - options. Also add a new item "C-only Warning Options" to the - option summary. - -1999-10-14 Gavin Romig-Koch - - * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info - from multiple calls. - -Thu Oct 14 04:54:54 1999 Richard Henderson - - * i386.md (call value patterns): Move to the end of the file. - (prologue_set_got, prologue_get_pc): Use register_operand for op 0. - -1999-10-14 Mark Elbrecht - - * configure.in (djgpp configuration): Define extra_objects.. - * configure: Rebuilt. - * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - (INIT_SECTION_ASM_OP): Define. - (FINI_SECTION_ASM_OP): Define. - (DATA_SECTION_ASM_OP): Define. - (TEXT_SECTION_ASM_OP): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl. - (STARTFILE_SPEC): Add crtbegin.o. - (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl - to here from LINK_COMMAND_SPEC. - (DO_GLOBAL_CTORS_BODY): Define. - (CRTSTUFF_USE_FINI_SECTION): Define - (HAS_INIT_SECTION): Delete. - -Thu Oct 14 05:08:14 1999 Andreas Schwab - - * Makefile.in (all.cross): Depend on xcpp$(exeext). - -Thu Oct 14 04:00:40 1999 Richard Henderson - - * pa.h (PREDICATE_CODES): New. - - * genrecog.c (validate_pattern): Condense the destination - non-lvalue message. - -Thu Oct 14 03:23:08 1999 Richard Henderson - - * alpha.md (call-1): Supply missing mode for operator. - (*): Add missing output reload constraints. Remove constraints - from define_splits. - - * i386.h (SPECIAL_MODE_PREDICATES): New. - * i386.md (movstricthi_1): Use nonimmediate_operand for op 0. - (movqi_1, movdi_1, movdi_2, some splits): Likewise. - (addsi_lea_3): Add missing mode for op 3. - (prologue_set_got, prologue_get_pc): Add missing modes. - (*) Add missing output reload constraints. - -Thu Oct 14 03:59:57 1999 Stephane Carrez - - * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size; - check for member bit-size overflow and use var_size if it occurs. - (layout_record): Use bitsize_int() to define the type size in bits. - Likewise for computation and assignment to DECL_FIELD_BITPOS. - (layout_decl): Likewise when assigning to DECL_SIZE. - -Thu Oct 14 02:57:05 1999 Richard Henderson - - * genrecog.c (validate_pattern): Typo last change. Verify - that output operands have output reloads. - -Thu Oct 14 01:49:54 1999 Richard Henderson - - * genrecog.c (special_mode_pred_table): New. - (NUM_SPECIAL_MODE_PREDS): New. - (find_operand): New. - (validate_pattern): New argument `insn'. Warn for assignment to - any predicate accepting non-lvalues. Conditionaly warn for - match_operand without a mode. Try much harder to match source - and destination modes on a set. - * tm.texi (SPECIAL_MODE_PREDICATES): Document. - -Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs. - -Thu Oct 14 02:18:19 1999 Marc Espie - - * combine.c (simplify_logical): Recognize xor pattern that encodes - rotation. - -Wed Oct 13 23:23:45 1999 Franz Sirl - - * rs6000.c (expand_block_move): Use INTVAL, not XINT to access - alignment. - -Wed Oct 13 21:47:18 1999 Richard Henderson - - * ggc-page.c (MAP_FAILED): Provide default. - -Wed Oct 13 21:41:59 1999 Richard Henderson - - * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE. - * sparc.h (PREDICATE_CODES): Update. - -Wed Oct 13 21:18:17 1999 Richard Henderson - - * alpha.c (some_ni_operand): New. - * alpha-protos.h: Declare it. - * alpha.h (PREDICATE_CODES): Update. - * alpha.md (sXaddq reload insns): Use some_ni_operand - for SET_DEST instead of some_operand. - -Wed Oct 13 21:04:45 1999 Richard Henderson - Jim Wilson - - * genrecog.c (maybe_both_true_2): Don't compare modes of - two DT_pred tests. - (process_tree): Elide peephole2_insns. Invoke simplify_tests - after find_afterward. - (debug_decision_1): Dump next and afterward codes. - -Wed Oct 13 20:35:16 1999 Richard Henderson - - * rtl.c (dump_and_abort): Remove. - (fatal_with_file_and_line): New. - (fatal_expected_char): New. - (read_rtx_lineno, read_rtx_filename): New. - (read_skip_spaces): Track line number. - (read_name): Use fatal_with_file_and_line. - (read_rtx): Use fatal_expected_char. Track line number. - * rtl.h (read_rtx_filename, read_rtx_lineno): Declare. - - * print-rtl.c (print_rtx): Don't special case LABEL_REF argument - if it isn't a CODE_LABEL. - - * genattr.c (main): Set read_rtx_filename. - * genattrtab.c (main): Likewise. - * gencodes.c (main): Likewise. - * genconfig.c (main): Likewise. - * genemit.c (main): Likewise. - * genextract.c (main): Likewise. - * genflags.c (main): Likewise. - * genopinit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genpeep.c (main): Likewise. - - * genrecog.c (decision_test.u.insn): Add `lineno'. - (pattern_lineno, error_count): New variables. - (message_with_line): New. - (add_to_sequence): Break out checking code to ... - (validate_pattern): ... here. Detect SET_DEST matching CONST_INT. - (merge_insn): Use message_with_line. - (make_insn_sequence): Use validate_pattern. Record insn lineno. - (main): Set read_rtx_filename, pattern_lineno. Exit early on error. - -Wed Oct 13 22:01:35 1999 J"orn Rennecke - - * expr.c (store_constructor): Clear union if constructor is empty. - -Wed Oct 13 15:19:04 1999 Jim Wilson - - * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change. - Add !endian checks. Change %{...} to %(...). - -Wed Oct 13 13:30:34 1999 Richard Henderson - - * i386.md (*addsi3_cc): Renamed from addcsi3. - (*addsi3_carry): Renamed from addxsi3. - (*subsi3_cc): Renamed from subcsi3. - (*subsi3_carry): Renamed from subxsi3. - (*xorqi_cc_1): Renamed from xorcqi_1. - (xorqi_cc_ext_1): Renamed from xorcqi_ext_1. - * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1. - -Wed Oct 13 13:10:46 1999 Richard Henderson - - * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H. - (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise. - -1999-10-13 Brendan Kehoe - - * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we - climb up the chain of insns. - -Wed Oct 13 10:20:58 1999 Richard Henderson - - * genrecog.c (write_subroutine): Careful for null trees. - (process_tree): Don't elide empty functions. - -Wed Oct 13 10:07:54 1999 Richard Henderson - - * Makefile.in (genrtl.o): Depend on ggc.h. - * configure.in (valloc): Probe for it. - (with-gc): Use ggc-page if valloc present. - * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable. - (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec. - (ggc_alloc_string): Moved from ggc-page.c. - * ggc-none.c (ggc_alloc_obj): New. - (ggc_alloc_rtx, ggc_alloc_rtvec): Remove. - * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP. - (struct globals): Likewise for dev_zero_fd. - (init_ggc): Likewise for it's initialization. - (ggc_allocated_p): Move careful dereference from ... - (ggc_lookup_page_table): ... here. Delete. - (lookup_page_table_entry): Don't use ggc_lookup_page_table. - (alloc_anon): Use valloc if no mmap. - (release_pages): Use free if using valloc. - (ggc_alloc_obj): Renamed from alloc_obj. - (ggc_set_mark): Renamed from mark_obj. - (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable. - (ggc_alloc_rtx, ggc_alloc_rtvec): Delete. - (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete. - (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. - (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete. - (ggc_collect): Use fp printing instead of our own rounding. - * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete. - (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete. - (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete. - (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete. - (struct ggc_string, struct ggc_any): Delete. - (offsetof): Provide default definition. - (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New. - (PTR_KEY): New. - (struct ggc_mem): New, from corpse of ggc_any. - (struct ggc_status): Delete. - (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete. - (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete. - (n_strings_collected, n_anys_collected): Delete. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete. - (ggc_alloc_string, ggc_alloc): Delete. - (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete. - (ggc_free_string, ggc_free_any): Delete. - (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete. - (ggc_compare_addresses, ggc_mark_string): Delete. - (ggc_mark_string_if_gcable, ggc_mark): Delete. - (search_data): Delete. - (struct globals): New. - (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New. - (tree_insert, tree_lookup): New. - (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New. - (clear_marks, sweep_objs): New. - (ggc_collect): Gut. Use clear_marks, sweep_objs. - (init_ggc): Set allocated_last_gc. - (ggc_push_context): Gut. Use G.context. - (ggc_pop_context): Likewise. - (ggc_pop_context_1): New. - (debug_ggc_tree): New. - (debug_ggc_balance, tally_leaves): New. - * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl. - (ggc_mark_string_if_gcable): Remove decl. - (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark. - (ggc_mark_rtvec_children): New. - (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New. - (ggc_mark_if_gcable): New decl. - (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl. - (ggc_alloc_tree, ggc_alloc): Likewise. - (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise. - (ggc_alloc_obj): New decl. - (ggc_alloc_rtx, ggc_alloc_rtvec): New macros. - (ggc_alloc_tree, ggc_alloc): Likewise. - (ggc_set_mark): New decl. - * rtl.h (struct rtx_def): Remove gc_mark. - (struct rtvec_def): Likewise. - * tree.h (struct tree_common): Likewise. - -Wed Oct 13 01:44:29 1999 Carol LePage - - * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines, - float_format and thread_file definitions. - * configure: Rebuilt. - -Wed Oct 13 09:25:03 1999 Niels Möller - - * extend.texi (Function Names): Document types of function names. - -Wed Oct 13 00:45:04 1999 Bernd Schmidt - - * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with - an earlyclobbered output conflict with RELOAD_INPUT reloads. - -Tue Oct 12 23:28:28 1999 J"orn Rennecke - - * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE. - -Tue Oct 12 23:19:32 1999 J"orn Rennecke - - * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS. - -Tue Oct 12 17:09:38 1999 David Edelsohn - - * collect2.c (main): Do prelimnary link on AIX if rflag. - -Tue Oct 12 09:45:19 1999 Jonathan Larmour - - * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through - __CTOR_LIST__ in opposite order, which is the correct order for sorted - constructors. - (__do_global_dtors): similarly for __DTOR_LIST__. - -Fri Oct 8 19:46:03 1999 J"orn Rennecke - Diego Novillo - - * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to - FPUL_REGS. - -Tue Oct 12 07:38:41 1999 Bruce Korb - - * fixincl/*: Merged "no_bogosity" branch - * fixincl/fixlib.h: protect against doubly defining t_bool - * fixincl/server.h: protect against doubly defining t_bool - -Mon Oct 11 20:18:41 1999 Jim Wilson - - * genoutput.c: Include toplev.h. - -Mon Oct 11 18:56:14 1999 Jim Wilson - - * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): - Undef. - * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h. - * configure: Regenerate. - -Mon Oct 11 16:07:49 1999 Richard Henderson - - * gcse.c (delete_null_pointer_checks): Returns void. - -Mon Oct 11 20:31:51 1999 Bernd Schmidt - - * rtl.c (copy_rtx): Don't use accessor macros to copy fields. - * emit-rtl.c (copy_insn_1): Likewise. - -Mon Oct 11 13:29:06 1999 Geoffrey Keating - - * config/mips/mips.c (mips_build_va_list): Correct - TREE_CHAIN setting when hard-float. - (mips_va_start): Use corrected setting. - (mips_va_arg): Likewise. Also pass a tree to build of - POSTINCREMENT_EXPR rather than a naked 'int'. - -Sun Oct 10 18:27:27 1999 Mark Mitchell - - * ggc.h (ggc_push_context): Fix comment. - (ggc_pop_context): Likewise. - (mark_string_if_gcable): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Use - ggc_mark_string_if_gcable. - * ggc-page.c (ggc_lookup_page_table): New function. - (ggc_allocated_p): Likewise. - (mark_obj): Fix formatting. - (ggc_mark_string_if_gcable): New function. - * ggc-simple.c (ggc_allocated_strings): New variable. - (ggc_strings_used): Likewise. - (ggc_compare_addresses): New function. - (ggc_pop_context): Pop the `any' memory too. - (ggc_mark_string_if_gcable): New function. - (ggc_collect): Initialize and tear down ggc_allocated_strings. - -Sun Oct 10 20:05:21 1999 David Edelsohn - - * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form. - (scc patterns): Disable most SImode variants if TARGET_POWERPC64. - * rs6000.c (expand_block_move): Match movstrsi_?reg register - changes. - -Sun Oct 10 16:37:01 1999 Richard Henderson - - * haifa-sched.c (sched_reg_n_calls_crossed): Delete. - (sched_reg_live_length, sched_reg_basic_block): Delete. - (current_block_num, bb_live_regs, old_live_regs): Delete. - (dead_notes, struct sometimes): Delete. - (sched_note_set, birthing_insn_p): Delete. - (adjust_priority): Gut useless reg lifetime code. - (create_reg_dead_note, attach_deaths): Delete. - (attach_deaths_insn, new_sometimes_live): Delete. - (finish_sometimes_live): Delete. - (find_pre_sched_live, find_post_sched_live): Delete. - (update_reg_usage): Delete. - (find_insn_reg_weight): New, from corpse of find_pre_sched_live. - (schedule_insns): Delete reg lifetime code. - (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away. - (unlink_other_notes): Adjust REG_NOTE commentary. - (reemit_notes): Use REG_SAVE_NOTE. - (schedule_block): Likewise. - (schedule_region): Allocate bitmap of blocks in region. Use - count_or_remove_death_notes. Use update_life_info. - - * rtl.h (REG_SAVE_NOTE): New. - * rtl.c (reg_note_name): Update. - -Sun Oct 10 16:14:16 1999 Richard Henderson - - * combine.c (refresh_blocks, need_refresh): New. - (combine_instructions): Allocate refresh_blocks. Invoke - update_life_info if needed. - (distribute_notes): Mark refresh_blocks instead of installing - USE insns. - * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES. - * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES. - - * Makefile.in (recog.o): Depend on basic-block.h. - -Sun Oct 10 12:03:21 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Thinko last change: delete - shadowing allow_const_int variable. - -Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi - - * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing - __GNUC__ and __GNUC_MINOR__. - - * gansidecl.h: Likewise. - - * rtl.c: Likewise. - - * rtl.h: Likewise. - - * toplev.h: Likewise. - - * tree.c: Likewise. - - * tree.h: Likewise. - - * varray.c: Likewise. - - * varray.h: Likewise. - -Sun Oct 10 13:28:48 1999 Bernd Schmidt - - * loop.c (find_and_verify_loops): When looking for a BARRIER, don't - use one before a jump table. - - * rtl.def (ADDRESS): Change documentation to match reality. - * md.texi: Don't document it. - * gmicro.md (load address pattern): Use 'p' constraint, delete use - of ADDRESS rtx. - - * emit-rtl.c (copy_insn_1): Make format_ptr a const char *. - -Sun Oct 10 02:41:41 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Move allow_const_int test outside - known predicate block; default allow_const_int true. - (debug_decision_list): New. - -Sun Oct 10 00:43:08 1999 Richard Henderson - - * i386.h (CC1_SPEC): Typo -- use cc1_cpu. - -Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (gcse_main): Avoid global optimizations if we have a - large number of basic blocks and the ratio of edges to blocks - is high. - (delete_null_pointer_checks): Likewise. - -Sat Oct 9 23:16:01 1999 Ken Raeburn - - * c-common.c (check_format_info): Warn if format string isn't a - string literal. - -Sat Oct 9 23:04:02 1999 Jonathan Larmour - - * configure.in (arm*-*-*): Don't let autoconf remove brackets - * configure: regenerate - -Sat Oct 9 13:15:53 1999 Richard Henderson - - * alpha.md (extendsidi2): Turn into a splitter. Allow f/f. - If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern. - (peepholes): Re-enable. - -Sat Oct 9 12:18:16 1999 Richard Henderson - - * Makefile.in (flow.o): Depend on TREE_H. - * basic-block.h (REG_SET_EQUAL_P): New. - (XOR_REG_SET): New. - (n_edges): Declare. - (free_regset_vector): Remove declaration. - (flow_delete_insn_chain): Declare. - (enum update_life_extent): New. - (update_life_info, count_or_remove_death_notes): Declare. - * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head. - Verify register live at bb->global_live_at_start before adding USE. - * flow.c (HAVE_epilogue, HAVE_prologue): Provide default. - (CLEAN_ALLOCA): New. - (n_edges): New. - (PROP_*): New flags. - (find_basic_blocks_1): Use alloc_EXPR_LIST. - (clear_edges): Zero n_edges. - (make_edge): Increment n_edges. - (split_edge): Don't allocate bb->local_set. Increment n_edges. - (flow_delete_insn_chain): Export. - (delete_block): Decrement n_edges. - (merge_blocks_nomove): Likewise. - (life_analysis): Give life_analysis_1 PROP flags. - (verify_wide_reg_1, verify_wide_reg): New. - (verify_local_live_at_start): New. - (update_life_info): Rewrite to call into propogate_block. - (mark_reg): New. - (mark_regs_live_at_end): After reload, if epilogue as rtl, - always mark stack pointer. Conditionally mark PIC register. - After reload, mark call-saved registers, return regsiters. - (life_analysis_1): Accept PROP flags not remove_dead_code. - Call mark_regs_live_at_end before zeroing regs_ever_live. - Use calculate_global_regs_live. Copy global_live_at_end before - calling final propagate_block. Zero reg_next_use on exit. - (calculate_global_regs_live): New. - (allocate_bb_life_data): Don't allocate bb->local_set. - (init_regset_vector, free_regset_vector): Remove. - (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE. - Test flags before every operation. Warn if prologue/epilogue insn - would have been deleted. - (mark_set_regs, mark_set_1): Accept and use FLAGS. - Use alloc_EXPR_LIST. - (mark_used_regs): Accept and use FLAGS, not FINAL. - Remove special handling for RETURN. - (try_pre_increment): Use alloc_EXPR_LIST. - (dump_flow_info): Dump n_edges. - (unlink_insn_chain, split_hard_reg_notes): Remove. - (maybe_add_dead_note, maybe_add_dead_note_use): Remove. - (find_insn_with_note, new_insn_dead_notes): Remove. - (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove. - (maybe_remove_dead_notes, prepend_reg_notes): Remove. - (replace_insns): Remove. - (count_or_remove_death_notes): New. - (verify_flow_info): Abort on error after all checks. - (remove_edge): Decrement n_edges. - (remove_fake_edges): Tweak format. - * haifa-sched.c (schedule_insns): Use split_all_insns. - * output.h (update_life_info): Remove declaration. - * recog.c (split_all_insns): From the corpse of split_block_insns, - do the whole function block by block. Use update_life_info. - (recog_last_allowed_insn): New. - (recog_next_insn): Mind it. - (peephole2_optimize): Set it. Walk backwards through blocks. - Use update_life_info. - * rtl.h (update_flow_info, replace_insns): Remove declarations. - (split_all_insns): Declare. - * toplev.c (rest_of_compilation): Thread prologue before flow2. - Use split_all_insns. - - * i386.md (or -1 peep2s): Disable. - -Fri Oct 8 17:49:08 1999 Richard Henderson - - * config/mips/mips.md (movstrsi+[123]) : Combine these into - a single pattern. Scrap the 'd' versions as unnecessary. - - * config/mips/mips.md (tablejump_internal3,tablejump_mips161, - tablejump_mips162,tablejump_internal4): The operands to a - label_ref must be VOIDmode. - -Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi - - * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'. - -Fri Oct 8 11:58:34 1999 Richard Henderson - - * mips.c (mips_va_arg) [EABI]: Return addr_rtx. - -Fri Oct 8 11:58:34 1999 Richard Henderson - - * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the - cache every function if ggc_p. - -Fri Oct 8 18:46:11 1999 Bernd Schmidt - - * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1 - instead of copy_rtx. Accept sequences that contain asm statements. - * emit-rtl.c (copy_insn_1, copy_insn): New functions. - (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches, - orig_asm_operands_vector, copy_asm_operands_vector, - orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static - variables. - * rtl.h (copy_insn, copy_insn_1): Declare. - -Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi - - * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h. - - * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of - arguments to `current_file_function_operand'. - - * genrecog.c: Include hard-reg-set.h and resource.h in the - generated output file. - - * real.c: Include tm_p.h. - -Fri Oct 8 18:46:11 1999 Bernd Schmidt - - * i386.md (prologue_allocate_stack): Add '=' constraint letter on - output operand. - -Thu Oct 7 23:06:50 1999 Richard Henderson - - * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber - before the fctiwz insn. - -Thu Oct 7 22:53:00 1999 Franz Sirl - Mark Mitchell - - * tree.c (make_lang_type_fn): New funtion pointer. - (make_lang_type): Call it. - * tree.h (make_lang_type): Declare. - (make_lang_type_fn): Likewise. - * rs6000.c (rs6000_build_va_list): Use make_lang_type. - -Thu Oct 7 00:36:17 1999 Diego Novillo - - * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF - make sure that HIGH instructions are copied into BASE_REGS. - -Thu Oct 7 17:02:34 1999 Jason Merrill - - * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner. - -Thu Oct 7 17:01:58 1999 Greg McGary - - * c-decl.c (finish_struct): Use simpler method of - removing elements of a singly-linked list. - -Thu Oct 7 15:23:28 1999 Michael Meissner - - * alpha.md (peephole2's): Comment out peephole2's that generate - buggy code. - -Thu Oct 7 12:00:53 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Disable mode check for - wildcard matches. - -Thu Oct 7 20:14:16 1999 Bernd Schmidt - - * ggc-simple.c (init_ggc): Set empty_string. - -Thu Oct 7 01:13:15 1999 Richard Henderson - - * configure.in: Detect mmap. Add --with-gc=foo to select - garbage collector; default to page if mmap available. - * Makefile.in (GGC): Substitute. - -Wed Oct 6 23:56:30 1999 Richard Henderson - - * c-decl.c (ggc_p): Enable. - -Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi - - * flow.c (verify_flow_info): Make it extern & unconditionally define. - -1999-10-06 Brendan Kehoe - - * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc - string for little-endian-data. - -Wed Oct 6 16:10:35 1999 Michael Meissner - - * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in - case somebody tries to compile --enable-checking code with gcc - 1.34 or such. - -Wed Oct 6 12:22:50 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Verify operand to label_ref is - VOIDmode. - -Wed Oct 6 10:21:15 1999 Richard Henderson - - * genconfig.c (main): Disable HAVE_conditional_arithmetic. - * jump.c (jump_optimize_1): Document why. - -Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi - - * collect2.c (scan_prog_file, scan_libraries): Prototype function - pointers and casts for `int_handler' and `quit_handler'. - - * flow.c (verify_flow_info, split_hard_reg_notes, - find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes, - remove_edge, remove_fake_successors): Add static prototypes. - (verify_flow_info): Wrap with macro ENABLE_CHECKING. - (mark_set_1): Initialize variable `regno'. - (unlink_insn_chain): Likewise for variable `curr'. - (remove_fake_edges): Remove unused variables `e', `tmp' and `last'. - - * loop.c (strength_reduce): Initialize variable - `unrolled_insn_copies'. - (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static - prototypes. Change these functions to take const PTR parameters - to avoid prototype conflict when used as the comparson argument - for qsort. - (check_dbra_loop): Initialize variable `comparison_val'. - - * reload.c (debug_reload_to_stream, debug_reload): Add prototypes. - (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED. - (find_valid_class): Initialize variable `best_class'. - (find_reloads): Call memcpy, not bcopy. - - * reload1.c (gen_mode_int, dump_needs): Add prototypes. - (hard_reg_use_compare): Don't needlessly cast away const. - (reload_reg_class_lower): Likewise. - (choose_reload_regs): Initialize variable `regno'. - -Tue Oct 5 16:34:12 1999 Paul Burchard - - * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing. - -Tue Oct 5 16:14:40 1999 Michael Meissner - - * libgcc1-test.c (toplevel): Include stddef.h to get size_t. - ({,d}discard): Add forward declarations. Declare parameter as - unused. - (main_without_main): Explicitly declare return type to be int. - (memcpy): Properly declare. - - * libgcc2.c (toplevel): If inhibit_libc is defined and not - building the trampoline support, declare malloc, free, and - atexit. - (__clear_cache): Mark arguments as potentially unused. - - * frame.c (toplevel): If inhibit_libc is defined, declare - malloc and free. - -Tue Oct 5 12:00:32 1999 Richard Henderson - - * flow.c (make_edge): Accept an optional 2D bitmap in which - to cache edge existence. Update all callers. - (make_label_edge, make_eh_edge): Pass through the edge cache. - (make_edges): Provide the cache. - -Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi - - * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify - a char*. - (local_mbtowc): Change the type of variable `i' from int to size_t. - - * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||. - (local_mbtowc, local_mblen, literal_codeset): Constify a char*. - -Tue Oct 5 11:34:52 1999 Michael Meissner - - * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes - after other includes that define the appropriate types. Include - tm_p.h for getting user prototypes. - * ggc-callbacks.c (toplevel): Ditto. - * ggc-none.c (toplevel): Ditto. - * gcc-page.c (toplevel): Ditto. - * ggc-simple.c (toplevel): Ditto. - -Mon Oct 4 16:48:16 1999 Diego Novillo - Jonathan Larmour - - * config/mips/mips.c (mips_move_2words): Split doubles if - ISA >= 3, !TARGET_64BIT, and destination is not an FP register. - -Mon Oct 4 21:47:31 1999 Richard Henderson - - * genrecog.c (struct decision_test): New. - (struct decision): Remove test-related members, sort the rest by size. - (IS_SPLIT): Simplify. - (new_decision, new_decision_test): New. - (add_to_sequence): Use them. No special handling for args of - non-MATCH codes. - (maybe_both_true): Renamed from not_both_true; return sense changed. - (maybe_both_true_1, maybe_both_true_2): New. Broken out - of maybe_both_true and adjusted for decision_test. - (position_merit): Remove. - (nodes_identical, nodes_identical_1): New, broken out of merge_trees. - (merge_accept_insn): New, broken out of merge_trees. - (merge_trees): Use them. No special case for c_test; no node - splitting; use test type instead of position_merit. - (factor_tests): New. - (simplify_tests): New. - (break_out_subroutines): Don't write code now. - (find_afterward): New. - (write_afterward, write_switch, write_cond): New. - (write_action, is_unconditional): New. - (write_node): New. Use them. - (write_tree_1): Rewrite. Use the new functions above. - (write_tree): Remove afterward processing. - (write_subroutine): Simplify function variant emission. - (write_subroutines): New. - (same_codes, clear_codes): Remove. - (same_modes, clear_modes): Remove. - (write_header): New, broken out of main. - (make_insn_sequence): Use new_decision and new_decision_test. - (process_tree): New, broken out of main. - (main): Adjust for merge_trees interface change. - Don't #define operands in the output file. - (record_insn_name): New, broken out of make_insn_sequence. - (debug_decision_2, debug_decision_1, debug_decision_0): New. - (debug_decision): New. - -1999-10-04 21:58 -0700 Zack Weinberg - - * resource.c (find_free_register): Mark class_str argument const. - * resource.h: Update prototype to match. - - * i386.h (PREDICATE_CODES): Add entry for long_memory_operand. - * i386.md: Give all anonymous insns names. - -Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent - blocks. - -Mon Oct 4 21:01:39 1999 Richard Henderson - - * toplev.c (dbr_sched_time): Unconditional. - (peephole2_time): New. - (compile_file): Add pass numbers to all of the dump file suffixes. - Dump peephole2_time. Don't dump times for non-applicable passes. - (rest_of_compilation): Add pass numbers to dump file suffixes. - Conditionalize calls to the scheduler. - * invoke.texi: Update. - -Mon Oct 4 20:25:13 1999 Anthony Green - - * flow.c (make_edges): Fix insn iteration. - (find_basic_blocks): Assign NULL_RTX, not 0, to rtx. - (find_basic_blocks_1): Fix spelling mistake. - -Mon Oct 4 16:56:11 1999 Richard Henderson - - * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that - always have side-effects. Use memset not bzero. - (make_node): Likewise. - -Mon Oct 4 16:22:20 1999 Mark Mitchell - - * stmt.c (expand_anon_union_decl): When any of the elements of the - union is addressable, so is the entire union. - -Mon Oct 4 11:38:33 1999 Richard Henderson - - * sbitmap.c (sbitmap_ones): Don't set too many bits. - - * bitmap.h (enum bitmap_bits): Add BITMAP_XOR. - * bitmap.c (bitmap_operation): Return true iff TO changed. - (bitmap_equal_p): New. - (bitmap_bit_p): Tidy arithmetic. - (debug_bitmap_file): Likewise. - -Mon Oct 4 11:28:37 1999 Richard Henderson - - * toplev.c (rest_of_compilation): Turn on cse_not_expected - before cse2 instead of after. - -Mon Oct 4 09:55:17 1999 Stan Cox - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large - register offsets. - -Mon Oct 4 08:54:12 1999 Alexandre Oliva - - * cppinit.c (is_idchar initializer): Loosen tests to accept - gcc 2.>6 and >2. - -Mon Oct 4 02:31:20 1999 Mark Mitchell - - * mips.md: Define conditional move patterns for floating point - operands and DI mode conditions. - -Mon Oct 4 02:12:41 1999 Mark Mitchell - - * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that - always have side-effects. - -Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (asm_file_start): Fix typo. - - * cppinit.c (is_idchar initializer): Tighten tests for when - to put the table into initialized memory. - - * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx, - not an array of rtunion. - * gcc-page.c (ggc_alloc_rtvec): Similarly. - * gcc-simple (ggc_free_rtvec): Similarly. - - * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead - of rtunions. - - * mbchar.h: Add missing #endif. - - * t-fr30 (LIB2FUNCS_EXTRA): Remove definition. - (FPBIT, DPBIT): Define. - -Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi - - * print-tree.c (print_node, indent_to): Remove redundant prototypes. - - * profile.c (instrument_arcs, output_gcov_string, - tablejump_entry_p): Add static prototypes. - (output_gcov_string): Constify a char*. - - * regmove.c (replacement_quality, fixup_match_2): Add static - prototypes. - - * resource.h (reg_dead_p): Add extern prototype. - - * rtl.c (trim_filename): Add static prototype. - - * scan-decls.c (skip_to_closing_brace): Likewise. - - * stmt.c (expand_decl_cleanup_no_eh): Hide definition. - (expand_end_case): Initialize variable `range'. - (emit_case_nodes): Remove unused prototype `rtx_fn'. - - * varasm.c (asm_emit_uninitialised): Add static prototype. - (asm_emit_uninitialised, assemble_variable): Mark parameter with - ATTRIBUTE_UNUSED. - -Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi - - * cpplib.c (if_directive_nameo): Add static prototype. - - * cse.c (cse_insn): Remove unused variable `p'. - - * except.c (create_rethrow_ref, push_entry, - receive_exception_label, new_eh_region_entry, find_func_region, - clear_function_eh_region, process_nestinfo): Add static prototypes. - (get_reg_for_handler): Hide definition. - (process_nestinfo): Initialize variable `extra_handlers'. - - * expr.h (expand_builtin_longjmp): Add extern prototype. - - * final.c (final_addr_vec_align, align_fuzz): Add static prototypes. - - * function.c (prepare_function_start): Likewise. - (pop_function_context_from): Mark parameter `context' with - ATTRIBUTE_UNUSED. - (push_temp_slots_for_block, flush_addressof): Hide definition. - - * gcov.c (init_arc, reverse_arcs, create_program_flow_graph, - solve_program_flow_graph, calculate_branch_probs, - function_summary, main, fancy_abort): Add prototypes. - - * gen-protos.c (add_hash, parse_fn_proto, main): Likewise. - (add_hash): Constify a char*. - - * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr, - ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr, - ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes. - - * integrate.c (expand_inline_function_eh_labelmap): Likewise. - - * lists.c (free_list, zap_lists): Likewise. - -Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi - - * alias.c (nonlocal_reference_p): Add static prototype. - - * bitmap.c (bitmap_element_allocate): Prototype args in function - pointer cast. - - * builtins.c (stabilize_va_list): Add static prototype. - (expand_builtin_va_arg): Constify a char*. - - * c-lex.c (getch, put_back, extend_token_buffer_to, - read_line_number, token_getch, token_put_back): Add static - prototypes. - - * c-parse.gperf (hash, is_reserved_word): Likewise. - - * cccp.c (is_dir_separator): Likewise. - -Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi - - * graph.h: New file to prototype functions exported by graph.c. - - * Makefile.in (graph.o, toplev.o): Depend on graph.h. - - * graph.c: Include graph.h. - - * toplev.c: Likewise. Remove redundant prototypes. - -Sat Oct 2 11:28:33 1999 Krister Walfridsson - - * invoke.texi: Removed duplicated description for -Q. - -Sat Oct 2 11:16:00 1999 Jim Kingdon - - * extend.texi: Grammar fix in __extension__ text. - -Sat Oct 2 11:06:31 1999 Richard Henderson - - * md.texi (define_peephole2): New section. - -Sat Oct 2 10:57:56 1999 Jan Hubicka - - * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0 - (mov $-1 to or peepholer): Enable for pentium when optimizing for - speed. - -Sat Oct 2 10:55:25 1999 Jan Hubicka - - * builtins.c (expand_builtin_strlen): Fix best mode searching loop. - -Sat Oct 2 10:53:22 1999 Jan Hubicka - - * i386.md (ffs expander): Emit Pentium friendly code for - TARGET_PENTIUM. - -Sat Oct 2 02:48:21 1999 Mark P. Mitchell - - * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES - for non-trees. - (build1): Likewise. - -Fri Oct 1 18:01:11 1999 Bernd Schmidt - - * i386elf.h (TARGET_DEFAULT): Use symbolic constants. - -Fri Oct 1 12:42:53 1999 Andreas Schwab - - * config/m68k/m68k.c (use_return_insn): Return false if the pic - register is in use. - -Fri Oct 1 10:56:06 1999 Bernd Schmidt - - * md.texi (No Constraints): Delete section. - * Makefile.in (genattrtab.o): Don't depend on "insn-config.h". - * final.c (final_scan_insn): We always have register constraints. - * genattrtab.c: Don't include "insn-config.h". - (write_attr_case): We always have register constraints. - * genconfig.c (register_constraint_flag): Delete. - (walk_insn_part): Don't check whether we have register constraints. - (main): Don't write out "#define REGISTER_CONSTRAINTS". - * genoutput.c (have_constraints): Delete. - (main): Don't set it. - (output_operand_data): We always have constraints. - (scan_operands): Likewise. - (compare_operands): Likewise. - * local-alloc.c (block_alloc): We always have constraints. - (requires_inout): Always compile this function. - * recog.c (extract_insn): We always have constraints. - (constrain_operands, reg_fits_class_p): Always compile these - functions. - * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS - fields. - (struct insn_operand_data): Likewise. - * regclass.c (regclass): We always have constraints. - (record_reg_classes, copy_cost, record_address_regs, - auto_inc_dec_reg_p): Always compile these functions. - * regmove.c (regmove_optimize): We always have constraints. - * reload.c (find_reloads): Likewise. - * reload1.c (reload): Likewise. - (reload_cse_simplify_operands): Likewise. - * i860.c (output_delay_insn): Likewise. - -Thu Sep 30 23:04:41 1999 Mark P. Mitchell - - * iris6.h (BUILD_VA_LIST_TYPE): Define. - -Thu Sep 30 18:44:50 1999 Franz Sirl - - * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node - for the va_list record. - -Thu Sep 30 18:34:54 1999 Jan Hubicka - - * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in - prologues. - -Thu Sep 30 18:31:36 1999 Jan Hubicka - - * alias.c: Include insn-flags.h. - * Makefile.in (alias.o): Update. - -Thu Sep 30 18:21:30 1999 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons - to LTU and GEU. Handle more cases using sbb. - -Thu Sep 30 18:18:39 1999 Jan Hubicka - - * i386.md (truncatexfdf splitters): Do not use subreg. - (fop XFmode patterns): Fix mode in operand testing. - -Thu Sep 30 18:04:13 1999 Richard Henderson - - * jump.c (jump_optimize_1): Amend last change to test only the - form of the operand, not the insn. - - * jump.c (jump_optimize_1) [conditional_move]: Use general_operand - not register_operand to determine when B may need preloading. - -Thu Sep 30 17:39:16 1999 Richard Henderson - - * alpha.md (*): Use nonimmediate not general_operand for SET_DEST. - (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC. - (call-value patterns): Move to end of file. - (*): Remove mode from label_ref in (pc) context. - (movstrqi): Use memory not general_operand for BLKmode operands. - (prologue_stack_probe_loop, builtin_longjmp): Add missing mode - to register_operand operands. - (peep2 patterns): Convert from commented-out peephole patterns. - -Thu Sep 30 14:39:17 1999 Bernd Schmidt - - * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE - to BUILT_IN_INIT_DWARF_REG_SIZES. - * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES): - Renamed from BUILT_IN_DWARF_REG_SIZE; call - expand_builtin_init_dwarf_reg_sizes. - * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size - with __builtin_init_dwarf_reg_size_table. - * dwarf2out.c (struct reg_size_range): Delete. - (expand_builtin_init_dwarf_reg_sizes): New function. - (expand_builtin_dwarf_reg_size): Delete. - * except.h (expand_builtin_init_dwarf_reg_sizes): Declare. - (expand_builtin_dwarf_reg_size): Don't declare. - * libgcc2.c (dwarf_reg_size_table_initialized): New. - (dwarf_reg_size_table): New. - (init_reg_size_table): New function. - (copy_reg): Use dwarf_reg_size_table. - (eh_context_initialize): Make sure dwarf_reg_size_table is initialized - before use. - -Thu Sep 30 05:40:34 1999 Richard Earnshaw - - * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): - Correctly build argument list to constructor and destructor functions. - -Thu Sep 30 00:13:27 1999 Dirk Zoller - - * c-tree.h (warn_float_equal): Declare. - * c-decl.c (warn_float_equal): Define. - (c_decode_option): Recognize -W[no-]float-equal. - * c-typeck.c (build_binary_op): Conditionally warn - about equality tests of floating point types. - * toplev.c (documented_lan_options): Add -W[no-]float-equal. - * invoke.texi: Add docs for -Wfloat-equal warning. - -Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com) - - * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of - generating RTL directly. - * mips.h (INIT_TARGET_OPTABS): Likewise. - * mn10200.h (INIT_TARGET_OPTABS): Likewise. - - * expr.h (init_mov_optab): Delete declaration - - * h8300.c (WORD_REG_USED): Update to avoid useless register - saves in interrupt functions and functions which never return. - - * cse.c (struct set): Delete inner_dest_loc field. - (cse_insn): Remove assignments to inner_dest_loc field. - -Wed Sep 29 16:06:20 1999 Richard Henderson - - * ggc-page.c: Don't include etc taken care of - by "system.h". Include afterward. - -Wed Sep 29 16:05:18 1999 Richard Henderson - - * rs6000.c (rs6000_encode_section_info): If ggc_p, use - ggc_alloc_string. - -Tue Sep 28 16:45:40 1999 David Edelsohn - - * xcoffout.c (xcoffout_declare_function): Add documentation. - * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not - TARGET_64BIT. Compare constant to -1, not bit pattern. - (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT. - (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix - gen_movsi typos. - -Tue Sep 28 16:43:14 1999 Nick Clifton - - * dwarf2out.c (add_abstract_origin_attribute): Abort if - origin_die is NULL. - (gen_inlined_enumeration_type_die): Do not abort if the type has - not been writeen out. - (gen_inlined_structure_type_die): Do not abort if the type has - not been writeen out. - (gen_inlined_union_type_die): Do not abort if the type has - not been writeen out. - (gen_tagged_type_instantiation_die): Do not abort if the type - has not been written out. - -Tue Sep 28 14:33:47 1999 Bernd Schmidt - - * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, - call it. - * reg-stack.c (straighten_stack): Copy hard reg set with - COPY_HARD_REG_SET. - -Tue Sep 28 01:11:05 1999 Richard Henderson - - * builtins.c (stabilize_va_list): Stabilize array type va_list - to a pointer type, not the base record type. - (expand_builtin_va_copy): Dereference the pointers explicitly; - use the correct size for the copy. - - * rs6000.c (rs6000_va_start): Dereference valist to get to the record. - (rs6000_va_arg): Likewise. - -Mon Sep 27 23:27:21 1999 Richard Henderson - - * rtl.h (struct rtx_def): Move gc_mark to align mode field. - -Mon Sep 27 23:20:29 1999 Mark Mitchell - - * tree.h (struct tree_decl): Use `bclass', not `class', in name of - field. - (DECL_BUILT_IN_CLASS): Adjust accordingly. - -Mon Sep 27 23:03:16 1999 Richard Henderson - - * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. - (init_ggc): Use it instead of a constant. - (ggc_collect): Bound allocated_last_gc by it. - -Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems - with va_list. - -Mon Sep 27 19:40:17 CEST 1999 Marc Espie - - * configure.in (mips*el-*-openbsd*): Don't duplicate default settings. - (mips*-*-openbsd*): Let big endian configuration be a fragment. - * configure: Regen. - * config/mips/openbsd.h: New, OpenBSD little endian target. - * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment. - * config/mips/xm-openbsd.h: New, OpenBSD host. - -Mon Sep 27 10:28:48 1999 Andreas Schwab - - * config/m68k/m68k.c (output_function_prologue, - output_function_epilogue): Use - current_function_uses_pic_offset_table instead of regs_ever_live - to decide whether to save/restore pic register. - (legitimize_pic_address): Don't modify regs_ever_live any more. - -Sun Sep 26 10:55:36 1999 Mark Mitchell - - * function.h (struct function): Add x_dont_save_pending_sizes_p. - * stor-layout.c (variable_size): Don't add sizes to the pending - sizes list if x_dont_save_pending_sizes_p is set. - -Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net) - - * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument - for symbolic_operand(). - * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise. - -Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi - - * combine.c (gen_rtx_combine): Add missing call to va_end(). - - * final.c (asm_fprintf): Likewise. - - * genattrtab.c (attr_rtx): Likewise. - -Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c: Update comments. - (cse_insn): When converting a conditional/computed jump into - an unconditional jump, always make sure a BARRIER immediately - follows the converted jump. Do not delete unreachable code. - (cse_basic_block): Do not delete unreachable code. - * toplev.c (rest_of_compilation): Move call to - delete_trivially_dead_insns after the conditional call to - jump_optimize. - -Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi - - * collect2.c (make_temp_file): Don't prototype. - - * gcc.c (make_temp_file): Likewise. - - * mips.c (mips_make_temp_file): Renamed from `make_temp_file'. - -Sat Sep 25 13:42:15 1999 Nick Clifton - - * varasm.c (asm_emit_uninitialised): New function: Generate - the assembler statements necessary to declare an uninitialised - variable. - (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised - variable. - (ASM_EMIT_BSS): New macro: Emit an entry in the bss section. - (ASM_EMIT_COMMON): New macro: Emit an entry in the common - section. - (assemble_variable): Use asm_emit_uninitialised to emit an - uninitialised variable. - -Fri Sep 24 17:10:56 1999 Nick Clifton - - * combine.c (simplify_comparison): Cope with downshifting a 32 bit - constant on a 64 bit host. Patch supplied by Geoffrey Keating - . - -Fri Sep 24 10:48:10 1999 Bernd Schmidt - - * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. - * c-common.h (builtin_function): Don't declare. - - * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than - DECL_BUILT_IN. - (pushdecl): Likewise. - (finish_decl): Likewise. - (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type - int. All callers changed. - Set the builtin's DECL_BUILT_IN_CLASS. - * tree.h (enum built_in_class): New. - (enum built_in_function): Delete NOT_BUILT_IN. - (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now - in a union. - (DECL_SET_FUNCTION_CODE): Likewise. - (DECL_BUILT_IN_CLASS): New macro. - (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS. - (struct tree_decl): Split builtin function code field into a - struct. - (builtin_function): Declare. - -Fri Sep 24 01:45:05 1999 Mark Mitchell - - * optabs.c (init_traps): Fix typo in last change. - -Fri Sep 24 01:10:11 1999 Mark Mitchell - - * toplev.c (rest_of_decl_compilation): Update comment. - -Fri Sep 24 11:57:06 1999 Geoffrey Keating - - * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol - in .sbss if appropriate. - (EXTRA_SECTION_FUNCTIONS): Add sbss. - (SBSS_SECTION_ASM_OP): New macro. - * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss. - (EXTRA_SECTIONS): Add in_sbss. - * config/mips/mips.h: Prototype sbss_section. - -Thu Sep 23 18:18:55 1999 Mark Mitchell - - * stmt.c (expand_start_bindings): Don't allow cleanup instructions - to disappear. - -Thu Sep 23 18:07:01 1999 Mark Mitchell - - * optabs.c (init_traps): Register trap_rtx as a GC root. - -Thu Sep 23 17:41:47 1999 Alexandre Oliva - - * config/mips/mips.c (function_arg_pass_by_reference): Define - unconditionally, since it's called unconditionally. - -Thu Sep 23 13:40:02 1999 Jason Merrill - - * toplev.c (documented_lang_options): Add -fshort-wchar. - * c-decl.c (c_decode_option): Likewise. - (init_decl_processing): If -fshort-wchar, use 'short unsigned int' - for wchar_t. - * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. - * gcc.c (default_compilers): If -fshort-wchar, - override __WCHAR_TYPE__. - * tm.texi (C Dialect Options): Add -fshort-wchar. - - * dwarf2out.c (output_aranges): Use DW_AT_location to find the - symbol for a variable. - - * cpplib.h (CPP_PREPROCESSED): New macro. - * cpplib.c (handle_directive): Don't complain about `# NUMBER' if - we're seeing this input for a second time. - -Thu Sep 23 12:54:49 1999 Alex Samuel - - * emit-rtl.c (init_emit_once): Initialize modes first. - -Sun Sep 19 01:23:23 1999 Alex Samuel - - * config/i386/i386.c (pic_label_name): Change to char pointer. - (global_offset_table): New variable. - (load_pic_register): Fill global_offset_table if it hasn't - already been done. Allocate pic_label_name dynamically. - * ggc.h (empty_string): New variable. - * ggc-simple.c (empty_string): Likewise. - (init_ggc): Allocate empty_string and add as root. - * stmt.c (digit_strings): New variable. - (init_stmt): Add last_block_end_note as root. Allocate and - initialize digit_strings. - (expand_asm_operands): Use empty_string instead of string - constant. Use digit_strings instead of string constants. - * profile.c (init_arc_profiler): Allocate string with - ggc_alloc_string instead of xmalloc. - (output_func_start_profiler): Likewise. - * c-typeck.c (digest_init): Check if init is error_mark_node. - -Thu Sep 23 12:59:14 1999 Alex Samuel - Richard Henderson - - * ggc-page.c: New file. - * Makefile.in (ggc-page.o): New. - -Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Document -fdelete-null-pointer-checks - * toplev.c (flag_delete_null_pointer_checks): New. - (f_options): Add entry for -fdelete-null-pointer-checks. - (rest_of_compilation): Conditionalize null pointer check - elimination on flag_delete_null_pointer_checks. - (main): If -O2 or greater, enable -fdelete-null-pointer-checks - -1999-09-23 10:56 -0700 Zack Weinberg - - * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add - copyright notice and special exception to GPL. - -Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi - - * abi64.h (mips_function_value): Add prototype arguments. - - * mips-protos.h: New file with mips prototypes. - - * mips.c: Include "tm_p.h". - (mktemp, lookup_name): Add prototype arguments. - (extern_list, string_constant, mips_fill_delay_slot, - mips_output_external, mips_output_external_libcall, - mips_output_filename, mips_declare_object, function_prologue, - mips_expand_prologue, function_epilogue, mips16_constant, - build_mips16_function_stub, mips_output_conditional_branch): - Constify a char*. - (mips_va_start): Remove unused variable `u'. - (mips_va_arg): Cast value to unsigned when comparing against one. - (trace): Delete. - (save_restore_insns, mips_expand_prologue): Add missing arg in - call to `large_int'. - - * mips.h: Move prototypes to mips-protos.h. - (data_section, memory_address_p, rdata_section, - readonly_data_section, simple_epilogue_p, text_section): Delete - prototypes delcared elsewhere. - (mips_epilogue_delay_slots, print_options): Delete unused decls. - (trace): Delete. - (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace. - - * mips.md: Delete extra args in call to `mips_move_2words'. - - * xm-iris6.h (alloca): Add prototype argument. - - * genpeep.c: Include "tm_p.h" in generated output file. - -Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod - - * basic-block.h (find_edge_index): Change parameters. - * flow.c (verify_edge_list): Pass basic_block parameters to - find_edge_index instead of integers. - -Thu Sep 23 15:54:12 1999 Nick Clifton - - * combine.c (simplify_comparison): Use an unsigned shift to adjust - the constant. - -Thu Sep 23 08:46:21 1999 Guy Harris - - * gcc.1: Fix a formatting error. - -Wed Sep 22 16:10:21 1999 Martin v. Löwis - - * install.texi (Configurations): Remove pyramid. Add fr30, i686, - i786, mn10200, mn10300, pdp11, v850. - -Thu Sep 23 07:37:13 1999 Dan Nicolaescu - - * libgcc2.c (num_digits): Add prototype with - __attribute__((const)). - (__terminate): Add prototype. - -Thu Sep 23 05:32:06 1999 Richard Henderson - - * builtins.c, dbxout.c, varasm.c: Include tm_p.h. - - * alpha/alpha.c (print_operand): Fix type of `code'. - (alpha_output_filename): Constify. - * alpha/alpha.h: Move all function declarations ... - * alpha/alpha-protos.h: ... here. New file. - * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function. - (SECTION_FUNCTION_TEMPLATE): Likewise. - -Thu Sep 23 11:15:36 1999 Bernd Schmidt - - * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p. - * expr.c (expand_expr): Likewise. - (do_jump): Likewise. - (do_store_flag): Pass ccp_store_flag to can_compare_p. - * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and - accessor macros. - (enum can_compare_purpose): New. - (can_compare_p): Adjust prototype. - (prepare_cmp_insn, prepare_operand): Declare. - * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab. - * optabs.c (cmp_available_p): Deleted. - (expand_abs): Pass ccp_jump to can_compare_p. - (can_compare_p): New arg PURPOSE. Check for combined optabs. - (prepare_cmp_insn): No longer static. Add arg PURPOSE. - Call can_compare_p rather than cmp_available_p. - (prepare_operand): No longer static. - (emit_cmp_and_jump_insn): Check for and use cbranch patterns. - (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn. - (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn - sequence to use emit_cmp_and_jump_insns. - (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab. - -Wed Sep 22 17:58:01 1999 Stan Cox - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large - register offsets; let LEGITIMIZE_ADDRESS load it into a register. - (LEGITIMIZE_ADDRESS): Use plus_constant to avoid - (plus (reg) (const_int 0)) - * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls. - -Wed Sep 22 17:55:31 1999 David Edelsohn - - * rs6000.c (expand_block_move): DImode loads and stores require - word-aligned displacements. Increment address registers with - adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT. - -Wed Sep 22 17:35:55 1999 Michael Meissner - - * dwarf2out.c (base_type_die): Use the name __unknown__ if there - is no name for the base type, rather than segfault. If we are - writing out a complex integer type, use DW_ATE_lo_user. - - * expr.c (emit_move_insn_1): If we are copying a complex that fits - in one word or less (complex char, complex short, or on 64 bit - systems complex float) to/from a hard register, copy it through - memory instead of dying in gen_{real,imag}part. If we have a - short complex type, prevent inlining since it allocates stack - memory. - - * tree.c (build_complex_type): If we are writing dwarf2 output, - generate a name for complex integer types. - -Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod - - * basic-block.h (add_noreturn_fake_exit_edges): Use correct name. - * flow.c (remove_edge): Remove extra whitespace. - (remove_fake_edges): Fix comment. - (add_noreturn_fake_exit_edges): Use the correct name. - -Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell - - * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables. - (mostlyclean): Depend on INTL_MOSTLYCLEAN. - (clean): Depend on INTL_CLEAN. - (maintainer-clean): Adjust. - -Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi - - * configure.in (AC_PREREQ): Bump to 2.13. - (AC_C_STRINGIZE): Call this instead of using a custom macro. - - * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__. - - * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY. - - * acconfig.h (HAVE_CPP_STRINGIFY): Delete. - - * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete. - (HAVE_STRINGIZE): Define. - -Wed Sep 22 06:25:15 1999 Jim Kingdon - - * c-parse.in: save and restore warn_pointer_arith on __extension__ - along with pedantic. - (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added. - Set the type of extension to itype rather than $1 kludge. - * extend.texi (Alternate Keywords): Adjust documentation. - * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt. - -Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c, pa.h, pa.md: Support multiple assembler dialects in - most assembler templates. - - * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0 - FP loads and stores. - (following_call): Always return zero for the PA8000. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0 - FP loads and stores. - (LEGITIMIZE_RELOAD_ADDRESS): Similarly. - - * pa.h (BRANCH_COST): Define. - - * pa.md (return, return_internal): Use bve for PA2.0. - - * pa.md (fused multiply): Add variants which reduce height for the - fused multiply, but which still generate 2 insns. - (fnegabs): Similarly. - - * pa.md (subsi3): Turn into an expander. Create two anonymous - patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. - * pa.h (EXTRA_CONSTRAINT): Handle 'S'. - - * pa.md (floatunssisf2, floatunssidf2): Generate different RTL - for TARGET_PA_20. - (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0 - code generation. - (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise. - (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise. - - * regclass.c (init_regs): Add "top_of_stack" as a garbage - collection root. - - * flow.c (record_active_eh_regions): Terminate loop after finding - the last insn in the last basic block. - -Wed Sep 22 20:25:00 1999 Michael Hayes - - * config/c4x/c4x.md: Delete parallel instruction peepholes. - -Wed Sep 22 19:59:19 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots. - -Wed Sep 22 19:56:25 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn - splitting to not use output template. - -Wed Sep 22 19:50:12 1999 Michael Hayes - - * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start. - * config/c4x/c4x.c (c4x_va_start): New function. - -Tue Sep 21 18:40:01 1999 Jan Hubicka - - * genrecog.c (not_both_true): Handle correctly cases when called for - tests with different positions in the insn. - -Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi - - * machmode.h (HOST_PTR_PRINTF): Move from here ... - - * system.h (HOST_PTR_PRINTF): ... to here. - - * mips-tfile.c: Don't include machmode.h. - - * Makefile.in (MACHMODE_H): New variable. Update to use it. - (mips-tfile.o): Don't depend on machmode.h. - -Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi - - * haifa-sched.c (sched_analyze): Rename local variable `region' to - avoid conflicts with typedef struct `region' at the top level scope. - -Tue Sep 21 14:14:50 1999 Richard Henderson - - * basic-block.h (basic_block): Add eh_beg, eh_end. - * flow.c (entry_exit_blocks): Update. - (find_basic_blocks): Don't allocate bb_eh_end, or pass it around. - Call new functions. - (find_basic_blocks_1): Don't record eh_list at each bb. Use - lists.c functions to allocate insn lists. - (make_edges): Use eh_beg+eh_end, not the lists. Split out EH - edge creation ... - (make_eh_edge): ... here. New. - (move_stray_eh_region_notes): New. - (record_active_eh_regions): New. - (delete_unreachable_blocks): Split out block merging ... - (try_merge_blocks): ... here. New. - (merge_blocks_move_predecessor_nojumps): Remove edge arg. - Dump debugging data. - (merge_blocks_move_successor_nojumps): Likewise. - (merge_blocks): Use eh_beg+eh_end to validate block movement. - -Tue Sep 21 11:15:03 1999 Martin v. Löwis - - * extend.texi (Bound member functions): Document unbound pmf - conversion. - -Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod - - * flow.c (split_edge): Handle insertion on a fallthrough edge which - has the EXIT_BLOCK as a dest. - -Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod - - * flow.c (remove_edge): New function to remove an edge from the - flow graph. - (remove_fake_successors): New function to remove fake successor edges. - (remove_fake_edges): New function to remove all fake edges from the - flow graph. - (add_fake_exit_edges): New function to add fake edges from all blocks - with no successors to the exit block. - * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add - prototypes for new functions. - -Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod - - * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): - Use Pmode to determine whether to output .dword or .word. - -Tue Sep 21 11:04:34 1999 Alex Samuel - - * tree.c (built_in_filename): New variable. - (BUILT_IN_FILENAME): New macro. - (init_tree_codes): Allocate built_in_filename. - (make_node): Use built_in_filename instead of string constant. - -Tue Sep 21 14:13:27 1999 Nick Clifton - - * configure.in: Add fr30 target. - * configure: Regenerate. - * config/fr30: New directory. - * config/fr30/crti.asm: New file. - * config/fr30/fr30.c: New file. - * config/fr30/crtn.asm: New file. - * config/fr30/fr30.h: New file. - * config/fr30/fr30.md: New file. - * config/fr30/lib1funcs.asm: New file. - * config/fr30/t-fr30: New file. - * config/fr30/xm-fr30.h: New file. - -Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (merge_blocks_move_successor_nojumps): Delete the - BARRIER at the end of the successor, not the BARRIER before - the successor. - - * pa.c (pa_add_gc_roots): Fix thinko in last change. - -Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com) - - * stmt.c (any_pending_cleanups): Don't crash when - current_function->stmt is unset. - -Tue Sep 21 00:59:49 1999 Alexandre Oliva - - * emit-rtl.c (init_emit_once): Initialize const_int_rtx before - other initializations that may use it for relative offsets. - -Mon Sep 20 21:43:25 1999 Alexandre Oliva - - * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs. - (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas. - * config/i386/sol2dbg.h: Removed. - * config/i386/sol2gas.h: New file, to enable gas work-around. - * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas. - Don't use sol2dbg.h. - * configure: Rebuilt. - -Mon Sep 20 13:29:41 1999 Mark Mitchell - - * invoke.texi (-fthis-is-variable): Remove documentation. - -Mon Sep 20 12:59:16 1999 Richard Henderson - - * basic-block.h (compute_bb_for_insn): Declare. - * flow.c (compute_bb_for_insn): Export. Don't accept the varray - to use; set size of basic_block_for_insn directly. - (find_basic_blocks): Update. - -Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi - - * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();". - -Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi - - * crtstuff.c (ON_EXIT): Delete empty macro definition. - (__do_global_ctors_aux): Call atexit(), not ON_EXIT(). - -Mon Sep 20 15:25:35 1999 Nick Clifton - - * c-decl.c (c_decode_option): Extend comment. - -Mon Sep 20 14:43:37 1999 Nick Clifton - - * toplev.c (progname): Make 'const char *' - (flag_print_mem): Move out of main. - (version_flag): Move out of main. - (filename): Move out of main. - (debug_args): Remove g prefix from options. - (documented_lang_options): Remove cpplib specific options. - (display_help): Add g prefix to debug options. - (check_lang_option): Delete this function. - (decode_d_option): New function: Decode -d... option. - (decode_f_option): New function: Decode -f... option. - (decode_W_option): New function: Decode -W... option. - (decode_g_option): New function: Decode -g... option. - (independent_decode_option): New function: Decode a language - independent command line option. - (main): Invoke lang_decode_option and then - independent_decode_option on each command line option in - turn. - -Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com) - - Revert this change. Gavin's patch to operand_equal_p is a better fix. - * fold-const.c (fold_range_test): Do not try to fold the range - test if the rhs or lhs has side effects. - - * basic-block.h (compute_flow_dominators): Declare. - - * gcse.c (alloc_code_hoist_mem): New function. - (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. - (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. - (hoist_code, one_code_hoisting_pass): Likewise. - (gcse_main): If optimizing for size, then hoist expressions - computed in multiple dominated basic blocks. - - * gcse.c (invalid_nonnull_info): New function. - (delete_null_pointer_checks): Likewise. - * rtl.h (delete_null_pointer_checks): Declare. - * toplev.c (rest_of_compilation): Call delete_null_pointer_checks. - - * flow.c (merge_blocks_move_predecessor_nojumps): New function. - (merge-blocks_move_successor_nojumps): Likewise. - (merge_blocks): Allow merging of some blocks, even if it requires - physical movement of the blocks, but not if it requires new jumps. - - * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file. - Callers and prototype changed. - * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes. - -Mon Sep 20 06:56:32 1999 Alexandre Oliva - - * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of - -YP when both -p and -pg are present. From i386/sol2.h. - -Mon Sep 20 10:49:05 1999 Bernd Schmidt - - * Makefile.in (distclean): Delete tm_p.h. - * configure.in: Create a new file, "tm_p.h", from a list in - "tm_p_file". For ix86 systems, set up "tm_p_file" to include - "i386/i386-protos.h". - - * alias.c: Include "tm_p.h". - * c-typeck.c: Likewise. - * calls.c: Likewise. - * cse.c: Likewise. - * emit-rtl.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * final.c: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * gcse.c: Likewise. - * global.c: Likewise. - * haifa-sched.c: Likewise. - * integrate.c: Likewise. - * jump.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * recog.c: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * toplev.c: Likewise. - * tree.c: Likewise. - * unroll.c: Likewise. - * genattrtab.c (main): Make generated file include "tm_p.h". - * genemit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genrecog.c (main): Likewise. - - * i386.h: Delete all prototypes. - * i386.c: Include "tm_p.h". - (ix86_attr_length_default): Call constant_call_address_operand - with correct number of arguments. - * i386-protos.h: New file. - * i386.md (unnamed patterns): Call constant_call_address_operand - with correct number of arguments. - (exception_receiver): Call load_pic_register with correct number - of arguments. - -Sun Sep 19 14:18:39 1999 Richard Henderson - - * c-pragma.c (mark_align_stack): Dereference the void* properly. - -Sun Sep 19 09:03:40 1999 Mark Mitchell - - * rtl.h (insns_safe_to_move_p): New function. - * loop.c (find_and_verify_loops): Use it. - * rtlanal.c (insns_safe_to_move_p): Define it. - -Sun Sep 19 02:54:33 1999 Richard Henderson - - * c-pragma.c: Include ggc.h. - * Makefile.in (c-pragma.o): Update. - -Sat Sep 18 16:01:18 1999 Alexandre Oliva - - * config/i386/sol2.h (CPP_SPEC): Support -[p]threads - (LIB_SPEC): Likewise. - (LINK_SPEC): Do not assert -z text with -shared -mimpure-text. - Reindent -YP/-p/-pg. - Copied from config/sparc/sol2.h. - -Sat Sep 18 11:52:43 1999 Richard Henderson - - * c-pragma.c (mark_align_stack): New. - (init_pragma): New. - * c-pragma.h (init_pragma): Declare it. - * c-lex.c (init_parse): Call it. - -Sat Sep 18 15:20:38 1999 Alexandre Oliva - - * configure.in: Pick up thread library on Solaris/x86 just - like on Solaris/sparc. - * configure: Rebuilt. - -Sat Sep 18 11:15:58 1999 Alex Samuel - - * rtl.h (global_rtx_index): New enum. - (global_rtl): Change to array of rtx. - (pc_rtx, cc0_rtx): Redefine accordingly. - (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise. - (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise. - (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise. - (virtual_outgoing_args_rtx, virtual_cfa): Likewise. - (const_int_rtx): Change to array of rtx. - (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine - accordingly. - * emit-rtl.c (global_rtl): Change to array of rtx. - (const_int_rtx): Change to aray of rtx. - (gen_rtx_CONST_INT): Redefine accordingly. - (init_emit_once): Allocate and initialize global_rtl. Likewise - for const_int_rtx. Add both as GC roots. - * genattrtab.c (global_rtl): Update declaration. - -1999-09-17 Ulrich Drepper - - * Makefile (USER_H): Add iso646.h back. - -Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of - zapping the LOG_LINKS of sched_before_next_call. - - * pa.h (INSN_SETS_ARE_DELAYED): Delete. - * pa.c (insn_refs_are_delayed): Renamed from - insn_sets_and_refs_are_delayed. - -Fri Sep 17 15:19:01 1999 Mark Mitchell - - * functiion.h (struct function): Add x_whole_function_mode_p. - (retrofit_block): Declare. - * function.c (retrofit_block): New function. - (identify_blocks): Add assertions. Allow an incomplete set of - block notes if we're still generating code for the function. - * integrate.c: Include loop.h. - (expand_inline_function): Call find_loop_tree_blocks to map block - notes to blocks when in whole-function mode. Use retrofit_block - to insert new BLOCKs for the inlined function, rather than - insert_block. - * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel. - * Makefile.in (integrate.o): Depend on loop.h. - -Fri Sep 17 15:11:20 1999 Mark Mitchell - - * tree.h (warn_about_unused_variables): Declare. - * stmt.c (warn_about_unused_variables): New function, split out - from ... - (expand_end_bindings): Here. - -Fri Sep 17 15:07:37 1999 Mark Mitchell - - * stmt.c (preserve_subexpressions_p): Don't crash when - current_function->stmt is unset. - -Fri Sep 17 15:03:16 1999 Mark Mitchell - - * stmt.c (expand_start_bindings): Allow callers to pass a flag - indicating that no NOTE_INSN_BLOCK_BEG note is required. - (expand_start_target_temps): Use it. - * except.c (expand_eh_region_start_for_decl): Likewise. - * expr.c (expand_expr): Likewise. - -Fri Sep 17 15:05:27 1999 Gavin Romig-Koch - - * fold-const.c (operand_equal_p): Pay attention to side effects. - -Fri Sep 17 11:14:17 1999 Jason Merrill - - * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT. - * sparc/sunos4.h (HAVE_ON_EXIT): Remove. - - * tlink.c (scan_linker_output): Look for keywords before accepting - a mangled name in quotes. - -Thu Sep 16 16:47:08 1999 Richard Henderson - - * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero. - * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise. - -Thu Sep 16 16:35:41 1999 Richard Henderson - - * alpha.md: Revert Thu Nov 26 change that came in through the - last gcc2 merge: reinstate (plus (plus ...)) reload patterns. - Avoid earlyclobber when possible. - -Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi - - * libgcc2.c (__do_global_ctors): Call atexit with one arg. - - * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS(). - Define HAVE_ON_EXIT. - -Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi - - * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use - CTYPE_CONV in all ctype macros. - - * cccp.c (initialize_char_syntax): Use uppercase ctype macro - from system.h. - - * cexp.y (initialize_random_junk): Likewise. - - * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise. - - * i370.c (handle_pragma): Likewise. - - * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise. - - * v850.c (override_options): Likewise. - - * doprint.c (_doprnt): Likewise. - - * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files): - Likewise. - - * fixinc/server.c (load_data): Likewise. - - * fold-const.c (real_hex_to_f): Likewise. - - * genattr.c (write_upcase, gen_attr): Likewise. - - * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr, - write_upcase): Likewise. - - * genemit.c (print_code): Likewise. - - * genopinit.c (gen_insn): Likewise. - - * genpeep.c (print_code): Likewise. - - * genrecog.c (print_code): Likewise. - - * optabs.c (init_libfuncs): Likewise. - -Thu Sep 16 14:03:32 1999 Mark Mitchell - - * haifa-sched.c (sched_analyze): Keep the list of notes organized - in pairs. - (reemit_notes): Likewise. - -Thu Sep 16 11:50:52 1999 Alex Samuel - - * ggc.h (ggc_root): Move to ggc-common.c. - (roots): Remove. - (ggc_mark_rtx, ggc_mark_tree): Change to macro. - (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern. - (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise. - (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New. - * ggc-common.c (ggc_root): Move from ggc.h. - (roots): Declare, static. - (ggc_mark_rtx, ggc_mark_tree): Renamed to... - (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for - null or check/set mark bit. - (ggc_mark_roots): New. - * ggc-simple.c (ggc_collect): Call ggc_mark_roots. - -Thu Sep 16 11:37:32 1999 Richard Henderson - - * m32r.c: Include toplev.h. - (*): Add ATTRIBUTE_UNUSED as needed to arguments. - (gen_compare): Rename swap_p to must_swap to match uses. - Add default abort case. - (m32r_output_function_epilogue): Remove unused variables. - (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. - * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally - define to empty parameter list. Update all uses. - (predicate decls): Use enum machine_mode not int. - * m32r.md (movsi): Call abort, not fatal_insn. - (zero_branch_insn, rev_zero_branch_insn): Add default abort case. - -1999-09-14 Andrew Haley - - * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0, - use $0 instead of 0. - -Thu Sep 16 10:53:36 1999 Bernd Schmidt - - * reload1.c (order_regs_for_reload): Move hard_reg_n_uses - computation out of loop over hard regs. - -Wed Sep 15 21:37:06 1999 Mark Mitchell - - * function.c (identify_blocks): Don't shadow a variable in an - outer scope. - * integrate.c (integrate_decl_tree): Don't use pushlevel, - pushdecl, or poplevel to build up the new BLOCK tree. - (expand_inline_function): Likewise. - (integrate_parm_decls): Likewise. - -Wed Sep 15 21:20:38 1999 Mark Mitchell - - * c-typeck.c (qualify_type): Merge qualifiers from both types. - -1999-09-15 Brad Lucier - - * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math - * invoke.texi: Document this change. - -Wed Sep 15 17:56:00 1999 Richard Henderson - - * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT. - Free the struct. - (mark_emit_status): Renamed from mark_emit_state. - * except.c (mark_eh_status): Renamed from mark_eh_state. - Check not null before marking. - (free_eh_status): New. - * expr.c (mark_expr_status, free_expr_status): New. - * function.c (free_machine_status): New. - (free_after_parsing): New. - (free_after_compilation): Move bits to free_after_parsing; call - free_eh_status, free_expr_status; zero the marked members of the - function state. - (prepare_function_start): No can_garbage_collect. - Call init_eh_for_function. - (expand_dummy_function_end): Free up current_function state. - (mark_function_status): Renamed from mark_function_state. - (mark_function_chain): No can_garbage_collect. Call mark_expr_status. - * function.h (struct function): No can_garbage_collect. - (free_machine_status, free_after_parsing): Declare. - (free_eh_status, free_expr_status): Declare. - * ggc.h (mark_expr_status): Declare. - * stmt.c (free_stmt_status): Free the struct. - (mark_stmt_status): Renamed from mark_stmt_state. - (init_stmt): Don't call init_eh. - (init_stmt_for_function): Don't call init_eh_for_function. - * toplev.c (compile_file): Call init_eh. - (rest_of_compilation): Free basic block info before ggc_collect. - Call free_after_parsing; conditionally call free_after_compilation. - * varasm.c (mark_varasm_status): Renamed from mark_varasm_state. - Check not null before marking. - (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct. - -Wed Sep 15 17:53:16 1999 Richard Henderson - - * c-lex.c (yylex): Initialize warn. - -Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Properly set the mode of the scratch - register when performing secondary reloads for the SAR register. - -Wed Sep 15 15:51:52 1999 Mark Mitchell - - * rtl.h (NOTE_BLOCK_NUMBER): Replace with ... - (NOTE_BLOCK): New macro. - (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove. - * function.h (identify_blocks): Change prototype. - * function.c (identify_blocks): Simplify. - (reorder_blocks): Likewise. - * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a - NOTE_INSN_BLOCK_{BEG,END}. - * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on - the list of saved notes if the note isn't a - NOTE_INSN_BLOCK_{BEG,END}. - (move_insn1): Use NOTE_EH_HANDLER in comment, rather than - NOTE_BLOCK_NUMBER. - (reemit_notes): Adjust recreation of notes to reflect new saved - note structure. - * print-rtl.c (print_rtx): Print the address of the BLOCK when - printing a block note. - * stmt.c (block_vector): Remove. - (find_loop_tree_blocks): Simplify. - (unroll_block_trees): Likewise. - * tree.h (reorder_block): Change prototype. - -Wed Sep 15 14:39:35 1999 Jason Merrill - - * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT. - * libgcc2.c: Lose obsolete defn of WEAK_ALIAS. - (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT. - (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl. - (atexit, exit): Simplify. - * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT. - * config/lots: Remove defns of HAVE_ATEXIT. - -Wed Sep 15 10:25:12 1999 Mark Mitchell - - * calls.c (precompute_arguments): Fix typo in comment. - * expr.c (preexpand_calls): Don't preexpand the cleanup in a - TARGET_EXPR. - -Wed Sep 15 09:59:59 1999 Mark Mitchell - - * dsp16xx.c (override_options): Fix typos in GC root registration. - -Wed Sep 15 15:23:28 1999 Philip Blundell - - * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition - from config/svr4.h. - (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise. - (FUNCTION_PROFILER): Redefine appropriately for Linux. - (CC1_SPEC): Likewise. - -Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi - - * genattr.c (main): Add extern prototype. Call return, not exit. - * genattrtab.c (main): Likewise. - * gencheck.c (main): Likewise. - * gencodes.c (main): Likewise. - * genconfig.c (main): Likewise. - * genemit.c (main): Likewise. - * genextract.c (main): Likewise. - * genflags.c (main): Likewise. - * gengenrtl.c (main): Likewise. - * genopinit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genpeep.c (main): Likewise. - * genrecog.c (main): Likewise. - - * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED. - * genattrtab.c (get_insn_name): Likewise. - * gencodes.c (get_insn_name): Likewise. - * genconfig.c (get_insn_name): Likewise. - * genemit.c (get_insn_name): Likewise. - * genextract.c (get_insn_name): Likewise. - * genflags.c (get_insn_name): Likewise. - * genopinit.c (get_insn_name): Likewise. - * genpeep.c (get_insn_name): Likewise. - - * gencheck.c (usage): Add static prototype. - * genextract.c (print_path): Constify a char*. - * genopinit.c (optabs): Likewise. - * genoutput.c (operand_data, data, output_predicate_decls, - compare_operands): Likewise. - * genrecog.c (write_tree): Add default case in switch. - -Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi - - * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes. - - * print-rtl.c (get_insn_name): Remove prototype. - - * toplev.h (progname): Declare const. - - * toplev.c (init_decl_processing, init_obstacks, init_tree_codes, - init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info, - dump_sched_info, dump_local_alloc, regset_release_memory, - print_rtl, print_rtl_with_bb, rest_of_decl_compilation, - error_with_file_and_line, error_with_decl, error_for_asm, error, - fatal, warning_with_file_and_line, warning_with_decl, warning, - pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry): - Remove redundant prototypes. - - (notice, check_lang_option, report_file_and_line, vnotice, - mark_file_stack): Add static prototype. - (set_fatal_function): Add prototype. - (vnotice, report_file_and_line, set_fatal_function, - check_lang_option): Constify a char*. - (main): Prototype. Call return, not exit. - -Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi - - * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro. - - * configure.in (AC_GCC_C_LONG_DOUBLE): Call it. - - * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2. - - * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double. - -Wed Sep 15 11:04:43 1999 Bernd Schmidt - - * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it, - behave as if it's zero in all cases. - (expand_function_start): Adjust call to assign_parms. - * tree.h (assign_parms): Adjust prototype. - * objc/objc-act.c (hack_method_prototype): Adjust call to - assign_parms. - -Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to - arg_pointer_rtx fixed if the argument pointer register is - not fixed. - (NONZERO_BASE_PLUS_P): Likewise. - -Tue Sep 14 20:26:02 1999 Richard Henderson - - * rtl.def (match_insn, match_insn2): Remove match_insn; rename - match_insn2 to match_insn. - * genrecog.c (add_to_sequence): Rename MATCH_INSN2. - -Tue Sep 14 20:10:29 1999 Richard Henderson - - * Makefile.in (USER_H): Remove va-foo.h. - - * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h, - va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h, - va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h, - va-spur.h,va-v850.h}: Remove. - -Tue Sep 14 19:43:16 1999 Richard Henderson - - * sparc/sparc.md (eligible_for_return_delay): New attribute. - (in_return_delay): Use it instead of match_insn. - -Tue Sep 14 23:05:37 1999 Alexandre Oliva - - * config/alpha/va_list.h (va-alpha.h): Do not include. - (__gnuc_va_list): Typedef as in varargs.h. - -Tue Sep 14 18:14:03 1999 Richard Henderson - - * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and - DECL_LIVE_RANGE_RTL. - -Tue Sep 14 16:47:08 1999 Mark Mitchell - - * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER, - not NOTE_BLOCK_NUMBER. - (expand_eh_region_end): Likewise. - (find_exception_handler_labels): Likewise. - (scan_region): Likewise. - (exception_optimize): Likewise. - (update_rethrow_references): Likewise. - (set_insn_eh_region): Likewise. - * final.c (final_scan_insn): Likewise. - * flow.c (make_edges): Likewise. - * integrate.c (expand_inline_function): Likewise. - * print-rtl.c (print_rtx): Likewise. - -Tue Sep 14 16:30:16 1999 Richard Henderson - - * ginclude/stdarg.h, ginclude/varargs.h: Implement in - terms of builtin functions and types. - - * mips.c (mips_build_va_list): New. - (mips_va_start, mips_va_arg): New. - * mips.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. - - * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set. - (sh_build_va_list, sh_va_start, sh_va_arg): New. - * sh.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. - -Tue Sep 14 16:20:24 1999 Richard Henderson - - * recog.h (struct recog_data): Make dup_num, operand_address_p, - n_operands, n_dups, n_alternatives `char' instead of `unsigned char'. - (struct insn_data): Likewise with n_operands, n_dups, - n_alternatives, output_format. - * regclass.c (scan_one_insn): Cast n_operands to int before - arithmetic inside comparison. - -Tue Sep 14 15:13:36 1999 Richard Henderson - - * toplev.c (compile_function): Unconditionally emit nop. - -Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi - - * haifa-sched.c (actual_hazard): Move declaration of variable - `this_cost' into the scope where it is used. - -Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi - - * c-pragma.c (handle_pragma_token): Wrap variables `name' and - `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in - HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP. - - * genrecog.c (make_insn_sequence): Call memset, not bzero. - - * jump.c (find_insert_position): Don't declare or define unless - !HAVE_conditional_arithmetic. - (returnjump_p_1, delete_prior_computation): Add static prototypes. - - * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes. - - * recog.c (offsettable_address_p): Prototype function pointer. - (preprocess_constraints): Call memset, not bzero. - - * tree.c (tree_node_kind_names): Constify a char*. Make static. - (gcc_obstack_init): Don't declare. - (fix_sizetype): Add static prototype. - (gcc_obstack_init): Use prototype casts in call to _obstack_begin. - (tree_cons): Call memset, not bzero. - - * varasm.c (remove_from_pending_weak_list): Wrap declaration and - definition in macro ASM_WEAKEN_LABEL. - (mark_const_hash_entry): Add static prototype. - -Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi - - * c-lex.c (handle_generic_pragma): Remove unused variable `c'. - - * unroll.c (find_common_reg_term, subtract_reg_term, - loop_find_equiv_value): Add static prototypes. - (unroll_loop): Wrap variable `prev' in macro HAVE_cc0. - (copy_loop_body): Remove unreachable break statement. - - * sparc.c (sparc_va_arg): Remove unused variable `tmp'. - - * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes. - -Tue Sep 14 15:28:00 1999 Bernd Schmidt - - Undo some changes from the gcc2 merge: - * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code. - * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null - pointers. - - Undo this change: - Sat Oct 3 07:20:28 1998 Stephen L Moshier - * emit-rtl.c (gen_lowpart_common): Disable optimization of - initialized float-int union if the value is a NaN. - -Tue Sep 14 04:03:44 1999 Mumit Khan - - * gthr-win32.h: New file. - - * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize - shared as a valid attribute. - * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute. - * extend.texi: Document `shared' variable attribute. - -Tue Sep 14 04:01:46 1999 Loren Rittle - - * configure.in: Handle --enable-threads on FreeBSD. - * configure: Rebuit. - -Tue Sep 14 03:58:44 1999 Andreas Jaeger - - * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add - thread support. - * configure: Rebuilt. - -Tue Sep 14 03:47:23 1999 Joel Sherrill - Charles-Antoine Gauthier - Rosimildo DaSilva - - * configure.in (m68k-*-rtemscoff*): Added. - * configure.in (mips64orion-*-rtems*): Converted to ELF. - * configure.in (sparc-*-rtemsaout*): Added as alias for old - sparc-rtems configuration. - * configure.in (sparc-*-rtemself*): Added. - * configure.in (sparc-*-rtems*): Now ELF not a.out. - * config/i386/rtems.h: Added comment. - * config/sparc/rtemself.h: New file. - - * configure.in (m68k-rtemself): Added. - * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO - and DWARF_DEBUGGING_INFO. - * config/m68k/crti.s: New file. - * config/m68k/crtn.s: New file. - * config/m68k/t-crtstuff: New file. - * config/m68k/rtemself.h: New file. - - * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for - global ctor/dtor and C++ exception handling. - * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o) - for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for - ENDFILE_SPEC. - * config/i386/t-rtems-i386: New File. - -Tue Sep 14 09:47:41 1999 Andreas Schwab - - * stmt.c (expand_end_case): Return right away if the case stack is - empty. - -Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (version.c): Remove rule incorrectly brought in from - the gcc2 merge. - -Tue Sep 14 01:42:27 1999 Marc Espie - - * Makefile.in: Prepend $(SHELL) to move-if-change calls. - * msdos/top.sed: Take into account a prepended $(SHELL) to - move-if-change. - * winnt/config-nt.sed: Likewise. Kill bogus substitution. - - * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls. - -Tue Sep 14 01:38:52 1999 J"orn Rennecke - - * regmove.c (fixup_match_1): Don't change an unchanging register. - (stable_but_for_p): Renamed to: - (stable_and_no_regs_but_for_p). Reject unchanging registers too. - Changed all callers. - -Tue Sep 14 01:33:15 1999 Andreas Schwab - - * loop.c (strength_reduce): Don't call reg_used_between_p if the - insn from BL2 is after the insn from BL. - -Mon Sep 13 21:06:01 1999 Richard Henderson - - * recog.h (INSN_OUTPUT_FORMAT_*): New. - (struct insn_data): Merge `template' and `outfun' into `output'. - Add `output_format'. - * genoutput.c (INSN_OUTPUT_FORMAT_*): New. - (struct data): Remove `outfun'; add `output_format'. - (name_for_index): Remove declaration. - (output_insn_data): Handle output formats. - (process_template): Emit the bare array for @. - (gen_expand, gen_split): Set output_format to NONE. - * output.h (get_insn_template): Declare. - * final.c (get_insn_template): New. - (final_scan_insn): Use it. - * toplev.c (compile_file): Likewise. - - * c4x/c4x.c (c4x_process_after_reload): Likewise. - * i860/i860.c (output_delayed_branch): Likewise. - (output_delay_insn): Likewise. - -1999-09-13 Alexandre Oliva - - * rtl.c (obstack_alloc_rtx): Removed. - -1999-09-13 17:03 -0700 Zack Weinberg - - * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern. - -Mon Sep 13 15:21:46 1999 Richard Henderson - - * i386.c (call_insn_operand): Reject const_int. - (expander_call_insn_operand): Use call_insn_operand. - -Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi - - * gcc.c (getrusage): Wrap prototype arguments in PROTO(). - -1999-09-13 12:18 -0700 Zack Weinberg - - * config/i370/i370.md (mulsi, divsi, modsi anonymous insns): - Use DImode operation. - -1999-09-13 12:13 -0700 Zack Weinberg - - * gcc.c: Include sys/resource.h. - (report_times): New flag. - (execute): If report_times is set, calculate and report the - CPU time consumed by each subprocess. - - (rus, prus): New globals. - (option_map): Add --time. - (display_help): Document -time. - (process_command): Set report_times if -time is given. - Turn off -pipe if -time is given. - - * invoke.texi: Document new option -time. - - * configure.in: Check for getrusage. Check if we have to - prototype getrusage. - * acconfig.h: Add NEED_DECLARATION_GETRUSAGE. - * configure: Regenerate. - * config.in: Regenerate. - -Mon Sep 13 12:57:06 1999 Dave Brolley - - * cppinit.c (append_include_chain): Initialize 'next' and 'alloc' - fields. - -Mon Sep 13 10:01:33 1999 Nick Clifton - - * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as - appropriate) if FINE_GRAINED_LIBRARIES is not defined. - (nan): Return _thenan_sf or _thenan_df as appropriate. - (L_thenan_sf): Define _thenan_sf. - (L_thenan_df): Define _thenan_df. - - * Makefile.in (FPBIT_FUNCS): Add _thenan_sf. - (DPBIT_FUNCS): Add _thenan_df. - -Mon Sep 13 09:38:53 1999 Andreas Schwab - - * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and - TYPE_SIZE_UNIT. - -Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi - - * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h. - - * gcc.h: New file. - (lang_specific_driver): Don't take a function pointer parameter. - All callers changed. - - * gcc.c: Include gcc.h. - (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link, - lang_specific_extra_outfiles, fatal): Don't declare. - (multilib_defaults_raw): Constify. - (read_specs): Call memset, rather than bzero. - (main): Call return, not exit. - (lookup_compiler): Call memcpy, not bcopy. - (fatal): Make extern. - - * cppspec.c: Include gcc.h. - (lang_specific_driver): Initialize variable `quote'. Constify a - char*. All calls to the function pointer parameter now - explicitly call `fatal'. - - * gccspec.c (lang_specific_driver): Include gcc.h. - -Sun Sep 12 19:52:10 1999 Richard Earnshaw - - * arm.c (note_invalid_constants): Use recog_data.operand_type - for recog_op_type. - -Sun Sep 12 15:53:20 1999 Bernd Schmidt - - * tree.h (build_common_tree_nodes, build_common_tree_nodes_2): - Declare. - - * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg, - reload_reg_class, reload_inmode, reload_outmode, reload_optional, - reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, - reload_secondary_in_reload, reload_secondary_out_reload, - reload_secondary_in_icode, reload_secondary_out_icode, - reload_reg_rtx, reload_when_needed): Delete declarations. - (struct reload): New structure. - (rld): Declare new array. - * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg, - reload_reg_class, reload_inmode, reload_outmode, reload_optional, - reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, - reload_secondary_in_reload, reload_secondary_out_reload, - reload_secondary_in_icode, reload_secondary_out_icode, - reload_reg_rtx, reload_when_needed): Delete definitions. - (rld): New array. - (whole file): Replace uses of the deleted arrays with uses of rld. - * reload1.c (whole file): Replace uses of the deleted arrays with - uses of rld. - (choose_reload_regs): Copy in/out of save_reload_reg_rtx with - explicit loops, not with bcopy. - -Sun Sep 12 05:00:24 1999 Richard Henderson - - * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups, - insn_n_alternatives, insn_operand_constraint, insn_operand_address_p, - insn_operand_mode, insn_operand_strict_low, insn_operand_predicate, - insn_name): Delete and consolidate into new structures. - (insn_operand_predicate_fn): New. - (insn_output_fn): New. - (insn_gen_fn): New. - (struct insn_operand_data): New. - (struct insn_data): New. - (insn_data): New. - (OUT_FCN): Update for insn_data change. - * builtins.c (expand_builtin_strlen): Likewise. - (expand_builtin_memcmp): Likewise. - * combine.c (make_extraction, simplify_comparison): Likewise. - * cse.c (canon_reg, cse_insn): Likewise. - * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. - * expmed.c (store_bit_field, extract_bit_field): Likewise. - (emit_store_flag): Likewise. - * expr.c (convert_move, emit_block_move): Likewise. - (clear_storage, emit_push_insn, expand_increment): Likewise. - (do_store_flag): Likewise. - * expr.h (GEN_FCN): Likewise. - (insn_gen_function): Die. - * final.c (final_scan_insn): Update for insn_data change. - (output_asm_name): Likewise. - * function.c (fixup_var_refs_1): Likewise. - * loop.c (check_dbra_loop): Likewise. - * optabs.c (expand_binop, expand_twoval_binop): Likewise. - (expand_unop, expand_complex_abs, emit_unop_insn): Likewise. - (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise. - (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise. - * recog.c (validate_replace_rtx_1, extract_insn): Likewise. - * regmove.c (gen_add3_insn): Likewise. - * reload.c (push_secondary_reload, combine_reloads): Likewise. - (find_reloads, find_reloads_address_1): Likewise. - (debug_reload_to_stream): Likewise. - * reload1.c (emit_reload_insns, gen_reload): Likewise. - * stmt.c (expand_end_case): Likewise. - * toplev.c (compile_file): Likewise. - - * c4x/c4x.c (c4x_process_after_reload): Likewise. - * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. - - * print-rtl.c (insn_name_ptr): Remove declaration. - (get_insn_name): Declare. - (print_rtx): Use it. - * genoutput.c (insn_name_ptr): Remove. - (next_operand_number): New. - (struct operand_data): New. - (null_operand, odata, odata_end): New. - (struct data): Use struct operand_data. - (idata, idata_end): Renamed from insn_data and end_of_insn_data. - (get_insn_name): Renamed from name_for_index. - (output_prologue): Define NO_MD_PROTOTYPES. - (output_predicate_decls): Break out from output_epilogue. - Iterate over the operands list. - (output_operand_data): Break out from output_epilogue. Emit - just the operands list. - (output_insn_data): Break out from output_epilogue. Emit just - the insn data. - (output_epilogue): Remove. - (output_get_insn_name): New. - (constraints, op_n_alternatives, predicates, address_p): Die. - (modes, strict_low, seen): Die. - (scan_operands): Take new param `d' instead of writing to - seven global variables. - (compare_operands): New. - (place_operands): New. - (validate_insn_alternatives): Update for struct data change. - (gen_insn): Don't zero or copy 7 global arrays. Update for - scan_operands; call place_operands. - (gen_peephole, gen_expand, gen_split): Likewise. - (main): Update for new output routines. - - * genattr.c (insn_name_ptr): Remove. - (get_insn_name): New function. - * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise. - * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise. - * genrecog.c: Likewise. - - * alpha.md (adddi3): Make `pattern' array static. - -Sun Sep 12 22:05:21 1999 Michael Hayes - - * config/c4x/c4x.h (c4x_rpts_cycles_string, - c4x_cpu_version_string): Constify char *. - * config/c4x/c4x.c (c4x_rpts_cycles_string, - c4x_cpu_version_string): Likewise. - -Sat Sep 11 23:28:33 1999 Richard Henderson - - * tree.c (save_tree_status): Revert 10 Sep change. - (restore_tree_status): Likewise. Call obstack_free with NULL - before freeing the obstack proper. - -Sat Sep 11 23:23:46 1999 Richard Henderson - - * cse.c (cse_main): If gc'ing, collect around cse_basic_block. - - * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into - surrounding context. - -Sat Sep 11 19:52:43 1999 Mark Mitchell - - * tree.c (type_hash_canon): Put all types in the hash-table, when - GC'ing. - -Sat Sep 11 18:37:04 1999 Richard Henderson - - * recog.h (struct recog_data, recog_data): New. - (recog_foo variables): Kill. - * recog.c (recog_operand, recog_operand_loc): Kill. - (recog_dup_loc, recog_dup_num, recog_n_operands): Kill. - (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill. - (recog_constraints, recog_op_type, recog_operand_address_p): Kill. - (recog_data): Define. - (extract_insn): Update all recog_foo references to use recog_data. - (preprocess_constraints, constrain_operands): Likewise. - * final.c (final_scan_insn, cleanup_subreg_operands): Likewise. - * genattrtab.c (main): Likewise. - * genextract.c (main): Likewise. - * genoutput.c: Likewise. - * genrecog.c (write_subroutine, main): Likewise. - * local-alloc.c (block_alloc): Likewise. - * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise. - * regclass.c (scan_one_insn, record_reg_classes): Likewise. - * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise. - * reload.c (find_reloads, find_reloads_toplev): Likewise. - * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise. - (reload_cse_simplify_operands): Likewise. - - * arc/arc.c (arc_final_prescan_insn): Likewise. - * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise. - * h8300/h8300.c (notice_update_cc): Likewise. - * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise. - * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. - * mn10200/mn10200.c (notice_update_cc): Likewise. - * mn10300/mn10300.c (notice_update_cc): Likewise. - * romp/romp.c (update_cc): Likewise. - * sparc/sparc.c (check_pic): Likewise. - * v850/v850.c (notice_update_cc): Likewise. - - * genemit.c (main): Don't declare recog_operand. - -Sat Sep 11 12:41:55 1999 Alex Samuel - - * ggc.h (rtvec_def): Forward declare. - (tree_node): Likewise. - (ggc_root): Define. - (roots): Declare. - (ggc_set_mark_rtx): Add prototype. - (ggc_set_mark_rtvec): Likewise. - (ggc_set_mark_tree): Likewise. - * ggc-simple.c (ggc_root): Don't define. - (roots): Don't declare. - (ggc_mark_rtx): Remove. - (ggc_mark_rtvec): Likewise. - (ggc_mark_tree): Likewise. - (ggc_mark_varray): Likewise. - (ggc_mark_tree_hash_table_entry): Likewise. - (ggc_mark_tree_hash_table): Likewise. - (ggc_set_mart_rtx): New function. - (ggc_set_mark_rtvec): Likewise. - (ggc_set_mark_tree): Likewise. - (ggc_add_root): Remove. - (ggc_add_rtx_root): Likewise. - (ggc_remove_tree_root): Likewise. - (ggc_add_string_root): Likewise. - (ggc_add_tree_varray_root): Likewise. - (ggc_add_tree_hash_table_root): Likewise. - (ggc_del_root): Likewise. - (ggc_mark_rtx_ptr): Likewise. - (ggc_mark_tree_ptr): Likewise. - (ggc_mark_string_ptr): Likewise. - (ggc_mark_tree_varray_ptr): Likewise. - (ggc_mark_tree_hash_table_ptr): Likewise. - * ggc-common.c: New file. - * Makefile.in (OBJS): Add ggc-common.o. - (ggc-common.o): List dependencies. - -1999-09-10 22:37 -0700 Zack Weinberg - - * cppalloc.c (xstrdup): Use memcpy. - * cpperror.c (cpp_print_containing_files): Don't use - cpp_notice. - * cpplib.c (conditional_skip): Set temp->lineno. - (do_endif): Make error message less obscure. - (if_directive_name): New function. - (cpp_get_token [case EOF]): Unwind the if stack and generate - error messages for each unterminated conditional in this file. - (parse_string): Do not behave differently if -traditional. - -Fri Sep 10 14:04:07 1999 Richard Henderson - - * builtins.c (expand_builtin_va_arg): Cope with an array-type - va_list decomposing to pointer-type. - * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields. - (rs6000_va_arg): Likewise. - -Fri Sep 10 13:21:21 1999 Jim Wilson - - * except.c (start_dynamic_handler): Compute size using - STACK_SAVEAREA_MODE. - -Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi - - * protoize.c: Remove various __STDC__ and POSIX hacks. Don't - include directory headers. Don't define strrchr. Don't provide - my_* replacement functions. Prefer PTR over `pointer_type'. - Don't prototype system functions. Don't redefine getopt. - - (shortpath, fancy_abort, notice, savestring, dupnstr, substr, - safe_read, safe_write, save_pointers, restore_pointers, - is_id_char, in_system_include_dir, directory_specified_p, - file_excluded_p, unexpand_if_needed, abspath, check_aux_info, - find_corresponding_lparen, referenced_file_is_newer, - save_def_or_dec, munge_compile_params, gen_aux_info_file, - process_aux_info_file, identify_lineno, check_source, - seek_to_line, forward_to_next_token_char, output_bytes, - output_string, output_up_to, other_variable_style_function, - find_rightmost_formals_list, do_cleaning, careful_find_l_paren, - do_processing, is_syscalls_file, rename_c_file, find_extern_def, - find_static_definition, connect_defs_and_decs, add_local_decl, - add_global_decls, needs_to_be_converted, visit_each_hash_node, - add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list, - edit_fn_declaration, edit_formals_lists, edit_fn_definition, - scan_for_missed_items, edit_file, string_list_cons): Add static - prototypes. - (standard_exec_prefix, target_machine, target_version, - default_syscalls_dir, string_list, string_list_cons, find_file, - do_cleaning): Constify a char*. - (safe_read, safe_write): Use PTR, not a char*. - (is_id_char): Take an int, not a char. - (main): Add prototype. Call return, not exit. - -Fri Sep 10 16:48:26 1999 Andrew Haley - - * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields - when comparing types. - -Fri Sep 10 08:43:32 1999 Richard Henderson - - * loop.c (basic_induction_var): Typo NULL_RTX -> NULL. - (strength_reduce): Release the varrays from the no-bivs early exit. - - * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before - the loop over the registers. - - * tree.c (save_tree_status): Set maybepermanent_firstobj NULL - for a new obstack. - (restore_tree_status): Check that instead when freeing the obstack. - -Wed Sep 8 16:12:04 1999 Andrew Haley - - * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used - as pointers. - -Fri Sep 10 11:58:55 1999 Bernd Schmidt - - * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some - operand size modifiers. - -Fri Sep 10 10:32:32 1999 Bernd Schmidt - - * c-common.c (c_common_nodes_and_builtins): Don't build - va_list_type_node. - * c-common.h (enum c_tree_index and related accesor macros): Remove - everything now declared in tree.h. - * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, - LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults. - (error_mark_node, void_type_node, char_type_node, integer_type_node, - unsigned_type_node, ptr_type_node, va_list_type_node, - integer_zero_node, null_pointer_node, integer_one_node): Delete. - (init_decl_processing): Call build_common_tree_nodes and - build_common_tree_nodes_2 instead of building their nodes here. - Don't add roots for these nodes. - * stor-layout.c (size_zero_node, size_one_node): Delete. - (set_sizetype): Make a new node for bitsizetype each time. - * tree.c (global_trees): New variable. - (init_obstacks): Add a gc root for it. - (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, - LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults. - (build_common_tree_nodes): New function. - (fix_sizetype): New function. - (build_common_tree_nodes_2): New function. - * tree.h (enum tree_index): New. - (global_trees): Declare. - Add accessor macros for all nodes now moved to global_trees. - Delete their declarations. - -Thu Sep 9 20:15:46 1999 Richard Henderson - - * c-decl.c (finish_function): When processing a nested function, - push and pop GC context around rest_of_compilation. - -Thu Sep 9 16:42:06 1999 Richard Henderson - - * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases. - Default ix86_arch to PROCESSOR_I386. - * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo. - (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete. - (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__. - (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide - __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__. - (EXTRA_SPECS): Remove deleted specs. - -Thu Sep 9 16:03:06 1999 Richard Henderson - - * function.c (assign_stack_local_1): Allocate from - function->x_frame_offset, not frame_offset. - -Thu Sep 9 14:36:31 1999 Mark Mitchell - - * ggc.h (lang_cleanup_tree): Remove. - * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree. - * ggc-callbacks.c (lang_cleanup_tree): Remove. - - * c-decl.c (finish_struct): Use ggc_alloc to allocate - TYPE_LANG_SPECIFIC when garbage collecting. - (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. - (lang_cleanup_tree): Remove. - -Thu Sep 9 14:23:02 1999 Jason Merrill - - * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here. - * crtstuff.c: Not here. - * dwarf2out.c: Or here. - * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame - info. - -Thu Sep 9 09:40:58 1999 Mark Mitchell - - * function.h (free_after_compilation): Remove decl parameter. - (free_varasm_status0: Likewise. - (free_emit_status): Likewise. - (free_stmt_status): Likewise. - (free_after_compilation): Likewise. - (init_lang_status): New variable. - (free_lang_status): Likewise. - * emit-rtl.c (free_emit_status): Make decl parameter implicit. - * function.c (init_lang_status): New variable. - (free_lang_status): Likewise. - (push_function_context_to): Don't set function::decl here. - (free_after_copmilation): Make decl parameter implicit. Call - free_lang_status if defined. - (prepare_function_start): Call init_lang_status if defined. - (init_function_start): Set function::decl here. - * profile.c (output_func_start_profiler): Don't call pushdecl - until we've actually started the function. - * stmt.c (free_stmt_status): Make decl parameter implicit. - * toplev.c (rest_of_compilation): Don't pass decl to - free_after_compilation. - * varasm.c (free_varasm_status): Likewise. - -Thu Sep 9 17:23:19 1999 Bernd Schmidt - - * except.c (call_get_eh_context): Add root when allocating static - tree variable. - -Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw - - * arm.c: Include "ggc.h". - (arm_add_gc_roots): New function. - (arm_override_options): Call it. - (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated. - - * arm.md (define_asm_attributes): Add a pool_range attribute. - -Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell - - * extend.texi (Volatiles): New node. - -Thu Sep 9 03:37:31 1999 Richard Henderson - - * ggc-simple.c (IS_MARKED, IGNORE_MARK): New. - (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New. - (struct ggc_any): Replace `mark' with `magic_mark'. - (ggc_alloc_string): Use memcpy, not bcopy. - (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc. - (ggc_free_{rtx,rtvec,tree,string}): Mark inline. - (ggc_free_any): New. - (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string. - (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match. - (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK. - Use IS_MARKED. Use ggc_free_any. - -1999-09-09 Scott Bambrough - - * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C - -Thu Sep 9 01:55:21 1999 Richard Henderson - - * toplev.c (main): Always init_ggc. - -Wed Sep 8 23:53:22 1999 Richard Henderson - - * except.c (find_all_handler_type_matches): Free the list if - we found no matches. - - * combine.c (SUBST): Break out to a real function do_SUBST. - (SUBST_INT): Likewise. - * gcse.c (free_pre_mem): Free `temp_bitmap'. - (pre_insert): Free `inserted'. - * loop.c (basic_induction_var): Always set `location'. - - * function.c (expand_function_end): Add initial_trampoline as a root. - * rtl.h (init_varasm_once): Declare. - * toplev.c (compile_file): Call it. - * ggc-simple.c (ggc_mark_string_ptr): New. - (ggc_add_string_root): New. - (ggc_collect): Disable collection avoidance temporarily. - * ggc.h (ggc_add_string_root): Declare. - * except.c (create_rethrow_ref): Use ggc_alloc_string. - * optabs.c (init_libfuncs): Likewise. - * varasm.c (named_section): Use ggc_alloc_string. - (make_function_rtl): Likewise. - (make_decl_rtl): Likewise. - (assemble_static_space): Likewise. - (assemble_trampoline_template): Likewise. - (output_constant_def): Likewise. - (force_const_mem): Likewise. - (mark_const_hash_entry): New. - (mark_pool_sym_hash_table): New. - (mark_varasm_state): Use it. - (init_varasm_once): New. - - * expr.h (init_one_libfunc): Declare. - * optabs.c (init_one_libfunc): New. - (init_optabs): Use it. - * config/gofast.h: Likewise. - * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise. - * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise. - -Thu Sep 9 13:46:06 1999 Geoffrey Keating - - * Makefile.in (cppexp.o): Depend on cpphash.h. - * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx. - Include cpphash.h. - * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx. - * cpplib.c (do_define): Generalise to handle poisoned definitions, - redefining poisoned identifiers, etc. - (do_undef): Don't allow poisoned identifiers to be undefined. - (do_pragma): Add #pragma poison. - (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. - - * cccp.c: Add T_POISON node type. - (special_symbol): Handle `defined(xxx)' and plain `xxx' for - poisoned xxx. - (do_define): Generalise to handle poisoned definitions, - redefining poisoned identifiers, etc. - (do_undef): Don't allow poisoned identifiers to be undefined. - (do_pragma): Add #pragma poison. - (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. - - * c-pragma.c (handle_pragma_token): Ignore #pragma poison. - * c-pragma.h: Add ps_poison state. We now always have generic - pragmas. - -Wed Sep 8 20:30:42 1999 Mark Mitchell - - * ggc.h (ggc_alloc): New function. - (ggc_mark): Likewise. - * ggc-simple.c (ggc_any): New structure. - (ggc_status): Add anys. - (n_anys_collected): New variable. - (ggc_alloc): Define. - (ggc_mark): Likewise. - (ggc_collect): Collect the anys. - -Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi - - * c-decl.c (mark_binding_level): Make static to match prototype. - -Wed Sep 8 16:41:27 1999 Richard Henderson - - * flow.c (new_insn_dead_notes): Don't early out for preexisting regs. - -Wed Sep 8 16:07:52 1999 Richard Henderson - - * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC - will use into account. Expand the max width to 5. - * rtl.c: Likewise. - -Wed Sep 8 16:01:14 1999 Richard Henderson - - * ggc-simple.c (ggc_free_rtx): Poison the correct amount - for the rtx length. - -Wed Sep 8 15:23:54 1999 Richard Henderson - - * alpha.md (call value patterns): Remove the result predicates. - -Wed Sep 8 13:35:38 1999 Richard Henderson - - * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from - last change. - -Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi - - * system.h (sbrk, malloc, calloc, realloc): Backup prototypes - changed from extern char *, to extern PTR. Also fix typo in - NEED_DECLARATION_REALLOC test. - - * mips-tdump.c (malloc, calloc, realloc): Don't prototype. - -Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi - - * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL, - ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF, - ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3, - ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete. - - * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR. - - * cccp.c (pcfinclude): Likewise. - - * global.c (allocno_compare): Likewise. - - * haifa-sched.c (rank_for_schedule): Likewise. - - * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise. - - * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise. - - * stupid.c (stupid_reg_compare): Likewise. - - * tree.c (_obstack_allocated_p): Likewise. - - * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise. - -1999-09-08 Bruce Korb autogen@linuxbox.com - - * Makefile.in: Give the hapless gperf user a hint about - why "gperf -F" fails. - -Wed Sep 8 04:43:22 1999 Richard Henderson - - * lists.c: Include ggc.h. - (zap_lists): New. - (init_EXPR_INSN_LIST_cache): Install it. - - * ggc-simple.c (init_ggc): Absorb the old init. - (ggc_push_context): Use xcalloc. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise. - (ggc_collect): Add [rvts] tags to the collection stats. - -Wed Sep 8 11:14:25 1999 Andreas Schwab - - * cccp.c (main): Fix handling of -include and -imacros options. - -Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com) - - * cpplib.c (cpp_push_buffer): Fix order of arguments. - -Wed Sep 8 04:44:09 1999 Alexandre Oliva - - * rtl.h (obstack_alloc_rtx): Removed, it's now static in - genrtl.c. - -Wed Sep 8 00:33:43 1999 Alasdair Baird - - * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG. - * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG - and SET_DEST. Update comment. - -Wed Sep 8 18:55:17 1999 Michael Hayes - - * config/c4x/c4x.c: Include ggc.h. - (c4x_add_gc_roots): New function. - (c4x_override_options): Call c4x_add_gc_roots. - -Wed Sep 8 00:00:16 1999 Richard Henderson - - * defaults.h (TARGET_ESC): Move ... - * system.h: ... here, where Linas had it in the first place. Silly me. - -Tue Sep 7 23:46:35 1999 Linas Vepstas - - * c-common.c: Use ISGRAPH, ISLOWER, toupper. - * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c, - genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise. - * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC. - * defaults.h (TARGET_ESC): Add default. - -Tue Sep 7 23:36:59 1999 Linas Vepstas - - * configure.in: add i370-*-openedition, i370-*-mvs and - i370-*-linux targets - -Tue Sep 7 23:31:53 1999 Mark Mitchell - - * dsp16xxx.c: Include ggc.h - (override_options): Mark GC roots. - * mn10200.c: Include ggc.h. - (asm_file_start): Mark GC roots. - * tahoe.c: Include ggc.h. - (extensible_operand): Mark GC roots. - -Tue Sep 7 23:23:15 1999 Linas Vepstas - - * README: Add section discussing status of ELF ABI. - * i370.c: Fix misc spelling mistakes. - (i370_label_scan): Updated notes, exception handling. - (i370_function_prolog): Simplify ELF stack handling. - * i370.h: (FIXED_REGISTERS): Free up r12 for ELF. - (STACK_GROWS_DOWNWARD): ELF stack grows down. - (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size. - * i370.md: (movdi): Add notes. - (floatsidf2): Use stack not rtca for scratch float area. - (iorsi3): Correct operand constraints. - * x-oe: Restore TAROUTOPTS which are used by pax. - -Tue Sep 7 22:39:18 1999 Mark Mitchell - - * rs6000.c: Include ggc.h. - (rs6000_add_gc_roots): New function. - (override_options): Call it. - -Tue Sep 7 22:09:03 1999 Richard Henderson - - * alpha.h (alpha_compare): New. - (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove. - * alpha.c: Likewise for the definitions. - (alpha_emit_conditional_branch): Update for alpha_compare. - (alpha_emit_conditional_move): Likewise. - * alpha.md (cmpdf, cmpdi): Likewise. - (setcc patterns): Likewise. Zero alpha_compare after use. - (sne): Optimize (x != 0) into (0U < x). - -Tue Sep 7 21:55:02 1999 Richard Henderson - - * alpha.h (alpha_eh_epilogue_sp_ofs): Remove. - (struct machine_function): Declare; add eh_epilogue_sp_ofs. - (INIT_EXPANDERS): Remove. - * alpha.c: Include ggc.h. - (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove. - (alpha_init_machine_status, alpha_mark_machine_status): New. - (override_options): Install them. - (struct machine_function): Moved to alpha.h. - (alpha_save_machine_status, alpha_restore_machine_status): Remove. - (alpha_init_expanders): Remove. - (alpha_return_addr): Adjust to use current_function->machine. - (alpha_ra_ever_killed): Likewise. - (alpha_expand_epilogue): Likewise. - * alpha.md (eh_epilogue): Likewise. - -Wed Sep 8 14:34:42 1999 Ian Piumarta - Melissa O'Neill - Geoffrey Keating - - * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or - call-used registers (call-saved registers must still be contiguous - and end with r31, of course). - -Tue Sep 7 21:41:38 1999 Richard Henderson - - * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to. - (self_promoting_type_p): Delete. - (self_promoting_args_p): Move ... - * c-common.c: ... here. - (c_common_nodes_and_builtins): Initialize lang_type_promotes_to. - (simple_type_promotes_to): New. - * builtins.c (lang_type_promotes_to): New. - (expand_builtin_va_arg): Use it to give diagnostic for illegal types. - * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ... - * c-common.h: ... here. - (self_promoting_args_p, simple_type_promotes_to): Declare. - * c-decl.c (duplicate_decls): Use simple_type_promotes_to. - (grokdeclarator): Likewise. - * tree.h (lang_type_promotes_to): Declare. - -Tue Sep 7 17:15:21 1999 Mark Mitchell - - Add some machine-dependent GC roots. - * sparc.c: Include ggc.h. - (sparc_add_gc_roots): New function. - (mark_ultrasparc_pipeline_state): Likewise. - (override_options): Call sparc_add_gc_roots. - * pa.c: Include ggc.h. - (pa_add_gc_roots): New function. - (mark_deferred_plabels): Likewise. - (override_options): Call pa_add_gc_roots. - * mips.c: Include ggc.h. - (mips_add_gc_roots): New function. - (override_options): Use it. - -Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi - - * cpperror.c (cpp_file_line_for_message): Constify a char*. - - * cppexp.c (parse_number, parse_charconst, cpp_lex, - cpp_parse_expr): Add static prototypes. - (parse_charconst): Don't cast away const-ness. - (token): Constify a char*. - - * cppfiles.c (file_name_list, include_hash, find_include_file, - finclude, initialize_input_buffer): Constify a char*. - (file_cleanup, find_position): Add static prototypes. - - * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol, - collect_expansion): Add static prototypes. - (cpp_install, create_definition, monthnames): Constify a char*. - - * cpphash.h (cpp_install): Likewise. - - * cppinit.c (known_suffixes, default_include, - dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise. - (base_name, dump_special_to_buffer, initialize_dependency_output): - Add static prototypes. - - * cpplib.c (my_strerror): Constify a char*. - (null_underflow, null_cleanup, skip_comment, copy_comment, - copy_rest_of_line, handle_directive, pass_thru_directive, - get_directive_token, read_line_number, cpp_print_file_and_line, - v_cpp_error, v_cpp_warning, v_cpp_error_with_line, - v_cpp_warning_with_line, detect_if_not_defined, - consider_directive_while_skipping): Add static prototypes. - (pass_thru_directive, check_macro_name, cpp_expand_to_buffer, - cpp_pedwarn_with_file_and_line): Constify a char*. - - * cpplib.h (cpp_options, include_hash, progname, definition, - cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer, - check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message, - find_include_file, deps_output, include_hash): Constify a char*. - - * cppmain.c (progname): Constify. - (main): Add prototype. Use return, not exit. - - * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac, - recognized_macro, check_macro_names, read_scan_file, write_rbrac, - inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident, - check_protection): Add static prototype. - (xfree): Remove. - (progname, recognized_macrom, recognized_extern): Constify a char*. - (main): Add prototype. - - * gen-protos.c (progname): Constify a char*. - -Tue Sep 7 00:47:52 1999 Mark Mitchell - - * emit-rtl.c (free_emit_status): Take decl as a parameter. - (init_emit_once): Add more GC roots. - * except.c (mark_func_eh_entry): New function. - (mark_eh_node): Mark false_label and rethrow_label. - (init_eh): Add more GC roots. - * function.c (free_after_compilation): Take decl as a paramter. - Call free_stmt_status. - (mark_function_state): Don't assume x_parm_reg_stack_loc is - non-NULL. - * function.h (free_after_compilation): Change prototype. - (free_varasm_status): Likewise. - (free_emit_status): Likewise. - (free_stmt_status): New function. - * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc): - Remove, replacing with ... - (ggc_status): New structure. - (ggc_chain): New variable. - (init_gcc): Define. - (ggc_push_context): New function. - (ggc_pop_context): Likewise. - (ggc_alloc_rtx): Adjust for use of ggc_chain. - (ggc_alloc_rtvec): Likewise. - (ggc_alloc_tree): Likewise. - (ggc_alloc_string): Likewise. - (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO. - (ggc_mark_tree): Give language-dependent code a chance to mark - `x' nodes. - (ggc_mark_tree_varray): Handle empty arrays. - (ggc_collect): Adjust for use of ggc_chain. Clear - bytes_alloced_since_last_gc. - * ggc.h (ggc_pop_context): New function. - (ggc_push_context): Likewise. - * print-tree.c (print_node): Don't print obstacks when GC'ing. - * stmt.c (free_stmt_status): New function. - (init_stmt_for_function): Clear last_expr_value. - * toplev.c (rest_of_compilation): Always call free_after_compilation. - Conditionalize call to ggc_collect. - (main): Call init_ggc. - * tree.c (push_obstacks): Do the push, even when GC'ing. - (push_obstacks_nochange): Likewise. - (pop_obstacks): Liekwise. - * varasm.c (free_varasm_status): Take decl as a parameter. - -Tue Sep 7 08:15:49 1999 Gavin Romig-Koch - - * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro. - (MULTILIB_ENDIAN_DEFAULT) : Use the new macro. - * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro. - * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro. - -Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com) - - * pa/x-pa-mpeix: New file for the MPE port. - - * pa/quadlib.asm: New file for long double support. - - * configure.in: Add hppa1.0-*-mpeix for MPE port. - * configure: Rebuilt. - -Tue Sep 7 10:08:40 1999 Andreas Schwab - - * final.c (shorten_branches): Fix last change. - -Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete. - -Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com) - - * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for - details. - -Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi - - * c-aux-info.c (concat): Don't define. - - * cccp.c (my_strerror): Likewise. All callers changed to use - xstrerror instead. - (do_include): Call xstrdup, not xmalloc/strcpy. - (grow_outbuf): Don't check if xrealloc returns NULL, it can't. - (xmalloc, xrealloc, xcalloc, xstrdup): Don't define. - - * collect2.c (my_strsignal): Likewise. All callers changed to use - strsignal instead. - (locatelib): Call xstrdup, not xmalloc/strcpy. - - * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc. - - * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy. - - * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc. - - * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy. - - * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero. - - * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/... - - * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not - malloc/realloc. - (find_all_handler_type_matches): Likewise. Don't check return - value. - (get_new_handler, init_insn_eh_region, process_nestinfo): Call - xmalloc, not malloc. - (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero. - - * gcc.c (xstrerror, xmalloc, xrealloc): Don't define. - (init_spec): Call xcalloc, not xmalloc/bzero. - (set_spec): Call xstrdup, not save_string. - (record_temp_file): Call xstrdup, not xmalloc/strcpy. - (find_a_file): Call xstrdup, not xmalloc/strcpy. - (process_command): Call xstrdup, not save_string. - (main): Call xcalloc, not xmalloc/bzero. - - * gcov.c (xmalloc): Don't define. - (create_program_flow_graph): Call xcalloc, not xmalloc/bzero. - (scan_for_source_files): Call xstrdup, not xmalloc/strcpy. - (output_data): Call xcalloc, not xmalloc/bzero. - - * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero. - - * mips-tdump.c (xmalloc): Don't define. - (print_symbol): Call xmalloc, not malloc. - (read_tfile): Call xcalloc, not calloc. - - * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc): - Don't define. All callers of xfree/my_strsignal changed to use - free/strsignal instead. - (allocate_cluster): Call xcalloc, not calloc. - - * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/... - Fix memory leak, free allocated memory. - - * prefix.c (translate_name): Call xstrdup, not save_string. - (update_path): Likewise. - - * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy. - - * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2): - Don't define. Callers of xfree/savestring2 changed to use - free/concat instead. - - * reload1.c (reload): Call xcalloc, not xmalloc/bzero. - (init_elim_table): Likewise. - - * resource.c (init_resource_info): Likewise. - - * stupid.c (stupid_life_analysis): Likewise. - - * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define. - (open_dump_file): Call concat, not xmalloc/strcpy/... - (clean_dump_file): Likewise. - (compile_file): Call xstrdup, not xmalloc/strcpy. - -Mon Sep 6 15:04:55 1999 Richard Henderson - - * v850.h (EXPAND_BUILTIN_VA_ARG): New. - * v850.c (v850_va_arg): New. - -Tue Sep 7 09:36:01 1999 Michael Hayes - - * haifa-sched.c: Tidy comments. - -Mon Sep 6 14:30:13 1999 Bernd Schmidt - - * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o. - (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o, - $(out_object_file)): Depend on ggc.h. - * c-common.c: Include "ggc.h". - (combine_strings): If doing GC, use ggc_alloc_string. - * c-decl.c: Include "ggc.h". - (ggc_p): Define with value 0. - (mark_binding_level): New function. - (init_decl_processing): Add GC roots. - (mark_c_function_context): New function. - (lang_mark_false_label_stack): New function. - (lang_mark_tree): New function. - (lang_cleanup_tree): New function. - * c-lang.c: Include "ggc.h". - (lang_init): Call c_parse_init. - * c-lex.c: Include "ggc.h". - (check_linenum): If doing GC, don't copy filenames to permanent - obstack. - * c-parse.in: Include "ggc.h". - (c_parse_init): New function. - * c-tree.h (c_parse_init, mark_c_function_context): Declare. - * objc/Make-lang.in (objc-parse.o): Depend on ggc.h. - - * except.c (mark_eh_state): Mark more state. - * function.c (mark_function_state): Likewise. - * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version. - (ggc_alloc_string) [GGC_DUMP]: Fix typo. - * toplev.c (mark_file_stack): New function. - (compile_file): If doing GC, use ggc_alloc_string on input filename. - (main): Add root for input_file_stack. - - * i386.c: Include "ggc.h". - (ix86_mark_machine_status): New function. - (override_options): Set mark_machine_status. - -Mon Sep 6 15:26:23 1999 Bernd Schmidt - - * tree.c (copy_node): Copy node contents also if doing GC. - -Mon Sep 6 08:42:06 1999 Alexandre Oliva - - * collect2.c (scan_libraries): Fix double-thinko :-). - -Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com) - - * collect2.c (scan_libraries): Fix thinko. - - * cse.c (delete_trivially_dead_insns): Do not skip the last - insn if it is a real insn. - -Sun Sep 5 18:57:42 1999 Mark Mitchell - - * Makefile.in (ggc-simple.o): Depend on hash.h. - * ggc.h (ggc_add_tree_hash_table_root): Declare. - (ggc_mark_tree_varray): Likewise. - (ggc_mark_tree_hash_table): Likewise. - * ggc-simple.c: Include hash.h. - (ggc_mark_tree_hash_table_ptr): New function. - (ggc_mark_tree_hash_table_entry): Likewise. - (ggc_mark_tree_hash_table): Likewise. - (ggc_add_tree_hash_table_root): Likewise. - * varray.h (const_equiv_data): Use struct rtx_def *, rather than - rtx, when defining fields. - -Sun Sep 5 18:57:42 1999 Bernd Schmidt - - * profile.c (output_func_start_profiler): Remove apparently - nonsensical call to start_sequence. - -Sun Sep 5 17:34:33 1999 Richard Henderson - - * clipper/clipper.c (clipper_va_start): Fix typos. - - * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs. - * spur/spur.c (spur_build_va_list, spur_va_start): New stubs. - (spur_va_arg): New stub. - - * configure.in: Comment out pyramid. - -Sun Sep 5 19:11:01 1999 Michael Meissner - - * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these - don't conflict with the bits that win32, cygwin, and dgux - defines. - -Sun Sep 5 09:31:56 1999 Richard Henderson - Bernd Schmidt - - * integrate.c (function_cannot_inline_p): Do not inline - functions with forced labels. - -Sun Sep 5 00:35:17 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (ggc-simple.o): Depend on varray.h. - (rtl.o): Depend on ggc.h. - (genattrtab.o): Depend on ggc.h. - (print-tree.o): Likewise. - (fold-const.o): Likewise. - * emit-rtl.c (sequence_element_free_list): Remove, and all references. - (make_insn_raw): Don't cache insns when GC'ing. - (emit_insn_before): Likewise. - (emit_insn_after): Likewise. - (emit_insn): Likewise. - (start_sequence): Use xmalloc to allocate the sequence_stack. - (end_sequence): Add free to free it. - (gen_sequence): Don't cache insns when GC'ing. - (clear_emit_caches): Don't use sequence_element_free_list. - (init_emit): Use xcalloc, not xmalloc+bzero. - * fold-const.c (size_int_wide): Kill the cache, when GC'ing. - * function.c (pop_function_context_from): Use free to free the - fixup_var_refs_queue. - (put_reg_into_stack): Allocate it with xmalloc. - * genattrtab.c: Include ggc.h. - (operate_exp): Don't use obstack_free when GC'ing. - (simplify_cond): Likewise. - (simplify_text_exp): Likewise. - (optimize_attrs): Likewise. - * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when - GC'ing. - (gencode): Generate a #include for ggc.h. - * ggc-callbacks.c (ggc_p): Define it to zero. - * ggc-none.c (ggc_p): Likewise. - * ggc-simple.c: Include varray.h. - (ggc_mark_tree_varray): New function. - (ggc_add_tree_varray_root): Likewise. - (ggc_mark_tree_varray_ptr): Likewise. - * ggc.h (ggc_p): Declare. - (varray_head_tag): Likewise. - (ggc_add_tree_varray_root): Declare. - * print-tree.c (print_node): Don't check for TREE_PERMANENT - inconsistencies when GC'ing. - * rtl.c: Include ggc.h. - (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing. - (rtx_alloc): Use ggc_alloc_rtx when GC'ing. - (rtx_free): Don't call obstack_free when GC'ing. - * toplev.c (rest_of_compilation): Call ggc_collect after every - pass, if GC'ing. - * tree.c (push_obstacks): Do nothing, if GC'ing. - (pop_obstacks_nochange): Likewise. - (pop_obstacks): Likewise. - (make_node): Use ggc_alloc_tree when GC'ing. - (copy_node): Likewise. - (get_identifier): Use ggc_alloc_string when GC'ing. - (build_string): Likewise. - (make_tree_vec): Use ggc_alloc_tree when GC'ing. - (tree_cons): Likewise. - (build1): Likewise. - (type_hash_canon): Don't call obstack_free when GC'ing. - -Sat Sep 4 21:52:32 1999 Richard Henderson - - * haifa-sched.c (schedule_block): Use next_nonnote_insn instead - of NEXT_INSN when examining speculative insns for SCHED_GROUP_P. - -Sat Sep 4 20:40:19 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (stor-layout.o): Depend on ggc.h. - (expr.o): Depend on ggc.h. - (profile.o): Depend on ggc.h. - (stor-layout.o): Depend on ggc.h. - * emit-rtl.c (init_emit_once): Add gc roots. - * expr.c: Include ggc.h. - (emit_block_move): Add gc roots. - (clear_storage): Likewise. - * expr.h (init_stor_layout_once): New function. - * profile.c: Include ggc.h. - (init_arc_profiler): profiler_label is a root. - * scan.c (make_sstring_space): Trust xrealloc to function - correctly with first parameter NULL. - * stor-layout.c: Include ggc.h. - (set_sizetype): Add gc root. - (init_stor_layout_once): New function. - * toplev.c (compile_file): Call it. - -Sat Sep 4 19:26:25 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (tree.o): Depend on ggc.h. - (varasm.o): Likewise. - (function.o): Likewise. - (stmt.o): Likewise. - (except.o): Likewise. - (optabs.o): Likewise. - (emit-rtl.o): Likewise. - * emit-rtl.c: Include ggc.h. - (sequence_element_free_list): Remove, and all references. - (mark_sequence): New functions. - (mark_emit_state): New function. - * except.c: Include ggc.h. - (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions. - (mark_tree_label_node): New functions. - (mark_eh_state): New function. - * function.c: Include ggc.h. - (mark_temp_slot, mark_function_chain): New functions. - (mark_function_state): New function. - (init_function_once): New function. - * function.h (init_function_once): New function. - * ggc-callbacks.c (lang_mark_false_label_stack): New function. - * ggc.h (label_node): Declare. - (eh_status, emit_status, stmt_status, varasm_status): Likewise. - (lang_mark_false_label_stack): New function. - (mark_temp_slot): Remove declaration. - (mark_function_chain): Likewise. - (mark_eh_state): Adjust prototype. - (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab): - Likewise. - * optabs.c: Include ggc.h. - (mark_optab): New function. - (init_optabs): Add gc roots. - * stmt.c: Include ggc.h. - (mark_cond_nesting, mark_loop_nesting): New functions. - (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise. - (mark_stmt_state): New function. - * toplev.c (compile_file): Call init_function_once. - * tree.c: Include ggc.h. - (type_hash): Move declaration earlier in file. - (TYPE_HASH_SIZE, type_hash_table): Likewise. - (init_obstacks): Add gc roots. - (mark_type_hash): New function. - * varasm.c: Include ggc.h. - (mark_pool_constant): New function. - (mark_varasm_state): New function. - -Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi - - * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO. - -Sat Sep 4 18:01:45 1999 Bernd Schmidt - - * c-decl.c (struct language_function): Renamed from struct c_function. - Delete elt NEXT. - (c_function_chain): Delete. - (push_c_function_context): New arg F. Don't warn about nested - functions here. Fill LANGUAGE elt of F. Delete code to update - c_function_chain. Don't call push_function_context. - (pop_c_function_context): New arg F. Restore from there instead of - from c_function_chain. Don't call pop_function_context. Clear out - LANGUAGE field of F when done. - * c-lang.c: Include "function.h" - (lang_init): Initialize save_lang_status and restore_lang_status. - * c-parse.in (nested_function, nested_function_notype): Warn about - nested functions. Call push_function_context/pop_function_context - instead of the _c_ variants. - * c-tree.h (push_c_function_context, pop_c_function_context): Update - prototype. - * Makefile.in (c-lang.o): Update dependencies. - - * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx, - regno_pointer_flag, regno_pointer_align. - (gen_reg_rtx): Use xrealloc to enlarge them. - (free_emit_status): New function. - * function.c (mark_machine_status, mark_lang_status): New variables. - (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge - in some bits from assign_stack_local. All callers changed to use new - name. - (assign_stack_local): Just call assign_stack_local_1. - (free_after_compilation): New function. - (put_reg_into_stack): Simplify to always call assign_stack_local_1. - (trampoline_address): Likewise. - (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc. - (prepare_function_start): Explicitly clear some more variables. - * function.h (struct function): New elt can_garbage_collect. - (mark_machine_status, mark_lang_status): Declare variables. - (free_after_compilation, free_emit_status, free_varasm_status, - init_varasm_status): Declare functions. - * toplev.c (rest_of_compilation): Call free_after_compilation when - done with the current function. - * varasm.c (free_varasm_status): New function. - -Sat Sep 4 17:15:13 1999 Richard Henderson - - * sparc.h (EXPAND_BUILTIN_VA_START): Define. - (EXPAND_BUILTIN_VA_ARG): Define. - * sparc.c (sparc_va_start): New. - (sparc_va_arg): New. - -Sun Sep 5 11:11:59 1999 Michael Hayes - - * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs. - -Sun Sep 5 10:13:19 1999 Michael Hayes - - * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable. - -Sat Sep 4 13:44:01 1999 Mark Mitchell - - * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o. - (OBJS): Add $(GGC). - (ggc-callbacks.o): New target. - * ggc-callbacks.c: New file. - -Sat Sep 4 22:53:13 1999 Bernd Schmidt - - * expr.h: Collapse individual optab and libfunc vars to arrays. - (optab_index, libfunc_index): New enumerations. - (optab_table, libfunc_table): New arrays. - Add accessor macros for both. - - * optabs.c (optab_table, libfunc_table): New. - Delete declarations for individual optab and libfunc vars. - -Sat Sep 4 12:57:17 1999 Richard Henderson - - * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args. - -Sat Sep 4 11:19:52 1999 Richard Henderson - - * Makefile.in (GGC, GGC_LIB): New. - (HOST_RTL): Include ggc-none.o. - (ggc-simple.o): New target. - (ggc-none.o): Likewise. - * tree.h (tree_common): Add gc_mark. - * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark. - (struct rtvec_def): Add gc_mark. - * emit-rtl.c (global_rtl): Update static initializers to contain - enough initializers. - * ggc.h, ggc-none.c, ggc-simple.c: New files. - * toplev.c (gc_time): New variable. - (all_time): New variable. - (compile_file): Print gc time. - (print_time): Calculate percentage of the whole. - -Sat Sep 4 13:11:01 1999 Bernd Schmidt - - Change obstack memory management and varasm constant pool handling so - that nested functions are treated like any other functions. - * function.c (init_machine_status): New variable. - (push_function_context_to): Set contains_functions for the outer - function. Don't call save_varasm_status. - (pop_function_context_from): Don't call restore_varasm_status. Don't - set current_function_contains_functions. - (prepare_function_start): Call init_varasm_status rather than - init_const_rtx_hash_table. Call (*init_machine_status) if the pointer - is non-null. - * function.h (struct function) Add field varasm. Delete fields - inline_obstacks, inl_emit, const_rtx_hash_table, first_pool, - last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain. - (init_machine_status): Declare. - (save_varasm_status, restore_varasm_status): Delete declarations. - (save_tree_status, restore_tree_status): Delete last argument. - * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying - code. All callers changed. - (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline, - save_constants_in_decl_trees, restore_constants, save_constants, - save_for_inline_eh_labelmap, save_for_inline_copying): Delete - functions. - (inlining): New variable. - (reg_map, label_map, insn_map, orig_asm_operands_vector, - copy_asm_operands_vector, copy_asm_constraints_vector): Delete - variables. - (save_for_inline_nocopy): Don't save constants. - Don't set inl_emit field in current_function. - (expand_inline_function): Use emit field, not inl_emit, of the inlined - function. Set new variable inlining before - calling copy_rtx_and_substitute. - (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle - constant pool references if inlining is nonzero. - Delete ADDRESS and (most of the) CONST cases. - (output_inline_function): Save and restore current_function/ - current_function_decl. Delete restore_constants code. Don't call - init_const_rtx_hash_table. - * output.h (init_const_rtx_hash_table): Don't declare. - * rtl.h (struct function): Declare. - (get_pool_constant_for_function, get_pool_mode_for_function): Declare. - * toplev.c (rest_of_compilation): Don't treat nested functions or - functions containing them specially. Delete all code to deal with - save_for_inline_copying. - * tree.c (toplev_inline_obstacks, extra_inline_obstacks, - inline_obstacks): Delete variables. - (save_tree_status): Lose arg CONTEXT. All callers changed. - Simply allocate a new function_maybepermanent_obstack for the new - function, delete all the special cases. - Don't save inline_obstacks. - (restore_tree_status): Lose arg CONTEXT. All callers changed. - Delete special handling for function_maybepermanent_obstack; simply - free it if empty. - Don't restore inline_obstacks. - (permanent_allocation): Delete code that frees inline_obstacks. - (print_inline_obstack_statistics): Delete function. - (dump_tree_statistics): Don't call it. - * varasm.c (struct varasm_status): New. - (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool, - last_pool, pool_offset, const_double_chain): Delete global - variables, replace with accessor macros. - (immed_double_const): Don't walk const_double_chain outside a - function, but don't treat nested functions specially anymore. - (immed_real_const_1): Likewise. - (clear_const_double_mem): Don't treat nested functions specially. - (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status. - (save_varasm_status, restore_varasm_status): Delete functions. - (init_varasm_status): New function. - (force_const_mem): Don't treat nested functions specially. - (find_pool_constant): Accept new arg F, search for constants in - that function's pool rather than the current one. All callers - changed. - (get_pool_constant_for_function, get_pool_mode_for_function): New - functions. - - * i386.c (init_386_machine_status): New function, mostly from - clear_386_stack_locals. - (struct machine_functions): Rename element names to avoid name - clashes. - (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor - macros, replacing global variables. - (clear_386_stack_locals, save_386_machine_status, - restore_386_machine_status): Delete functions. - (override_options): Initialize init_machine_status. - * i386.h (INIT_EXPANDERS): Delete macro. - (save_386_machine_status, restore_386_machine_status, - clear_386_stack_locals): Delete declarations. - -Sat Sep 4 16:56:28 1999 Michael Hayes - - * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init. - (doloop_begin): Simplify pattern and use emit_jump_insn. - (doloop_end): Simplify pattern, switch operand order, - and use emit_jump_insn. - -Fri Sep 3 19:02:38 1999 Bernd Schmidt - - * function.h (struct function): Add new element LANGUAGE. - (save_lang_status): Declare new variable. - (restore_lang_status): Likewise. - * function.c (save_lang_status): Define. - (restore_lang_status): Likewise. - (push_function_context_to): Call language-specific save function. - (pop_function_context_from): Call language-specific restore function. - -Fri Sep 3 01:16:18 1999 Alasdair Baird - - * i386.md (movsf_1): Check REG_P before use of REGNO. - (movdf_1): Likewise. - (movxf_1): Likewise. - (extendsfdf2): Likewise. - (extendsfxf2): Likewise. - (extenddfxf2): Likewise. - -Sat Sep 4 11:37:15 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large - constants into memory. - (c4x_shiftable_constant): New function. - * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT. - (c4x_shiftable_constant): Declare. - * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant, - ashlqi3_noclobber): Add new patterns and associated splitters. - -Fri Sep 3 16:22:17 1999 Richard Henderson - - * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero. - * dwarf2out.c (dwarf2out_frame_init): Likewise. - * final.c (shorten_branches): Likewise. - * global.c (global_alloc): Likewise. - * haifa-sched.c (build_control_flow): Likewise. - * stmt.c (check_for_full_enumeration_handling): Likewise. - (estimate_case_costs): Likewise. - -Fri Sep 3 15:49:56 1999 Mark Mitchell - - * rtl.h (RTL_CHECKC2): Fix typo in last change. - -Fri Sep 3 15:13:34 1999 Richard Henderson - - * flow.c (propagate_block): Use XEXP not SET_DEST for a USE. - (recompute_reg_usage): Likewise. - * rtlanal.c (find_regno_fusage): Likewise. - - * rtl.c (rtl_check_failed_code1): New function. - (rtl_check_failed_code2): New. - * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args. - (RTL_CHECKC1, RTL_CHECKC2): New. - (XC*): New accessor macros. - (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them. - (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise. - (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise. - (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise. - (TRAP_*, RANGE_INFO_*): Likewise. - -Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi - - * Makefile.in (tlink.o): Don't depend on toplev.h. - - * collect2.c (c_file, o_file, export_file, import_file, ldout, - output_file, nm_file_name, ldd_file_name, strip_file_name, - c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file, - add_prefix, prefix_from_env, prefix_from_string, do_wait, - fork_execute, maybe_unlink, add_to_list, - extract_init_priority, write_list, dump_list, - dump_prefix_list, write_list_with_asm, write_c_file, - write_c_file_stat, write_c_file_glob, scan_prog_file, - scan_libraries, is_in_list, resolve_lib_name, use_import_list, - ignore_library, extract_string, notice, dump_file, target_machine, - collect_wait, collect_execute, libname, locatelib, aix_std_libs, - read_file, print_load_command): Constify a char*. - (fdopen, error, fatal, fatal_perror): Don't prototype. - (my_strerror): Remove. All callers use xstrerror instead. - (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions. - (main): Add prototype. Constify lots of char* ptrs. Change calls - to xcalloc/strcpy/strcat/... to one call to concat. - (main, scan_prog_file, scan_libraries): Use an intermediate - `const char **' to build an argv array. - (mapfile, libselect, libcompare, locatelib): Add prototypes. - - * collect2.h (collect_execute, collect_wait, dump_file, - file_exists): Constify a char*. - (ldout, c_file_name, temporary_obstack, permanent_obstack, - temporary_firstobj, vflag, debug): Add extern declarations. - (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes. - - * tlink.c: Don't include toplev.h. - (vflag, debug, ldout, c_file_name, temporary_obstack, - permanent_obstack, temporary_firstobj): Don't declare. - (tlink_execute, frob_extension, symbol_hash_lookup, - file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym, - recompile_files, read_repo_files, demangle_new_symbols, - scan_linker_output): Constify a char*. - (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc, - do_tlink): Mark parameters with ATTRIBUTE_UNUSED. - -Fri Sep 3 18:09:24 1999 Andrew Haley - - * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr - (relative) rather than jsr (absolute) subroutine call insns. - * config/m68k/m68k-coff.h: Ditto. - -Fri Sep 3 17:24:31 1999 Richard Earnshaw - - * arm.c (note_invalid_constants): No need to ignore ASMs, we can - now rework these too. - (arm_reorg): If an insn can't reach the end of the current pool, - ensure that we emit that pool before the insn. - -Fri Sep 3 09:14:32 1999 Marc Espie - - * tlink.c (scan_linker_output): Skip the initial underscore in - a mangled name if appropriate. - -Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi - - * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, - objc_tree_code_name, synth_id_with_class_suffix, warn_with_method, - error_with_ivar, gen_declarator, create_builtin_decl, - my_build_string, generate_descriptor_table, generate_ivars_list, - generate_dispatch_table, check_protocols, TAG_GETCLASS, - TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS, - dump_base_name, lang_decode_option, build_encode_expr, - start_class, finish_class, encode_pointer, really_start_method, - gen_declaration, dump_interface, handle_class_ref, handle_impent): - Constify. - (objc_demangle, objc_printable_name, generate_struct_by_value_array): - Add static prototypes. - (build_objc_string_decl, build_selector_reference_decl, - encode_bitfield, build_class_reference_decl): Remove unused - parameter, all callers changed. - (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED. - (objc_printable_name): Likewise. Change second parameter to type int. - (init_objc): Use memcpy, not bcopy, to avoid casts. - -Thu Sep 2 21:49:52 1999 Richard Henderson - - * reload1.c (eliminate_regs_in_insn): Avoid eliminating the - reg notes on a deleted insn. - * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE. - -Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_attr_length_default): Handle TYPE_FXCH. - -Thu Sep 2 22:00:08 1999 J"orn Rennecke - - * stmt.c (expand_asm_operands): Fix index into inout_mode when - reading it. - -Thu Sep 2 13:00:48 1999 Richard Henderson - - * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present. - * tm.texi (MD_ASM_CLOBBERS): Document it. - -Thu Sep 2 10:22:40 1999 Richard Henderson - - * dwarf2out.c (dwarf2out_line): Constify `lastfile'. - * except.c (expand_rethrow): Remove unused variable. - * expr.c (do_jump_by_parts_greater_rtx): Likewise. - * flow.c (replace_insns): Likewise. - (create_edge_list, verify_edge_list): Likewise. - * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0. - - * genemit.c (gen_expand): Only emit `operands[N]' decl if there - is special code to run. - (main): Don't define operands to emit_operand. - * genrecog.c (main): Don't emit an empty peephole2_insn function. - - * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF. - - * alpha/alpha.h (normal_memory_operand): Declare. - (reg_no_subreg_operand): Declare. - * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. - -Thu Sep 2 10:19:20 1999 Richard Henderson - - * c-parse.in (compstmt_primary_start): New, broken out of first - part of compstmt handling in primary. - (primary): Use it. Add an error clause. - (compstmt_nostart): Renamed from compstmt; remove all - initial invocations of compstmt_start. - (compstmt): New. - -Thu Sep 2 01:35:50 1999 Marc Espie - - * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if - needed. - -Thu Sep 2 00:43:59 1999 Finn Hakansson - - * combine.c (simplify_shift_const): Remove extra semicolon. - * dwarf2out.c (remove_AT): Likewise. - * expmed.c (expand_mult): Likewise. - * gcov.c (create_program_flow_graph): Likewise. - * reorg.c (mostly_true_jump): Likewise. - -Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold_range_test): Do not try to fold the range - test if the rhs or lhs has side effects. - - * combine.c (simplify_rtx): Recognize another case of a synthesized - sign extension. - - * varasm.c (mark_constant_pool): When marking indirect references, - only look at SYMBOL_REFs. - - * except.c (expand_fixup_region_end): Do not peek at - INSN_UID (node->entry->outer_context) for flag_new_exceptions. - -Thu Sep 2 13:52:53 1999 Geoffrey Keating - - * flags.h: New variables align_loops, align_loops_log, - align_jumps, align_jumps_log, align_labels, align_labels_log, - align_functions, align_functions_log. - * toplev.c: Define them. - (f_options): Handle -falign-* when they have no argument. - (main): Add logic to set variables for -falign-functions, - -falign-jumps, -falign-labels, -falign-loops. - Make it -fsched-verbose= and -finline-limit=. - (display_help): Change help to match options. - * final.c (LABEL_ALIGN): Default to align_labels_log. - (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1. - (LOOP_ALIGN): Default to align_loops_log. - (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1. - (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log. - (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1. - * varasm.c (assemble_start_function): Handle align_functions. - - * config/sparc/sparc.h: Don't declare sparc_align_*. - Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN. - (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into - sparc.c. - (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request, - it's a promise. - * config/sparc/sparc.c: Delete sparc_align_loops, - sparc_align_jumps, sparc_align_funcs and the corresponding string - variables. - (sparc_override_options): Default align_functions on ultrasparc. - Delete -malign-* handling. - - * config/mips/mips.c (override_options): On 64-bit targets, - try to align code to 64-bit boundaries. - (print_operand): New substitution, %~, - which aligns labels to align_labels_log. - * config/mips/mips.md (div_trap_normal): Use %~. - (div_trap_mips16): Likewise. - (abssi): Likewise. - (absdi2): Likewise. - (ffssi2): Likewise. - (ffsdi2): Likewise. - (ashldi3_internal): Likewise. - (ashrdi3_internal): Likewise. - (lshrdi3_internal): Likewise. - (casesi_internal): Likewise. - -Wed Sep 1 21:13:48 1999 Richard Henderson - - Merge new ia32 backend from the branch! - - * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes. - See ChangeLog.P2 on new_ia32_branch for details. - - * rtl.h (stack_regs_mentioned_p): Delete prototype. - * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl. - * i386/win32.h (SUBTARGET_PROLOGUE): Likewise. - * i386/gas.h (ASM_FILE_START): Define. - * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update - for name change of ix86_valid_decl_attribute_p. - (i386_pe_valid_type_attribute_p): Similarly. - -Wed Sep 1 18:21:23 1999 Richard Henderson - - * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE - to step through CC modes. - -Wed Sep 1 20:18:06 1999 J"orn Rennecke - - * regmove.c (fixup_match_1): Don't move INSN in front of P if - it would end up in the shadow of a live flags regsiter. - -Wed Sep 1 11:32:00 1999 Bernd Schmidt - - * reload1.c: Fix many indentation problems. - * reload.c: Likewise. - -Tue Aug 31 22:08:03 1999 Marc Espie - - * alias.c (non_local_reference_p): Constify fmt. - -Tue Aug 31 23:19:35 1999 Michael Meissner - - * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define. - -Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (delete_trivially_dead_insns): Do not delete stores to - the internal_arg_pointer. - -Tue Aug 31 13:35:42 1999 Richard Henderson - - Merge peephole2 from new_ia32_branch: - * Makefile.in (STAGESTUFF): Add *.peephole2. - (mostlyclean): Likewise. - (recog.o): Depend on resource.h. - - * final.c (peephole): Conditionalize decl on HAVE_peephole. - (final_scan_insn): Likewise for the invocation of peephole. - * genconfig.c (main): Look for peephole and peephole2 patterns. - Emit HAVE_peephole* accordingly. - * genpeep.c (main): Conditionalize entire output on HAVE_peephole. - * flags.h (flag_peephole2): Declare. - * toplev.c: New pass peephole2. New flag -fpeephole2. - - * genattrtab.c (main): Count DEFINE_PEEPHOLE2. - * gencodes.c (main): Likewise. - * genextract.c (main): Likewise. - * genoutput.c (main): Likewise. - * genemit.c (max_operand_1): Look for the max scratch operand. - (gen_rtx_scratch): New. - (gen_exp): Use it, and pass on new arg subroutine_type. - (gen_expand): Take max scratch into account. - (gen_split): Emit peephole2 functions. - (output_peephole2_scratch): New. - (main): Include hard-reg-set.h and resource.h. Handle peephole2. - * genrecog.c (routine_type): Add PEEPHOLE2. - (IS_SPLIT): New. - (make_insn_sequence): Match outer parallel for peep2. Discard - top level scratches and dups. - (add_to_sequence): New args insn_type and top. Update all callers. - Handle toplevel peep2 matching insns. - (write_subroutine): Handle peep2. - (write_tree_1): Likewise. - (write_tree): Likewise. - (main): Likewise. - (change_state): New arg afterward. Update all callers. - Handle matching separate insns. - * recog.c (recog_next_insn): New. - (peephole2_optimize): New. - * rtl.def (DEFINE_PEEPHOLE2): New. - * resource.c (find_free_register): New argument last_insn. Use it - to find a register available through the entire span. - * resource.h (find_free_register): Update prototype. - -Tue Aug 31 11:51:06 1999 Jim Kingdon - - * i386.c (output_strlen_unroll): Don't write xops[7] - label if it wasn't set. - -1999-08-31 12:44 -0700 Zack Weinberg - - * cpplib.c (struct directive): Const-ify name pointer and - function pointer prototype. - (validate_else, do_define, do_line, do_include, do_undef, - do_error, do_pragma, do_ident, do_if, do_xifdef, do_else, - do_elif, do_endif, do_sccs, do_assert, do_unassert, - do_warning): Const-ify second arg. - (directive_table): Mark const. Reorder entries by frequency - of usage, record statistics. - -1999-08-31 12:20 -0700 Zack Weinberg - - * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and - bounds- check RTL accesses if --enable-checking. - (RTVEC_ELT): Bounds check if --enable-checking. - (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, - XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate. - (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and - GET_NUM_ELEM. - (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, - X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes. - - (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS. - (NOTE_SOURCE_FILE): Use X0STR. - (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES, - MEM_ALIAS_SET): Use X0INT. - (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK, - JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN): - Use X0EXP. - * real.h (CONST_DOUBLE_CHAIN): Use X0EXP. - * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT. - (rtl_check_failed_bounds, rtl_check_failed_type1, - rtl_check_failed_type2, rtvec_check_failed_bounds): New - functions. - (fancy_abort): Fix comment. - - * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT. - (cse_insn): Decrement LABEL_NUSES for jump target before - deleting jump insn. - * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1. - * final.c (alter_subreg): Compute regno before changing x to - REG; set REGNO(x) after changing it. - * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION - notes containing CONST_INTs. - (delete_eh_regions): Use NOTE_EH_HANDLER. - * function.c (put_reg_into_stack): Make reg a MEM before - initializing it. - (fixup_var_refs_insns): Save REG_NOTES (insn) in case we - delete insn. - (gen_mem_addressof): Make reg a MEM before initializing it. - * integrate.c (copy_rtx_and_substitute): Copy '0' slots with - X0WINT. - * local-alloc.c (update_equiv_regs): Zap REG_NOTES before - deleting an insn, not after. - (block_alloc): Only look at PATTERN(insn) if we have to, and - only if it's format class 'i'. - * loop.c (check_dbra_loop): Check bl->biv->add_val is a - CONST_INT before using its INTVAL. - * print-rtl.c (print_rtx): Use X0STR. - * regmove.c (fixup_match_1): Don't look at PATTERN of - non-class-'i' insn chain elements. - * reload.c (loc_mentioned_in_p): Take address of - in->fld[1].rtx directly. - * reload1.c (reload): Change reg to a MEM before initializing - it. - * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which - have no names. - * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo. - -Fri Aug 20 13:43:41 1999 Andrew Haley - - * config/mips/mips.c (machine_dependent_reorg): Force a - barrier to output the local constant pool if a barrier hasn't - been found at a natural point in the instruction stream. - -Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi - - * c-parse.in (language_string): Constify. - - * dwarf2out.c (language_string): Remove declaration. - - * dwarfout.c (language_string): Likewise. - - * toplev.c (language_string, init_parse, finish_parse): Likewise. - - * tree.h (language_string, init_parse, finish_parse): Declare. - - * i386/sun386.h (language_string): Remove declaration. - - * mips.h (language_string): Likewise. - - * nextstep.h (language_string): Likewise. - - * nextstep21.h (language_string): Likewise. - - * rs6000.c (language_string): Likewise. - -Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi - - * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o. - (getpwd.o): Remove target. - - * getpwd.c: Delete file. Its in libiberty now. - - * dbxout.c (getpwd): Don't prototype. - * dwarf2out.c (getpwd): Likewise - * dwarfout.c (getpwd): Likewise - * final.c (getpwd): Likewise. - * protoize.c (getpwd): Likewise. - -Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi - - * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift. - -Mon Aug 30 16:07:49 1999 Richard Henderson - - * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not - mark_set_resources. - -Mon Aug 30 12:23:53 1999 Jim Wilson - - * fixinc/Makefile.in (subdir): New. - (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP). - (Makefile): New. - -Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (copy_rtx_if_shared): A MEM which references - virtual_stack_vars_rtx or virtual_incoming_args_rtx can not - be shared. - - * invoke.texi: Fix typo. - - * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers - changed. Handle autoincrement addressing modes. - - * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer - just like we would the virtual incoming args register when - integrating. - -Sun Aug 29 23:17:54 1999 David Edelsohn - - * rs6000.h (ASM_FILE_START): Specify complete filename, including - path, in .file directive. - -Sun Aug 29 05:06:43 1999 Russ Allbery - - * gcc.texi (External Bugs): Remove obsolete note about Perl on - SunOS. - -1999-08-29 08:38 -0700 Zack Weinberg - - * stdbool.h: Make the typedef name _Bool, with bool a #defined - alias. - -Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi - - * tree.c (tree_code_name): Constify a char*. - - * tree.h (tree_code_name, decl_printable_name): Likewise. - - * function.h (struct function): Likewise. - - * toplev.c (decl_name, decl_printable_name): Likewise. - - * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise. - - * objc/objc-act.c (decl_printable_name): Remove redundant prototype. - (init_objc): Remove function pointer cast. - -Sun Aug 29 05:01:17 1999 John David Anglin - - * pa.md (interspace_jump): New pattern. - (builtin_longjmp): New expander. - -1999-08-29 Bernd Schmidt - - * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2, - _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate, - sf_to_df, df_to_sf): Fix potential problem with alias analysis. - -Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com) - - * jump.c (delete_prior_computation): Also check calls - to constant functions. Don't bother checking for a - REG_UNUSED note before adding it. - (delete_computation): Handle multi-word hard registers - when synthesizing missing REG_DEAD notes for a register - which is both set and used by an insn. - -1999-08-29 Michael Hayes - - * loop.c (this_loop_info): New variable. - (loop_has_call, loop_has_volatile, loop_has_tablejump, - loop_continue, loops_enclosed): Replace with fields in this_loop_info. - All uses updated. - (prescan_loop, strength_reduce): New argument loop_info. All callers - updated. - (scan_loop): New variable loop_info, initialise to address of - this_loop_info. - (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP. - Delete variable loop_has_multiple_exit targets and replace with - field in this_loop_info. - (find_and_verify_loops): Rename this_loop to this_loop_num. - (strength_reduce): Delete loop_iteration_info. Replace variable - loop_info with function argument of same name. - (insert_bct): Rework test for loop being completely unrolled. - - * loop.h (struct loop_info): New fields num, loops_enclosed, - has_call, has_volatile, has_tablejump, has_multiple_exit_targets, - has_indirect_jump, and cont. Redefine use of unroll_number. - (loop_unroll_number): Delete. - - * unroll.c (unroll_loop): Store loop unroll count in unroll_number - field of loop_info. - (loop_iterations): Delete variable vtop and instead use - loop_info->vtop computed in prescan_loop. - -Sun Aug 29 03:27:23 1999 Scott Weikart - - * fix-header.c (main): Do not pass a null pointer to strcmp. - -Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net) - - * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate - filenames. - * configure: Rebuilt. - -Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): Do not delete assignments to - internal_arg_pointer. - * cse.c (delete_trivially_dead_insns): Always consider a set of - the internal_arg_pointer live. - -Sat Aug 28 16:24:31 1999 Richard Henderson - - * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain. - (update_life_info) [REG_WAS_0]: Search the original insns rather - than the new insns for the note. Fix typos finding note_dest. - If no dest found, discard the note rather than abort. - [REG_NOALIAS]: Handle as REG_NO_CONFLICT. - (replace_insns): Remove the old insn list after update_life_info - not before. - -Sat Aug 28 16:20:12 1999 Richard Henderson - - * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling - sched_analyze_insn. - (sched_analyze_1): Let add_dependence care for not adding dups. - (sched_analyze_2): Likewise. - (add_branch_dependences): Likewise. - -Sat Aug 28 15:58:16 1999 Mumit Khan - - * i386/winnt.c (export_list): New type. - (exports_head): Rename to - (export_head): this. - (i386_pe_record_exported_symbol): Add is_data flag. - (i386_pe_asm_file_end): Emit directive for exported variables. - * i386/cygwin.h (i386_pe_record_exported_symbol): Update - prototype. - * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - -Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. - - * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an - operand. - -Fri Aug 27 14:01:19 1999 Marc Espie - - * config/openbsd.h: Define SET_ASM_OP. - * tm.texi: cross-reference SET_ASM_OP in the index. - -1999-08-27 13:27 -0700 Zack Weinberg - - * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format - for a CONST_DOUBLE, at compile time. Initialize rtx_length - and class_narrowest_mode at compile time. Kill init_rtl. - Mark rtx_length, mode_class, mode_size, mode_unit_size, - mode_wider_mode, mode_mask_array, class_narrowest_mode, and - rtx_format as const. Kill all references to EXTRA_CC_MODES or - EXTRA_CC_NAMES. - * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for - format. - * rtl.h: Declare rtx_length and rtx_format as const. - * machmode.def: Define CC(). Use CC() to define CCmode. If - EXTRA_CC_MODES is defined, expand it here. - * machmode.h: Declare mode_class, mode_size, mode_unit_size, - mode_wider_mode, mode_mask_array, and class_narrowest_mode as - const. Kill all references to EXTRA_CC_MODES. - - * toplev.c: Don't prototype or call init_rtl. - * optabs.c: Don't call init_mov_optab. - * genemit.c: Don't generate init_mov_optab. Don't call - init_rtl. - * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT - here. - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, - genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, - genrecog.c: Don't call init_rtl. - - * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h, - rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in - definition of EXTRA_CC_MODES. - - * md.texi: Kill ref to EXTRA_CC_NAMES. - * tm.texi: Document new way to define EXTRA_CC_MODES. - - * genrecog.c: Do not look up the name of a define_split. - (Unrelated bugfix.) - -Fri Aug 27 17:03:42 1999 Nick Clifton - - * config/v850/v850.md: Fix typo introduced by previous delta. - -Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi - - * gcc.c (fatal): Make definition static to match prototype. - -Fri Aug 27 10:33:35 1999 Bernd Schmidt - - * combine.c (get_last_value): Don't look for earlier sets if the last - known set is somewhere in between the insns being combined. - -Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell - - * configure.in: Don't use shell ! to negate exit codes - * configure: Regenerate - -Fri Aug 27 09:36:17 1999 Andreas Schwab - - * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for - the fact that ALIGN is measured in bits, not bytes. - -1999-08-27 00:27 -0700 Zack Weinberg - - * errors.c: New file; defines functions error, warning, and - fatal, variables have_error and progname. - * errors.h: New file; prototypes and decls for stuff in errors.c. - - * Makefile: Add rules to build errors.o and - $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit, - genopinit, genrecog, genextract, genpeep, genattr, and - genoutput with errors.o. Add errors.h to deps of genconfig.o, - gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o, - genpeep.o, genattr.o, and genoutput.o. - - * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c, - genextract.c, genpeep.c, genattr.c: Include errors.h. Don't - define or prototype fatal. Set progname at beginning of main. - * genoutput.c: Likewise, and don't define or prototype error - either. - - * c-typeck.c (c_expand_start_case): Return immediately if exp - is an ERROR_MARK. - * fold-const.c (operand_equal_p): Return immediately if arg1 - or arg0 are ERROR_MARKs. - * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore - fields of type ERROR_MARK when calculating if the record can - go in a register. - -Fri Aug 27 01:03:48 1999 Jim Kingdon - with much help from Jeffrey A Law and Richard Henderson - - * i386.md: In the 6 insns which call output_fix_trunc, - earlyclobber operands[0]. - -Fri Aug 27 01:01:51 1999 Philip Blundell - - * jump.c (duplicate_loop_exit_test): Call reg_scan_update after - creating new registers. - -1999-08-26 23:09 -0700 Zack Weinberg - - * i386.h: Declare ix86_cpu_string, ix86_arch_string, - i386_reg_alloc_order, i386_regparm_string, - i386_align_loops_string, i386_align_jumps_string, - i386_align_funcs_string, i386_preferred_stack_boundary_string, - and i386_branch_cost_string as type "const char *". - * i386.c: Define all above strings as type "const char *". - -Thu Aug 26 20:36:30 1999 Jim Wilson - - * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE - when emitting alignment padding. Emit padding byte of 0 instead of 4. - -Thu Aug 26 18:11:20 1999 Mark Mitchell - - * tree.c (array_type_nelts): Don't create RTL_EXPRs from - SAVE_EXPRs unless the SAVE_EXPRs have already been expanded. - -Thu Aug 26 19:33:23 1999 Jim Wilson - - * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition. - (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support. - (dwarf2out_line, dwarf2out_finish): Likewise. - * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation. - -Thu Aug 26 16:10:56 1999 Gavin Romig-Koch - - * tree.c (lang_unsave_expr_now) : Correct return type. - * tree.h (lang_unsave_expr_now) : Same. - -Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros - instead of duplicating code. - -Thu Aug 26 18:32:32 1999 Bernd Schmidt - - * gcse.c (hash_scan_insn): Don't scan obvious no-ops. - -1999-08-26 09:42 -0700 Zack Weinberg - - * tree.h: fancy_abort always takes three args. - * resource.c: Move include of system.h before toplev.h. - -Thu Aug 26 09:46:16 1999 Nick Clifton - - * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well - as SYMBOL_REFs. - -1999-08-25 22:10 -0700 Zack Weinberg - - * system.h: Don't redefine abort or trim_filename. - * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0) - or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on - whether or not __FUNCTION__ is available. - * tree.h: Duplicate rtl.h's definition of abort, for files - that don't include rtl.h. Delete all code to perform type - checking with a compiler other than GCC. - * varray.h: Delete all code to perform type checking with a - compiler other than GCC. Make VARRAY_CHECK() always evaluate - its arguments exactly once, using a statement expression. - Adjust the VARRAY_ accessor macros to match. - * toplev.h (fatal_insn, fatal_insn_not_found): Kill. - (_fatal_insn, _fatal_insn_not_found): New fns, take info on - caller's location. Define fatal_insn and fatal_insn_not_found - as macros that use _fatal_insn and _fatal_insn_not_found. - (fancy_abort, trim_filename): Kill prototypes. - - * rtl.c (trim_filename): Move here from toplev.c. - (fancy_abort): New function. - (DIR_SEPARATOR): Provide default definition. - * tree.c (tree_check_failed, tree_class_check_failed): Go - through fancy_abort. - (tree_check, tree_class_check, cst_or_constructor_check, - expr_check): Delete. - * varray.c (varray_check_failed): New function. - * toplev.c (fatal_insn, fatal_insn_not_found): Replace with - _fatal_insn and _fatal_insn_not_found. Go through - fancy_abort. - (trim_filename, fancy_abort): Delete. - - * builtins.c (expand_builtin_args_info): Report ICE with abort. - * except.c (start_catch_handler): Report ICE with error/abort - combo. - * final.c (output_operand_lossage): Likewise. - * flow.c (verify_flow_info): Likewise. - - * gcc.c: Prototype fatal. - * gengenrtl.c: Undef abort after including rtl.h not system.h. - * genattr.c, genattrtab.c, genemit.c, genextract.c, - genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c: - Don't define fancy_abort. - -Wed Aug 25 17:56:59 1999 Richard Henderson - - * optabs.c (emit_cmp_and_jump_insns): Be more thorough in - canonization. - -Wed Aug 25 15:35:55 1999 Richard Henderson - - * m88k.h (VERSION_INFO2): Kill. - (VERSION_STRING): Kill. - (TM_RCS_ID): Kill. - (VERSION_INFO1): Tidy. - (TARGET_VERSION): Update. - * m88k/dgux.h (VERSION_INFO2): Kill. - (ASM_FIRST_LINE): Adjust for death of VERSION_STRING. - * m88k/luna.h (VERSION_INFO1): Tidy. - * m88k/sysv4.h (VERSION_INFO1): Likewise. - * m88k.c (out_rcs_id, tm_rcs_id): Kill. - (output_file_start): Adjust for death of VERSION_STRING. - -1999-08-25 13:51 -0700 Jim Meyering - - * cpplib.c (detect_if_not_defined): New function. - (do_if): Use it to detect potential once-only headers. - -Wed Aug 25 14:00:18 1999 Jason Merrill - - * c-common.c (combine_strings): Always set TREE_CONSTANT. - -Wed Aug 25 15:27:22 1999 Gavin Romig-Koch - - * combine.c (nonzero_bits) : Allow single-ly set registers to be - anywere in the function only if they are pseudos and set before - being used (not live at the start of the function). - (num_sign_bit_copies) : Same. - (get_last_value_validate) : Same. - (get_last_value) : Same. - -Wed Aug 25 11:13:29 1999 Richard Henderson - - * loop.c (express_from): Try harder to unify (* c N) and (* c M) - where N and M are constant and N is an integer multiple of M. - -Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod - - * sbitmap.h (sbitmap_intersection_of_succs): Add prototype. - (sbitmap_intersection_of_preds, sbitmap_union_of_succs, - sbitmap_union_of_preds): Add prototypes. - * sbitmap.c (sbitmap_intersection_of_succs): New function to compute - the intersection of successors with the new flow graph structures. - (sbitmap_intersection_of_preds): New function to compute the - intersection of predecessors with the new flow graph structures. - (sbitmap_union_of_succs): New function to compute the union of - successors with the new flow graph structures. - (sbitmap_union_of_preds): New function to compute the union of - predecessors with the new flow graph structures. - * gcse.c (compute_rdm, compute_available): Use new sbitmap routines. - (expr_reaches_here_p): Use edge and basic_block structures instead - of s_preds and s_succs. - (compute_cprop_avinout): Use new sbitmap routines. - (pre_expr_reaches_here_p): Use edge and basic_block structures instead - of s_preds and s_succs. - * flow.c (compute_flow_dominators): Compute dominators using - edges and basic blocks instead of s_preds and s_succs. - -Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod - - * lists.c (unused_insn_list, unused_expr_list): New file for - maintaining various types of lists. New statics for maintaining a - cache of available INSN_LIST and EXPR_LIST nodes. - (free_list): Static function for freeing a list of INSN/EXPR nodes. - (alloc_INSN_LIST): Function to get a free INSN_LIST node. - (alloc_EXPR_LIST): Function to get a free EXPR_LIST node. - (init_EXPR_INSN_LIST_cache): Initialize the cache lists. - (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes. - (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes. - (free_EXPR_LIST_node): Free an individual EXPR_LIST node. - (free_INSN_LIST_node): Free an individual INSN_LIST node. - * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c - (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c - (remove_dependence, free_pending_lists): Use new global routines. - (flush_pending_lists, sched_analyze_insn): Use new global routines. - (sched_analyze, compute_block_backward_dependences): Use new routines. - (sched_analyze_1, sched_analyze_2): Use new routines. - (schedule_insns): Use new global routines. - * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function - prototypes. - (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes. - (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function - prototypes. - * toplev.c (rest_of_compilation): Initialize node cache. - * Makefile.in (OBJS): Add lists.o to list of object files. - (lists.o): Add dependancies. - -Wed Aug 25 17:31:56 1999 Nick Clifton - - * config/v850/v850.md: Fix compile time warning messages. - * config/v850/v850.c: Fix compile time warning messages. - * config/v850/v850.h: Fix compile time warning messages. - -Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi - - * genattr.c (gen_attr): Add prototype arguments for get_attr_*(). - Remove unused prototype for `init_lengths'. - -Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi - - * calls.c (emit_call_1): Mark parameter `stack_size' with - ATTRIBUTE_UNUSED. - (expand_call): Initialize variable `insn'. - (emit_library_call): Likewise for variable `high_to_save'. - (emit_library_call_value): Likewise. - (store_one_arg): Likewise for variables `lower_bound' and - `upper_bound'. - - * combine.c (try_combine): Likewise for variables `i2_code_number' - and `other_code_number'. - (find_split_point): Likewise for variables `pos', `unsignedp' and - `inner'. - (simplify_if_then_else): Likewise for variables `op' and `c1'. - (simplify_and_const_int): Remove unused variable `width'. - (merge_outer_ops): Likewise. - - * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned - HOST_WIDE_INT' when comparing against one. - (simplify_relational_operation): Likewise. - (cse_insn): Initialize variables `src_eqv_volatile', - `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'. - - * final.c (init_final): Constify parameter `filename'. - (final_start_function): Mark parameter `optimize' with - ATTRIBUTE_UNUSED. - (profile_function): Likewise for parameters `first' and `optimize'. - (output_source_line): Likewise for parameter `file'. - - * integrate.c (subst_constants): Cast a value to `size_t' when - comparing against one. - (mark_stores): Initialize variable `mode'. Cast a value to - `size_t' when comparing against one. - - * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise. - - * loop.c (move_movables): Initialize variable `first'. - (strength_reduce): Likewise for variable `increment'. - (check_dbra_loop): Likewise for variable `comparison_val'. Cast a - value to `size_t' when comparing against one. - (load_mems): Initialize variable `end_label'. - - * output.h (init_final): Constify parameter. - - * reload.c (decompose): Initialize variable `base'. - - * reload1.c (reload): Likewise for variable `is_scalar'. - (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED. - (choose_reload_regs): Initialize variable `mode'. - (emit_reload_insns): Likewise for variable `store_insn'. - (reload_cse_noop_set_p): Mark parameter `insn' with - ATTRIBUTE_UNUSED. - (reload_combine): Initialize variable `set'. - - * unroll.c (unroll_loop): Likewise for variable `local_label'. - (copy_loop_body): Cast a value to `size_t' when comparing against - one. - - * varasm.c (assemble_variable): Initialize variable `size_tree'. - (const_hash): Add an `else abort()' in an if-else-if-else sequence. - (remove_from_pending_weak_list): Mark parameter `name' with - ATTRIBUTE_UNUSED. - -Wed Aug 25 11:18:39 1999 Bernd Schmidt - - * toplev.c (rest_of_compilation): Use decl_printable_name when opening - gcse dump file. - -Wed Aug 25 10:57:12 1999 Nick Clifton - - * config/arm/telf.h (ASM_WEAKEN_LABEL): Define. - (ASM_DECLARE_FUNCTION_NAME): Define. - (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT, - ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME, - ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if - not already defined. - -Wed Aug 25 01:36:11 1999 John David Anglin - - * calls.c (emit_call_1): Use call_pop/call_value_pop for all values - of n_popped when call/call_value are not defined. - -Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com) - - * tm.texi: GNU CC -> GCC conversion. - (CC1_SPEC): Indicate it is used for all language front ends. - -Tue Aug 24 23:43:03 1999 Mark Mitchell - - * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and - NOTE_INSN_EH_REGION_END correctly. - -Tue Aug 24 23:26:44 1999 Michael Tiemann - Jeff Law - - * loop.c (strength_reduce): Automatically unroll loops if the - unrolled loop size is smaller than the rolled loop size. - - * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab - and delete comment that code should be rewritten. - -Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_rgns): Mark a block found during the DFS search - as reachable. - - * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error. - -Tue Aug 24 22:41:06 1999 Mumit Khan - - * fixinc/mkfixinc.sh: Don't fix uwin headers. - * i386/uwin.h (MD_STARTFILE_PREFIX): Define. - (LINK_SPEC): Add -u _main when building executables. - (ASM_DECLARE_FUNCTION): Update from Cygwin. - (ASM_FILE_END): Use the default for ix86-pe. - * i386/xm-uwin.h (HAVE_BCOPY): Undefine. - -Tue Aug 24 20:49:47 1999 Art Haas - - * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN - and ASM_CLOSE_PAREN are empty strings. - -Wed Aug 25 12:46:22 1999 Fred Fish - Geoffrey Keating - - * Makefile.in (PREPROCESSOR_DEFINES): New macro. - (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES. - (unprotoize.o): Ditto. - (test-protoize-simple): Don't define STD_PROTO_DIR. - * protoize.c: Use PARAMS rather than PROTO. Minor whitespace - changes to make 'test-protoize-simple' pass. - (STD_PROTO_DIR): Remove define. - (STANDARD_EXEC_PREFIX): Supply default define. - (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX. - (target_machine): New variable, init to DEFAULT_TARGET_MACHINE. - (target_version): New variable, init to DEFAULT_TARGET_VERSION. - (GET_ENV_PATH_LIST): New macro. - (default_syscalls_dir): No longer initialized to STD_PROTO_DIR. - (do_processing): Initialize default_syscalls_dir using new - macros. Use it to initialize syscalls_absolute_filename. - -Tue Aug 24 16:58:15 1999 Richard Henderson - - * jump.c (jump_optimize_1): Do cmov opt on any single-set; force - B into a register before emit_conditional_move. - -Tue Aug 24 15:37:03 1999 Richard Henderson - - * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e)) - as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two - multiplicand out of (+ (* a b) (* c d)). - -Tue Aug 24 11:46:10 1999 Bob Manson - Richard Henderson - - * haifa-sched.c (split_hard_reg_notes): Move to flow.c - (new_insn_dead_notes): Likewise. - (update_n_sets): Likewise. - (update_flow_info): Move to flow.c, renamed to update_life_info; - extend to handle multiple source insns. - * flow.c: Include resource.h - (unlink_insn_chain): New. - (split_hard_reg_notes): New. - (maybe_add_dead_note): New. - (maybe_add_dead_note_use): New. - (find_insn_with_note): New. - (new_insn_dead_notes): New. - (update_n_sets): New. - (sets_reg_or_subreg_1, sets_reg_or_subreg): New. - (maybe_remove_dead_notes): New. - (update_life_info): New. - (prepend_reg_notes): New. - (replace_insns): New. - * output.h (update_life_info): Declare. - * recog.c (split_block_insns): Use update_life_info. - * resource.c (find_free_register): Use reg_alloc_order, don't use - fixed regs, make sure the mode is supported, don't use new regs. - (reg_dead_p): New. - * rtl.h (replace_insns): Declare. - -Tue Aug 24 13:48:39 1999 Nathan Sidwell - - * expr.c (expand_expr): Cope with COND_EXPRs with one - non-returning branch. - -Mon Aug 23 22:28:16 1999 Mark Mitchell - - * expr.c (store_expr): Always pass down the target, even when not - doing CSE. - -1999-08-24 Nick Clifton - - * configure.in: Define target_cpu_default for v850 targets. - * configure: Regenerate - - * config/v850/v850.h (TARGET_CPU_generic): Define. - (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant - addresses are 4 byte aligned. - - * config/v850/v850.c (print_operand): Cope with 'R' format DFmode - addresses. - -Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi - - * genattr.c (function_unit_desc): Constify a char*. Add prototype. - (main): Add prototypes. - - * genattrtab.c (substitute_address, write_const_num_delay_slots, - attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype. - (write_attr_get): Emit prototypes along with function definition. - (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED. - (write_complex_function): Emit static prototype along with - function definition. - - * genemit.c (gen_split): Emit prototypes along with function - definition. - - * genoutput.c (output_epilogue): Add prototype to `insn_outfun'. - Likewise for predicates and `insn_operand_predicate'. - (process_template): Emit static prototype along with function - definition. - - * genrecog.c (make_insn_sequence): Constify a char*. Add - prototypes for get_split_*(). - (write_subroutine): Emit prototypes along with function - definition. - -Tue Aug 24 12:35:20 1999 Bernd Schmidt - - * gcse.c (find_avail_set): Follow chains of register-register copies. - Use oprs_not_set_p to guarantee that the returned value can be - substituted. - (cprop_insn): Don't verify the return value of find_avail_set with - oprs_not_set_p. - - * gcse.c (cprop_jump): New function, broken out of cprop_insn. - (cprop_cc0_jump): New function. - (cprop_insn): Break out new function cprop_jump and use it. - Also use cprop_cc0_jump for machines with CC0. - (cprop): Don't crash if cprop_insn turned the insn into a NOTE. - - * tree.h (current_function_calls_setjmp, - current_function_calls_longjmp): Delete declarations. - * dsp16xx.c: Include "function.h". - * elxsi.c: Likewise. - * gmicro.c: Likewise. - * h8300.c: Likewise. - * i370.c: Likewise. - * m32r.c: Likewise. - * mn10200.c: Likewise. - * mn10300.c: Likewise. - * ns32k.c: Likewise. - * spur.c: Likewise. - * v850.c: Likewise. - - * rtl.h (rtx_equal_function_value_matters): Declare. - * toplev.c (rtx_equal_function_value_matters): Don't declare. - * cse.c: Likewise. - * function.c: Likewise. - * emit-rtl.c: Likewise. - -Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com) - - * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION - call. - -1999-08-24 Herman A.J. ten Brugge - - * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn - exactly. - -Mon Aug 23 23:35:52 1999 Matthias Klose - - * cpp.texi: Add a node documenting macro varargs (copied - from extend.texi). - -1999-08-23 22:23 -0700 Zack Weinberg - - * cppspec.c: Put a null pointer at the end of the new argv. - -Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in: Remove code to select/de-select the haifa - scheduler. Every scheduled port gets haifa now. - * configure: Rebuilt. - * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs. - * sched.c Deleted. - * Makefile.in: Corresponding changes. - -Mon Aug 23 16:04:13 1999 Bernd Schmidt - - * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer. - All callers changed. - (prepare_float_lib_cmp): Likewise. - Use FLOAT_LIB_COMPARE_RETURNS_BOOL. - * expr.h (emit_float_lib_cmp): Delete declaration. - * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document. - * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define. - * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons - specially. - (cmptf): Now conditional on TARGET_HARD_QUAD. - -Fri Aug 20 17:52:27 1999 Jim Wilson - - * resource.c (mark_target_live_regs): Use - PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. - -Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi - - * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify. - - * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise. - - * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'. - -Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi - - * rtl.h (rtx_format): Constify a char*. - - * rtl.c (rtx_format): Likewise. - (copy_rtx, copy_most_rtx, read_rtx): Likewise. - (init_rtl): Use accessor macro, not `rtx_format'. - - * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a - char*. - - * caller-save.c (mark_referenced_regs): Likewise. - - * combine.c (subst, make_compound_operation, known_cond, - gen_rtx_combine, update_table_tick, get_last_value_validate, - use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise. - - * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p, - refers_to_p, canon_reg, fold_rtx, cse_process_notes, - count_reg_usage): Likewise. - - * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags): - Likewise. - - * final.c (leaf_renumber_regs_insn): Likewise. - - * flow.c (mark_used_regs, find_use_as_address, dump_flow_info, - dump_edge_info, count_reg_references): Likewise. - - * function.c (fixup_var_refs_1, walk_fixup_memory_subreg, - fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1): - Likewise. - - * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p, - oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs, - add_label_notes): Likewise. - - * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask, - clear_struct_flag, count_sub_rtxs, count_alternatives, - compares_alternatives_p, contained_in_p, walk_attr_value, - write_expr_attr_cache): Likewise. - - * genconfig.c (walk_insn_part): Likewise. - - * genemit.c (max_operand_1, gen_exp): Likewise. - - * genextract.c (walk_rtx): Likewise. - - * genflags.c (num_operands): Likewise. - - * genoutput.c (scan_operands): Likewise. - - * genpeep.c (match_rtx): Likewise. - - * genrecog.c (add_to_sequence): Likewise. - - * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths): - Likewise. - - * integrate.c (save_constants, copy_for_inline, - copy_rtx_and_substitute, subst_constants, restore_constants): - Likewise. - - * jump.c (mark_jump_label, invert_exp, redirect_exp, - rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. - - * local-alloc.c (contains_replace_regs, memref_referenced_p): - Likewise. - - * loop.c (record_excess_regs, rtx_equal_for_loop_p, - add_label_notes, replace_call_address, count_nonfixed_reads, - invariant_p, find_single_use_in_loop, find_mem_givs, - find_life_end, maybe_eliminate_biv_1, update_reg_last_use): - Likewise. - - * print-rtl.c (reg_names, print_rtx): Likewise. - - * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. - - * reg-stack.c (stack_regs_mentioned_p, record_label_references, - record_reg_life_pat, swap_rtx_condition, goto_block_pat, - print_blocks): Likewise. - - * regclass.c (fix_register, record_address_regs, - reg_scan_mark_refs): Likewise. - - * regmove.c (stable_but_for_p): Likewise. - - * reload.c (loc_mentioned_in_p, operands_match_p, - find_reloads_toplevsubst_reg_equivs, find_reloads_address_1, - copy_replacements, refers_to_regno_for_reload_p, - refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p, - reload_when_needed_name, reg_class_names, debug_reload_to_stream): - Likewise. - - * reload1.c (eliminate_regs, scan_paradoxical_subregs, - delete_address_reloads_1, count_occurrences, - reload_cse_mem_conflict_p, reload_combine_note_use, - add_auto_inc_notes): Likewise. - - * resource.c (mark_referenced_resources, mark_set_resources): - Likewise. - - * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p, - reg_mentioned_p, regs_set_between_p, modified_between_p, - modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p, - rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p, - may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs, - jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise. - - * sched.c (sched_analyze_2, attach_deaths): Likewise. - - * stupid.c (stupid_mark_refs): Likewise. - - * unroll.c (remap_split_bivs): Likewise. - - * varasm.c (mark_constants): Likewise. - - * a29k/a29k.c (uses_local_reg_p): Likewise. - - * alpha/alpha.c (summarize_insn): Likewise. - - * arm/arm.c (symbol_mentioned_p, label_mentioned_p, - eliminate_lr2ip): Likewise. - - * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise. - - * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx, - reg_mentioned_in_mem): Likewise. - - * ns32k/ns32k.c (global_symbolic_reference_mentioned_p, - symbolic_reference_mentioned_p): Likewise. - - * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise. - - * sh/sh.c (regs_used, mark_use): Likewise. - - * vax/vax.c (vax_rtx_cost): Likewise. - -Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi - - * machmode.h (mode_name): Constify a char*. - - * rtl.c (mode_name): Likewise. - - * genopinit.c (gen_insn): Use accessor macro, not `mode_name'. - - * optabs.c (init_libfuncs): Constify a char*. - - * print-tree.c (mode_name): Remove redundant declaration. - (print_node): Use accessor macro, not `mode_name'. - - * reload1.c (dump_needs): Constify a char*. Use accessor macro, - not `mode_name'. - (new_spill_reg): Constify a char*. - - * tree.c (mode_name): Remove redundant declaration. - -Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi - - * rtl.c (rtx_name): Constify a char*. - - * rtl.h (rtx_name, fix_sched_param): Likewise. - - * gmicro/gmicro.c (rtx_name): Remove redundant declaration. - (mypr): Use accessor macro, not `rtx_name'. - - * genemit.c (print_code): Constify a char*. - - * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'. - - * genpeep.c (print_code): Constify a char*. - - * genrecog.c (print_code): Likewise. - - * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct, - end_bb): Add static prototype. - (draw_edge): Constify a char*. - (end_bb): Remove unused parameter. - - * haifa-sched.c (fix_sched_param, safe_concat, print_exp - print_block_visualization): Constify a char*. - -Fri Aug 20 15:02:10 1999 Mark Mitchell - - * c-common.c (c_get_alias_set): Update comment. - -1999-08-20 Andreas Jaeger - - * linux.h (LIB_SPEC): Added. - -Fri Aug 20 22:32:17 1999 Michael Hayes - - * config/c4x/c4x.h (STARTFILE_SPEC): Don't def. - -1999-08-19 18:43 -0700 Zack Weinberg - - * tree.c (expr_check): Fix typo in last change. - -1999-08-19 14:44 -0700 Zack Weinberg - - * rtl.def (NOTE): Change format to "iuu0n". - (ADDR_DIFF_VEC): Change format to "eEee0". - (ADDRESSOF): Change format to "eit". - - * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion. - (RTVEC_ELT): Change to match. - (XVECEXP): Use XVEC and RTVEC_ELT. - (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER, - ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT. - (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES, - CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST, - TRAP_CONDITION, TRAP_CODE): Use XEXP. - (INTVAL): Use XWINT. - (ADDRESSOF_DECL): Use XTREE. - (SET_ADDRESSOF_DECL): Delete. - (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL, - NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been - ifdefed out since 2.6 at least. - (gen_rtvec_vv): Delete prototype. - - * rtl.h (rtvec_alloc): rt->elem is now an array of rtx, - not rtunion. - (copy_most_rtx): Handle 't' format letter. - * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx. - (gen_rtvec_vv): Delete function. All callers changed to use - gen_rtvec_v instead. - * print-rtl.c (print_rtx): Move special casing of NOTEs to - the '0' format letter. - - * function.c (gen_mem_addressof): Don't use - SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF - instead. - * integrate.c (copy_rtx_and_substitute): Likewise. - Copy 't' slots with XTREE. - (subst_constants): Treat 't' slots like '[swi]' slots. - * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots. - * jump.c (rtx_equal_for_thread_p): Likewise. - * rtlanal.c (rtx_equal_p): Likewise. - * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes - only four arguments. - * gengenrtl.c (type_from_format): Provide correct types for - 'b' and 't' slots. - - - * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK): - If a recent gcc is in use (always in stage2 and beyond), use - statement expressions, so we don't make a function call unless - the check fails. Evaluate arguments exactly once. - (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1, - TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1): - Delete. - (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that - they evaluate their arguments exactly once, irrespective of - the compiler in use. - - * tree.c [ENABLE_CHECKING]: Define whichever set of functions - is used by the currently-enabled check macros. This is: - (tree_check_failed, tree_class_check_failed): For gcc. - (tree_check, tree_class_check, cst_or_constructor_check, - expr_check): For other compilers. - - * gencheck.c: Do not define any *_CHECK1 macros. - -Thu Aug 19 14:42:38 1999 Mike Stump - Mark Mitchell - - * c-common.c (c_get_alias_set): Fix support for poitners and - references. - -Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com) - - * alias.c: Include tree.h. - (nonlocal_reference_p, mark_constant_function): New functions. - * flow.c (life_analysis): Call mark_constant_function. - * rtl.h (mark_constant_function): Declare it. - -Thu Aug 19 15:02:01 1999 Nick Clifton - - * config/rs6000/rs6000.c (rs6000_override_options): Fix test for - unrecognisable switches. - -Wed Aug 18 23:31:57 1999 J"orn Rennecke - - * loop.c (recombine_givs): Set ix field after sorting. - (recombine_givs): Remove bogus index / giv lockstep looping. - -Wed Aug 18 18:20:40 1999 Bernd Schmidt - - * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition - on CODE. - (emit_store_flag_force): Use do_compare_rtx_and_jump. - (do_cmp_and_jump): Formatting fixes. - * expr.c (do_compare_and_jump): Renamed from compare; changed to call - do_compare_rtx_and_jump instead of compare_from_rtx. - (do_compare_rtx_and_jump): New function; mostly copied from - compare_from_rtx. - (do_jump_for_compare): Delete. - (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and - MIN_EXPR. - (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead - of compare/do_jump_for_compare pairs. - (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx. - (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of - compare_from_rtx/do_jump_for_compare pairs. - (do_jump_by_parts_equality): Likewise. - (do_jump_by_parts_equality_rtx): Likewise. - * expr.h (do_compare_rtx_and_jump): Declare. - * optabs.c (prepare_cmp_insn): New function, contains most of the code - that used to be in emit_cmp_insn. - (cmp_available_p): New function. - (prepare_operand): New function. - (emit_cmp_and_jump_insn_1): New function, contains some code that used - to be in emit_cmp_insn. - (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some - parameters to be pointers; don't emit final compare but modify some of - the values pointed to by the args so the caller can perform the - correct comparison. - (expand_binop): Call emit_store_flag_force with signed forms of - comparison code. - (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/ - emit_jump_insn pair. - (emit_cmp_and_jump_insn): Use prepare_cmp_insn and - emit_cmp_and_jump_insn_1. Call emit_queue. - (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL - arg. - * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a - jump sets cc0 before deleting it. - * integrate.c (expand_inline_function): Likewise. - * unroll.c (unroll_loop): Similar changes in several places. - (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0 - before deleting it. - -Wed Aug 18 06:37:44 1999 Bernd Schmidt - - * Makefile.in (insn-recog.o): Update dependencies. - * genrecog.c (main): Make generated file include "function.h". - -Sat Aug 14 00:54:57 1999 Geoffrey Keating - - * cse.c (cse_insn): Call never_reached_warning when a jump is - changed to be unconditional. - * flags.h: Declare warn_notreached. - * flow.c (delete_block): Call never_reached_warning when - a block is deleted. - * jump.c (delete_barrier_successors): Call never_reached_warning - when we delete everything after a BARRIER. - (never_reached_warning): New function. - * rtl.h: Declare never_reached_warning. - * toplev.c (warn_notreached): New variable. - (lang_independent_options): Set warn_notreached - when -Wunreachable-code. - (compile_file): We need line numbers for -Wunreachable-code. - -Tue Aug 17 22:06:11 1999 Jan Hubicka - - * haifa-sched.c (insn_unit): Fix typo on out of range test. - * sched.c (insn_unit): Likewise. - -Tue Aug 17 21:57:23 1999 Andreas Schwab - - * combine.c (distribute_notes): Handle REG_EH_RETHROW. - -Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod - - * flow.c (create_edge_list): Use xmalloc, not malloc. - -Tue Aug 17 01:40:54 1999 Loren Rittle - - * fixinc/inclhack.def (no_double_slash): Do not trash single-line - C-style comments. Do not lose the character before double slash. - -Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod - - * basic-block.h (struct edge_list): Stucture to maintain a vector - of edges. - (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, - INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list. - (create_edge_list, free_edge-List, print_edge_list, verify_edge_list): - New function prototypes. - * flow.c (create_edge_list): Function to create an edge list. - (free_edge_list): Discards memory used by an edge list. - (print_edge_list): Debug output showing an edge list. - (verify_edge_list): Internal consistency check for an edge list. - (find_edge_index): Function to find an edge index for a pred and succ. - -Mon Aug 16 11:56:36 1999 Mark Mitchell - - * tree.c (type_hash_add): Use permalloc to allocate nodes in the - hashtable. - -Mon Aug 16 17:04:15 1999 Jorn Rennecke - - * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define. - -Fri Aug 13 15:20:43 1999 Gerald Pfeifer - - * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -Fri Aug 13 10:21:28 1999 Nick Clifton - - * toplev.c (rest_of_compilation): Allow machine dependent - reorganisation pass to place information into the RTL dump - file if it so wishes. - -Sun Aug 15 12:41:21 1999 Jim Wilson - - * explow.c (hard_function_value): Use VOIDmode instead of - MAX_MACHINE_MODE. - * stmt.c (expand_return): Likewise. - * stor-layout.c (get_best_mode): Likewise. - - * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output - emit call instead of emit_insn call. - -Sat Aug 14 15:04:06 1999 Mumit Khan - - * configure.in: Handle --disable/enable-win32-registry. - * install.texi: Document --disable/enable-win32-registry. - * acconfig.h (ENABLE_WIN32_REGISTRY): New macro. - (WIN32_REGISTRY_KEY): New macro. - * prefix.c: Use to enable/disable win32-specific code. - (lookup_key): Use versioned key. - * configure: Regenerate. - * config.in: Likewise. - -Fri Aug 13 17:41:55 1999 Jason Merrill - - * cpplib.c (read_line_number): New fn, split out of... - (do_line): Here. - -Fri Aug 13 14:18:27 1999 Gavin Romig-Koch - - tree.c (lang_unsave_expr_now) : New. - (unsave_expr_now): Call lang_unsave_expr_now. - tree.h (lang_unsave_expr_now) : New. - -Fri Aug 13 00:49:46 1999 Jason Merrill - - * toplev.c (flag_new_exceptions): On by default. - -1999-08-13 Michael Meissner - - * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B. - -Fri Aug 13 01:29:57 1999 Alexandre Oliva - - * dwarfout.c (fundamental_type_code): Return FT_boolean for - INTEGER_TYPE with precision==1, it's __java_boolean. - -Thu Aug 12 23:51:04 1999 J"orn Rennecke - - * global.c (prune_preferences): Move some invariants out of the - inner loop. - -Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com) - - * configure.in (alpha*-dec-osf*): Add osf5. - -Sun Aug 1 22:24:03 1999 Philip Blundell - - * configure.in: Rework handling of ARM GNU/Linux slightly. - (arm*-*-linux-gnuoldld): New target. - * configure: Regenerate. - * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and - arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete. - * config/arm/linux-oldld.h: New file. - * config/arm/linux-elf26.h: Don't include linux-elf.h. - (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC): - Don't define. - * config/arm/linux-elf.h (ASM_SPEC): Define. - (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC, - SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions - for 26-bit APCS and old linker. - (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or - `arm_elf'. - (FP_DEFAULT): Define to FP_SOFT3 for all machines. - * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__'; - don't define `arm' or `arm_elf'. - * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS, - MULTILIB_DIRNAMES): Define. Fix typo in comment. - -Thu Aug 12 10:14:47 1999 Andreas Schwab - - * rtl.texi: Fix typo. - -Wed Aug 11 23:50:57 1999 Jason Merrill - - * invoke.texi (C++ Dialect Options): Add -fms-extensions. - -Wed Aug 11 12:59:37 1999 Mark Mitchell - - * extend.texi (C++ Signatures): Remove node. - * invoke.texi: Remove discussion of -fhandle-signatures, - signature, sigof, __signature__, and __sigof__. - -Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (JAVAGC): Removed. - -Wed Aug 11 02:13:26 1999 Mumit Khan - - * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define. - -1999-08-11 Mark Elbrecht - - * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define. - -1999-08-11 Richard Earnshaw (rearnsha@arm.com) - - * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of - a register that is already known to be a pointer. - -1999-08-11 Bruce Korb - - * fixinc/inclhack.tpl: Only install assert.h conditionally. - * fixinc/inclhack.sh: Regenerated. - * fixinc/fixincl.sh: Regenerated. - -Wed Aug 11 00:34:22 1999 Joe Buck - - * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi. - Fix documentation of -ansi flag to describe its C++ behavior. - Remove bogus reference to GCC 2.9. - -Tue Aug 10 17:19:02 1999 Jim Wilson - - * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on - note if it is non-NULL. - -Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod - - * except.h (eh_nesting_info): Add new structure defintion. - (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes. - (reachable_handlers, update_rethrow_references): Add function - prototypes. - * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes - a rethrow symbol instead of an integer exception region number. - * flow.c (Make_edges): Use new exception nesting routines to determine - which handlers are reachable from a CALL or asynchronous insn. - Dont add an edge for calls with a REG_EH_REGION of -1 to non-local - goto receivers. - (delete_eh_regions): Update rethrow labels, and don't delete - regions which are the target of a rethrow. - * except.c (struct func_eh_entry): Add rethrow_ref field, now we can - avoid overloading the SYMBOL_REF_USED flag. - (rethrow_symbol_map): Use new rethrow_ref field. - (rethrow_used): Use new rethrow_ref field. - (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead - of an integer. Fix formatting. - (output_exception_table_entry): Use new rethrow_ref field. - (can_throw): Check for EH_REGION_NOTE before deciding - whether a CALL can throw or not. - (scan_region): Call rethrow_used() instead of accessing data structure. - (update_rethrow_references): New function to make sure only regions - which are still targets of a rethrow are flagged as such. - (process_nestinfo): New static function to initialize a handler - list for a specific region. - (init_eh_nesting_info): New function to allocate and initialize - the list of all EH handlers reachable from all regions. - (reachable_handlers): New function to retrieve the list of handlers - reachable from a specific region and insn. - (free_eh_nesting_info): New function to dispose of a list of - reachable handlers. - -Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod - - * flow.c (split_edge): Set JUMP_LABEL field. - (commit_one_edge_insertion): Set head correctly for insert_before. - When inserting insns, update insn block numbers if allocated. - -Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi - - * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type, - retry_incomplete_types): Add static prototype. - (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING, - dwarf_tag_name, dwarf_attr_name, dwarf_form_name, - dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string, - dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line, - dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef): - Constify a char*. - - * dwarf2out.h (dwarf2out_define, dwarf2out_undef, - dwarf2out_start_source_file, dwarf2out_line): Likewise. - -Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi - - * output.h (assemble_name): Constify a char*. - - * varasm.c (UNIQUE_SECTION, assemble_start_function, - assemble_variable, assemble_name): Likewise. - - * dwarf2out.c (ASM_NAME_TO_STRING): Likewise. - - * arm/pe.c (arm_pe_unique_section): Likewise. - - * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise. - - * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise. - - * i386/interix.c (i386_pe_unique_section): Likewise. - - * i386/win32.h (STRIP_NAME_ENCODING): Likewise. - - * i386/winnt.c (i386_pe_unique_section): Likewise. - - * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. - - * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise. - - * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise. - - * pa/pa.c (output_call): Likewise. - - * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise. - - * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc): - Likewise. - - * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING): - Likewise. - - * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - - * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT, - STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise. - - * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise. - -Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi - - * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy. - -Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi - - * tree.h (lang_identify): Constify a char*. - (print_error_function): Add extern prototype. Constify a char*. - - * c-lang.c (lang_identify): Constify a char*. - - * objc/objc-act.c (lang_identify): Constify a char*. - -Mon Aug 9 16:21:53 1999 Bernd Schmidt - - * genpeep.c (main): Make generated file include "function.h". - * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case. - -Mon Aug 9 10:08:50 1999 Bernd Schmidt - - * Makefile.in: Update dependencies. - * alias.c: Include "function.h" - * c-decl.c: Likewise. - * caller-save.c: Likewise. - * calls.c: Likewise. - * combine.c: Likewise. - * cse.c: Likewise. - * explow.c: Likewise. - * final.c: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * profile.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * sched.c: Likewise. - * stupid.c: Likewise. - * config/1750a/1750a.c: Likewise. - * config/a29k/a29k.c: Likewise. - * config/arc/arc.c: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/thumb.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/clipper/clipper.c: Likewise. - * config/convex/convex.c: Likewise. - * config/fx80/fx80.c: Likewise. - * config/i860/i860.c: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m88k/m88k.c: Likewise. - * config/mips/mips.c: Likewise. - * config/pdp11/pdp11.c: Likewise. - * config/pyr/pyr.c: Likewise. - * config/romp/romp.c: Likewise. - * config/sh/sh.c: Likewise. - * config/tahoe/tahoe.c: Likewise. - * config/vax/vax.c: Likewise. - * config/we32k/we32k.c: Likewise. - * config/sparc/sparc.c: Include "function.h". - (mem_min_alignment): Test current_function rather than - regno_pointer_align. - * config/pa/pa.c: Likewise. - (compute_frame_size): Delete declaration of - current_function_outgoing_args_size. - * config/arc/arc.h (current_function_varargs): Delete declaration. - * config/elxsi/elxsi.h (current_function_calls_alloca): Delete - declaration. - * config/i370/i370.h (current_function_outgoing_args_size): Delete - declaration. - * config/i386/i386.h (FINALIZE_PIC): Delete declaration of - current_function_uses_pic_offset_table. - * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration - of current_function_returns_pointer. - * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m88k/m88k.c: Include "function.h" - (call_used_regs, current_function_pretend_args_size, - current_function_outgoing_args_size, frame_pointer_needed): Delete - declarations. - * config/m88k/m88k.h (current_function_pretend_args_size): Delete - declaration. - * config/mips/mips.h (current_function_calls_alloca): Delete - declaration. - * config/mn10200/mn10200.h (current_function_needs_context, - rtx_equal_function_value_matters): Delete declarations. - * config/ns32k/ns32k (current_function_uses_pic_offset_table, - flag_pic): Delete declarations. - * config/pa/pa.h (current_function_pretend_args_size, - current_function_decl): Delete declarations. - * config/pa/som.h (current_function_varargs): Delete declaration. - * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete - declaration. - * config/pyr/pyr.h (current_function_pretend_args_size, - current_function_args_size, current_function_calls_alloca): Delete - declarations. - * config/sh/sh.h (current_function_varargs): Delete declaration. - * config/sparc/sparc.h (current_function_outgoing_args_size, - current_function_calls_alloca, current_function_decl): Delete - declarations. - * config/spur/spur.h (current_function_pretend_args_size, - current_function_calls_alloca): Delete declarations. - * config/v850/v850.c (current_function_outgoing_args_size): Delete - declaration. - * config/vax/vms.h (current_function_name): Delete declaration. - * gcse.c: Include "function.h". - (current_function_name, current_function_calls_setjmp): Delete - declarations. - * haifa-sched.c: Include "function.h". - (forced_labels): Delete declaration. - * jump.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * genemit.c (main): Make generated file include function.h. - * genoutput.c (output_prologue): Likewise. - - * builtins.c (saveregs_value, apply_args_value): Delete variables. - * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn, - sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename, - regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align, - regno_reg_rtx, sequence_stack): Delete variables. Add accessor - macros for some of them. - (emit_filename, emit_lineno): Delete declarations. - (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access - regno_pointer_* variables through current_function. - (gen_inline_header_rtx): Delete function. - (save_emit_status): Delete function. - (set_new_last_label_num): New function. - (clear_emit_caches): New function. - (restore_emit_status): Just clear last_labelnum and call - clear_emit_caches. - (get_last_insn_anywhere): Variable sequence_stack is now accessed - through macro seq_stack. - (add_insn_after): Likewise. - (add_insn_before): Likewise. - (remove_insn): Likewise. - (pop_topmost_sequence): Likewise. - (in_sequence_p): Likewise. - (start_sequence_for_rtl_expr): Likewise. - (start_sequence): Likewise, and likewise for - sequence_rtl_expr/seq_rtl_expr. - (push_topmost_sequence): Likewise. - (end_sequence): Likewise. - (init_virtual_regs): Now takes a "struct emit_status *" argument. - All callers changed. Store into that pointer instead of globals. - (init_emit): Allocate emit elt of current_function. - Changes for sequence_rtl_expr/sequence_stack renaming. - Call clear_emit_caches instead of doing it in-line. - Access regno_pointer_* variables through current_function. - (init_emit_once) Don't clear sequence_stack. - - * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain): - Delete variables. - (arg_pointer_save_area): Delete declaration. - (finish_expr_for_function): Renamed from init_queue; no longer static. - (init_expr): Don't call init_queue. - (save_expr_status, restore_expr_status): Delete functions. - (expand_expr): Changes to reflect new layout of struct function. - Don't access current_function_check_memory_usage when current_function - is 0. - * expr.h (forced_labels, save_expr_regs, saveregs_value, - apply_args_value, current_function_calls_alloca, inhibit_defer_pop, - current_function_outgoing_args_size, current_function_arg_offset_rtx, - current_function_uses_const_pool, function_call_count, - current_function_uses_pic_offset_table, nonlocal_labels, - current_function_internal_arg_pointer, nonlocal_goto_stack_level, - current_function_check_memory_usage, nonlocal_goto_handler_slots, - pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete - declarations. - (finish_expr_for_function): Declare. - * flags.h (current_function_has_nonlocal_label, - current_function_has_nonlocal_goto, current_function_is_thunk, - current_function_has_computed_jump): Delete declarations. - * flow.c (forced_labels): Delete declaration. - * function.c (current_function_pops_args, - current_function_returns_struct, current_function_returns_pcc_struct, - current_function_needs_context, current_function_calls_setjmp, - current_function_calls_longjmp, current_function_has_nonlocal_label, - current_function_has_nonlocal_goto, current_function_is_thunk, - current_function_has_computed_jump, current_function_calls_alloca, - current_function_contains_functions, current_function_returns_pointer, - current_function_epilogue_delay_list, current_function_args_size, - current_function_pretend_args_size, current_function_arg_offset_rtx, - current_function_outgoing_args_size, current_function_varargs, - current_function_stdarg, current_function_args_info, cleanup_label, - current_function_name, current_function_uses_const_pool, - current_function_instrument_entry_exit, current_function_return_rtx, - current_function_uses_pic_offset_table, nonlocal_labels, - current_function_internal_arg_pointer, current_function_cannot_inline, - current_function_check_memory_usage, function_call_count, - nonlocal_goto_handler_slots, nonlocal_goto_handler_labels, - nonlocal_goto_stack_level, return_label, save_expr_regs, - stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots, - tail_recursion_reentry, arg_pointer_save_area, frame_offset, - context_display, trampoline_list, parm_birth_insn, invalid_stack_slot, - last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr, - temp_slot_level, var_temp_slot_level, target_temp_slot_level): - Delete variables. - (push_function_context_to): Don't save them. Don't call - save_storage_status, save_emit_status or save_expr_status. - (pop_function_context_from): Don't restore them. Don't call - restore_storage_status or restore_expr_status. - (get_func_frame_size): New function. - (get_frame_size): Use it. - (assign_outer_stack_local): Reflect some member name changes in struct - function. - (put_reg_into_stack): Likewise. - (assign_stack_temp_for_type): sequence_rtl_expr was renamed to - seq_rtl_expr. - (fixup_var_refs): Likewise. - (fix_lexical_addr): Likewise. - (trampoline_address): Likewise. - (prepare_function_start): Clear field inlinable of current_function. - (init_function_for_compilation): New function. - (expand_dummy_function_end): New function. - (expand_function_end): Call finish_expr_for_function. - * function.h (struct emit_status): New; fields moved here from struct - function and from global variables. Add accessor macros for some of - the fields. - (struct expr_status): Likewise. - (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h. - (struct function): Add fields expr and emit, inlinable, inl_emit, - original_arg_vector, original_decl_initial, inl_last_parm_insn, - inl_max_label_num. Add many comments. - Add accessor macros for all elts of struct function that no longer - have a global variable. - (cleanup_label, return_label, frame_offset, tail_recursion_label, - tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain, - stack_slot_list): Delete declarations. - (get_func_frame_size): Declare. - (save_expr_status, restore_expr_status, save_emit_status, - save_storage_status, restore_storage_status): Delete declarations. - (init_virtual_regs): Declare. - * output.h (current_function_pops_args, - current_function_returns_struct, current_function_returns_pcc_struct, - current_function_needs_context, current_function_calls_setjmp, - current_function_calls_longjmp, current_function_calls_alloca, - current_function_has_nonlocal_label, current_function_varargs, - current_function_has_computed_jump, current_function_returns_pointer, - current_function_contains_functions, current_function_args_size, - current_function_pretend_args_size, current_function_stdarg, - current_function_outgoing_args_size, current_function_args_info, - current_function_name, current_function_return_rtx, - current_function_epilogue_delay_list, - current_function_uses_const_pool, current_function_cannot_inline): - Delete declarations. - * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length, - regno_reg_rtx): Delete declaration. - (REGNO_POINTER_FLAG): Delete macro. - * stmt.c (expand_goto): Changes to reflect that some fields in struct - function were renamed. - * stor-layout.c (save_storage_status, restore_storage_status): Delete - functions. - * toplev.c: Include "function.h". - (current_function_decl): Delete declaration. - (compile_file): Call init_dummy_function_start and - expand_dummy_function_end around some initializations that need to - emit rtl. - (rest_of_compilation): Use DECL_SAVED_INSNS properly. - Call init_function_for_compilation. - * unroll.c: Include "function.h" - (unroll_loop): Access regno_pointer_* variables through - current_function. - - * tree.h (struct tree_decl): Add elt f to saved_insns member. - (DECL_SAVED_INSNS): use it. - (expand_dummy_function_end): Declare. - (init_function_for_compilation): Declare. - * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now - that it's no longer an INLINE_HEADER. - (expand_call): Likewise. - * integrate.c (finish_inline): Delete function. - (max_parm_reg, parm_reg_stack_loc): Delete declarations. - (initialize_for_inline): Delete min_labelno, max_labelno and max_reg - args. Don't generate an INLINE_HEADER rtx, just return the arg - vector. All callers changed. - (save_for_inline_copying): Create a duplicate struct emit_status to - hold the emit state for compiling the current function. Use this and - the other new fields in struct function that are for integration - instead of an INLINE_HEADER. - Use memcpy instead of bcopy. - Store the current struct function in DECL_SAVED_INSNS of fndecl. - (save_for_inline_nocopy): Similar changes, except no new emit_status - is needed here. - (expand_inline_function): Get information from function structure, - not from an inline header rtx. - (output_inline_function): Lose code to extract the necessary - information from an inline header; simply put back the function - structure into current_function. Clear its inlinable elt. - * rtl.def (INLINE_HEADER): Delete. - * rtl.h: Delete all accessors for an INLINE_HEADER. - (gen_inline_header_rtx): Delete declaration. - (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels): - Delete declarations. - (REGNO_POINTER_ALIGN): Delete. - (clear_emit_caches): Declare. - (set_new_last_label_num): Declare. - -Mon Aug 9 01:52:24 1999 Jason Merrill - - * print-tree.c (print_node): Print base for OFFSET_TYPEs. - - * except.c (expand_eh_region_start_for_decl): Always start a new block. - * stmt.c (is_eh_region): Make sure current_function is present, too. - -Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when - for 64bit PA targets. - - * pa.h (SELECT_SECTION): Define. - * som.h (SELECT_SECTION): Delete. - -Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi - - * alias.c (init_alias_analysis): Wrap call to - `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue. - -1999-08-07 Bruce Korb - - * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's - contains an asm comment with an apostrophe - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -Sat Aug 7 19:37:07 1999 Richard Henderson - - * function.c (init_function_start): Clear prologue & epilogue. - (prologue_epilogue_contains): New function. - * alias.c (init_alias_analysis): Use it. - * rtl.h (prologue_epilogue_contains): Declare it. - -Sat Aug 7 19:32:16 1999 Richard Henderson - - * jump.c (onlyjump_p): New function. - * rtl.h: Declare it. - * flow.c (delete_unreachable_blocks): Use onlyjump_p instead - of condjump_p in calling tidy_fallthru_edge and merge_blocks. - -Sat Aug 7 17:09:36 1999 Richard Henderson - - * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET - to invert loops. Simplify block scanning. - -Sat Aug 7 02:11:13 1999 Bernd Schmidt - - * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs. - (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. - -1999-08-07 Jonathan Larmour - - * config/sparc/liteelf.h: New file to support sparclite-elf target - * config/sparc/t-sp86x: New file to support sparc86x targets - * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target - * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target - * configure.in: Support above target triplets - * configure: Regenerated - -Sat Aug 7 01:39:27 1999 Philippe De Muyter - - * fixinc/server.c (server_setup): Do not prefix function used as - parameter with `&'. - -Sat Aug 7 00:21:20 1999 Richard Henderson - - * alpha.md (movhi and movqi patterns): Correct predicate for !BWX. - Remove fp reg alternatives. - -Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com) - - * Makefiin (TAROUTOPTS): Kill. - (install-headers-tar): Use "xpf" for tar headerfile extraction - * i370/x-oe (TAROUTOPTS): Delete. - * m68k/x-apollo68 (TAROUTOPTS): Delete. - * m68k/x-hp320 (TAROUTOPTS): Delete. - * m68k/x-hp320g (TAROUTOPTS): Delete. - * gcc.texi: Update bug reporting text. - -1999-08-6 Herman A.J. ten Brugge - - * reg-stack.c (change_stack) Fixed problem with negative array index. - -Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com) - - * extend.texi, install.texi: Fix spelling mistakes. - - * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete. - (s-attrtab); No longer try to use pre-made insn-attrtab file. - * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and - PREMADE_ATTRTAB_MD. - * mips/t-ecoff: Likewise. - * mips/t-elf: Likewise. - * mips/t-mips: Likewise. - * mips/t-osfrose: Likewise. - * mips/t-r3900: Likewise. - * mips/t-svr3: Likewise. - * mips/t-svr4: Likewise. - * mips/t-ultrix: Likewise. - - * gcc.texi: Document recommend means to provide software floating - point libraries in libgcc.a - -1999-08-06 Jason Merrill - - * c-lex.c (yylex): We can have a number with no digits. - -Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com) - - * jump.c (delete_prior_computation): New function, broken - out of delete_computation. Check for side effects with - side_effects_p instead of FIND_REG_INC_NOTE. Handle - multi-word hard registers. - (delete_computation): Use it. Check for side effects with - side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a - missing REG_DEAD note for a register which is both set and - used by an insn. - -Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com) - - * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise. - (ASM_FILE_START): Import _mcount with the right type. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - * pa.c (output_function_prologue): Always emit the function's label - here. - * pa.h (TEXT_SPACE_P): Define. - (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. - (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise. - * som.h (TEXT_SPACE_P): Delete. - (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise. - -Thu Aug 5 19:29:39 1999 Jim Wilson - - * expr.c (emit_group_load): Allow src to be a CONCAT. - -Thu Aug 5 22:27:15 1999 J"orn Rennecke - - * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop. - (___mulsi3): Use '!' comment character. - -Thu Aug 5 13:34:14 1999 Bernd Schmidt - - * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *". - -Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) - - * gcc.c: Update URLs and mail addresses. - * gcc.texi: Likewise. - -Thu Aug 5 01:14:13 1999 Daniel Jacobowitz - - * rs6000.c (current_file_function_operand): Return zero for - weak functions. - (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for - weak symbols. - * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG - for weak symbols. - -Thu Aug 5 00:56:30 1999 Geoffrey Keating - - * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always - allocate space in the stack frame for the PIC register. - -Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.md (xordi3, anddi3): These patterns are not available on - the coldfire. - -Wed Aug 4 23:39:20 1999 Mark Mitchell - - * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules. - (PUT_REAL): Likewise. - -Wed Aug 4 20:45:04 1999 J"orn Rennecke - - * final.c (shorten_branches): Don't add an alignment for loops - that have no label inside. - -Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap - prototypes in macro HAVE_cmpstrsi. - - * cpplib.c (cpp_get_token): Remove unused label `op3'. - - * emit-rtl.c (operand_subword): Remove unused variable - `bits_per_word'. - - * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'. - - * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING. - -Wed Aug 4 13:29:23 1999 Zack Weinberg - - * cpphash.c (macroexpand): Delete leading whitespace when arg - is concatenated before. - (unsafe_chars): Correct test for whether + and - can extend a - token. - - * cppinit.c (cpp_start_read): Do dependencies for - -include/-imacros files also. - - * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother - tokenizing non-directive lines. - (cpp_expand_to_buffer): Temporarily disable no-output mode. - * cppmain.c: In no-output mode, just call cpp_scan_buffer for - the input file. - -Wed Aug 4 12:53:44 1999 Jason Merrill - - * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too. - - * c-lex.c: Sync with C++ frontend. - (linemode): New variable. - (parse_float): imag, conversion_errno, and type are output only. - (yylex): Adjust. Move initial '.' case into main switch. - Use linemode. - (handle_generic_pragma): Just deal with tokens. - (readescape): Use ISXDIGIT and ISGRAPH. - * c-parse.in: Add END_OF_LINE token. - - * c-lex.c (lang_init): Generalize. - (nextchar): Remove. Replace uses with UNGETC. - (skip_white_space): Handle linemode here. Optimize for cpplib. - (skip_white_space_on_line): Remove. - (extend_token_buffer_to): New fn. - (extend_token_buffer): Use it. - (read_line_number, check_newline): Just deal with tokens. - (token_getch, token_put_back): New fns. - (yylex): Use them. More cpplib optimizations. Simplify. - -Wed Aug 4 12:53:44 1999 Michael Tiemann - Jason Merrill - - * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE. - (consume_string): Make this smart about USE_CPPLIB. - (check_newline): Rewrite to be intelligent about USE_CPPLIB. - (yylex): Rewrite to be intelligent about USE_CPPLIB. - Also, clean up cases where we redundantly set token_buffer[0]. - (read_line_number): New fn. - (ignore_escape_flag): New variable. - -Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com) - - * a29k/t-a29kbare: Fix some comments. - (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c - (FPBIT, DPBIT): Define. - * a29k/t-vx29k: Likewise. - * arc/t-arc: Likewise. - * arm/t-arm-elf: Likewise. - * arm/t-bare: Likewise. - * arm/t-pe: Likewise. - * arm/t-pe-thumb: Likewise. - * arm/t-semi: Likewise. - * arm/t-thumb: Likewise. - * arm/t-thumb-elf: Likewise. - * arm/t-thumb-linux: Likewise. - * h8300/t-h8300: Likewise. - * i960/t-i960: Likewise. - * i960/t-vxworks960: Likewise. - * m32r/t-m32r: Likewise. - * mips/t-ecoff: Likewise. - * mips/t-elf: Likewise. - * mips/t-r3900: Likewise. - * pa/t-pro: Likewise. - * rs6000/t-aix43: Likewise. - * rs6000/t-beos: Likewise. - * rs6000/t-newas: Likewise. - * rs6000/t-ppccomm: Likewise. - * rs6000/t-rs6000: Likewise. - * rs6000/t-winnt: Likewise. - * rs6000/t-xnewas: Likewise. - * rs6000/t-xrs6000: Likewise. - * sh/t-sh: Likewise. - * sparc/t-elf: Likewise. - * sparc/t-sparcbare: Likewise. - * sparc/t-sparclite: Likewise. - * sparc/t-splet: Likewise. - * v850/t-v850: Likewise. - * mn10200/t-mn10200: Fix comments. - * mn10300/t-mn10300: Likewise. - - * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new - dummy operand. Allocate a new pseudo for the dummy operand. - (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes. - - * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass. - -Wed Aug 4 11:53:55 1999 Tom Tromey - - * configure: Rebuilt. - * configure.in: Removed --enable-java-gc option and JAVAGC subst. - -Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com) - - * recog.c (preproces_constraints): Zero recog_op_alt before - processing the constraints. - - * arm.c (typedef minipool_node): Renamed from pool_node. - (minipool_vector, minipool_size, minipool_vector_label): Similarly. - (add_minipool_constant): New function. - (dump_minipool): New function. - (find_barrier): Remove special case for getting the insn size of - an insn that references the constant pool. - (minipool_fixup): New structure. - (push_minipool_barrier): New function. - (push_minipool_fix): New function. - (note_invalid_constants): New function. - (add_pool_constant, dump_table, fixit, broken_move): Delete. - (arm_reorg): Rewrite code to fix up the constant pool into a - series of mini-pools embedded in the insn stream. - (arm_output_epilogue): New function, made mainly from the body - of output_func_epilogue. - (output_func_epilogue): Move insn generation part of epilogue code - to arm_output_epilogue. - * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete. - * arm.md (pool_range): New attribute. - (zero_extendqidi2): Add attribute pool_range. - (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn, - extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr, - pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend, - movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn, - movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise. - (epilogue): New expand. - (epilogue_insn): New insn. Call arm_output_epilogue. - - * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up. - * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT. - -Mon Aug 2 19:18:44 1999 Jason Merrill - - * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -1999-08-04 Mark Elbrecht - - * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define. - -Wed Aug 4 02:15:32 1999 Richard Henderson - - * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump. - -Wed Aug 4 01:48:08 1999 Jim Kingdon - - * global.c: Fix comment. - -Wed Aug 4 01:43:01 1999 Ian Lance Taylor - - * gcc.c (access_check): New static function. - (find_a_file): Use it when searching a directory list. - * collect2.c (find_a_file): Don't accept directories found when - searching a directory list. - -Wed Aug 4 01:40:43 1999 Philippe De Muyter - - * tlink.c (symbol_hash_lookup): Do not prefix functions used as - function parameters with `&'. - (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto. - -Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_unreachable_blocks): Do not call merge_blocks - or tidy_fallthru_edge if the last insn in the block is not - an unconditional jump or a simple conditional jump. - -Tue Aug 3 20:21:20 1999 J"orn Rennecke - - * Makefile.in (c-decl.o): Depends on defaults.h. - -Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for - PA1.1 and above. - (CLASS_MAX_NREGS): Likewise. - -Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Fix dumb thinko in last change. - -Tue Aug 3 10:36:13 1999 Bernd Schmidt - - * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as - "const char *". - -Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson - - * dwarf2out.c (add_location_or_const_value_attribute): Correct - test for sizes of passed and declared parameter types. - -Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi - - * fixincludes: Fix the return type of bsearch, char* -> void*. - - * fixinc/inclhack.def: Likewise. - -Mon Aug 2 18:29:32 1999 Mark Mitchell - - * invoke.texi (-fdump-translation-unit): New option. - -Mon Aug 2 17:54:19 1999 Richard Henderson - - * expr.h (PROMOTE_PROTOTYPES): Move ... - * defaults.h: ... to here. - * c-decl.c: Include defaults.h instead of expr.h. - * c-typeck.c: Include defaults.h. - -Mon Aug 2 17:10:24 1999 Mark Mitchell - - * toplev.h (errorcount): Declare. - (warningcount): Likewise. - (sorrycount): Likewise. - * c-lex.c (errorcount): Don't declare. - * dwarf2out.c (errorcount): Don't declare. - -Mon Aug 2 17:02:08 1999 Jason Merrill - - * config/libgloss.h: Add a note discouraging use with ELF. - * configure.in: Don't use libgloss.h for ELF targets. - Always use_collect2 on a.out targets. - -Mon Aug 2 16:27:42 1999 Jim Wilson - - * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt. - (force_to_mode, case ASHIFTRT): Add shiftrt label. - -Tue Aug 3 00:45:02 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - -1999-08-02 Jakub Jelinek - - * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad. - -1999-08-02 Jakub Jelinek - - * c-decl.c (get_parm_info, store_parm_decls): Change all uses of - PROMOTE_PROTOTYPES, so that it tests it as a C expression. - Ensure expr.h is included. - * c-typecheck.c (convert_arguments): Ditto. - - * expr.h: Supply default for PROMOTE_PROTOTYPES (0). - - * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1. - * config/convex/convex.h: Ditto. - * config/dsp16xx/dsp16xx.h: Ditto. - * config/fx80/fx80.h: Ditto. - * config/gmicro/gmicro.h: Ditto. - * config/i370/i370.h: Ditto. - * config/i386/i386.h: Ditto. - * config/m32r/m32r.h: Ditto. - * config/m68k/m68k.h: Ditto. - * config/m88k/m88k.h: Ditto. - * config/mips/mips.h: Ditto. - * config/pa/pa.h: Ditto. - * config/pyr/pyr.h: Ditto. - * config/tahoe/tahoe.h: Ditto. - * config/we32k/we32k.h: Ditto. - - * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES - based on arch size. - - * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0. - - * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES - from comment. - - * tm.texi: Document new usage of PROMOTE_PROTOTYPES. - -1999-08-02 Richard Henderson - - * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set - for the register spill block. - (m32r_va_arg): New. - * m32r.h (EXPAND_BUILTIN_VA_ARG): New. - (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code. - - * m32r.h (INT8_P): Don't short-cut test with (unsigned). - (INT16_P, CMP_INT16_P, UINT16_P): Likewise. - (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise. - -1999-08-02 Jakub Jelinek - - * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef - MAX_WCHAR_TYPE defined in sparc.h. - * config/sparc/linuxaout.h: Likewise. - * config/sparc/linux64.h: Likewise. - Also default to -mvis if CPU is UltraSPARC. - -1999-08-02 Jakub Jelinek - - * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro. - (RTX_OK_FOR_OLO10): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable - %lo(), allow it in addresses... - (PRINT_OPERAND_ADDRESS): ... and print it appropriately. - * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo() - does not make sense. - * config/sparc/sparc.c (sparc_hard_reg_printed): New array. - (sparc_output_scratch_registers): New function. - (output_function_prologue, sparc_flat_output_function_prologue): Use - it. - * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if - defined. - * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it. - * configure.in: Add check for .register pseudo-op support in as and - check for offsetable %lo(). - * acconfig.h: Add templates for the above checks. - * configure: Regenerate. - -1999-08-02 Richard Henderson - - * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS. - * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise. - * sparc/sol2.h (TARGET_DEFAULT): Likewise. - -Mon Aug 2 23:46:45 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - -1999-08-02 Jakub Jelinek - - * config/float-sparc.h: New file. - * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1, - sparc-*-linux-gnu and sparc64-*-linux*. - -1999-08-02 Franz Sirl - - * rs6000.c (rs6000_va_list): Type is an array. - (rs6000_va_start): Don't doubly adjust for varargs. - (rs6000_va_arg): Evaluate long long GPR adjustment. - -Mon Aug 2 16:15:57 1999 David Edelsohn - - * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of - -maix64 and -maix32. - (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC, - LINK_SPEC): Change appropriately. - * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P. - (u_short_cint_operand): Likewise. - * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support - for 64-bit hosts. - * rs6000/t-aix43 (MULTILIB): Change to -m64. - - * invoke.texi (RS/6000 Submodel): Document 64-bit processor options. - -Mon Aug 2 16:15:57 1999 Geoff Keating - - * rs6000/rs6000.c (num_insns_constant_wide): Correct - for type promotion. - (add_operand): Get test correct for 64-bit HOST_WIDE_INT. - (non_add_cint_operand): Likewise. - (logical_operand): Likewise. - (non_logical_cint_operand): Likewise. - (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT. - (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT. - (rs6000_select_rtx_section): Suppress warning. - (small_data_operand): Suppress warning. - (rs6000_got_register): Suppress warning. - * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed - type, so `J' is generally the wrong constraint for a SImode value; - use `L' instead. - (andsi3_internal2): Likewise. - (andsi3_internal3): Likewise. - (iorsi3_internal1): Likewise. - (xorsi3_internal1): Likewise. - (movsi): Likewise. - (movsf_softfloat): Likewise. - (scc insns): Likewise. - (movsi+2): Preserve sign bits of SImode constant. - (floatsidf2_internal+1): Sign-extend SImode constant correctly. - (movdf+1): Sign-extend properly. - (movdi_32+1): Sign-extend properly. - (scc insns): Sign-extend properly. - - * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J, - K, L, and T. - -1999-08-02 Richard Henderson - - * alpha.c (override_options): Move ev6 alpha_tp frobbing out of - -mcpu parsing code. - (print_operand): Notice alpha_fptm not alpha_tp for sw completion. - * alpha.md (all fp insns): Likewise. - -1999-08-02 Nick Clifton - - * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not - already defined. - -Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (legitimize_pic_address): Clarify comments. Do not call the - pic_load_label generator directly. - * pa.md (pic_load_label): Clarify comments. Remove modes on operands. - No longer a named pattern. - -Mon Aug 2 09:38:10 1999 Nick Clifton - - * explow.c (force_reg): Call force_operand if X does not - satisfy general_operand. - -Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com) - - * fix-header.c (main): When testing for CONTINUED, use string - equality, not pointer equality. - -Mon Aug 2 01:27:24 1999 Dan Nicolaescu - - * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0. - -Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Fix loop which deletes insns after a jump - that has become an unconditional jump. - - * m68k.c (output_function_prologue): Fix typo in CPU32 case. - (output_function_epilogue): Similarly. - -Sun Aug 1 20:14:00 1999 Bernd Schmidt - - * tree.h (init_dummy_function_start): Declare. - -Sun Aug 1 12:55:31 1999 Bernd Schmidt - - * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value, - last_expr_type, last_expr_value, block_start_count, block_stack, - stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack, - nesting_depth, goto_fixup_chain): Delete global vars; now allocated - dynamically in stmt elt of struct function for each function. - (struct nesting): Rename function_call_count elt to n_function_calls, - target_temp_slot_level to block_target_temp_slot_level. All users - changed. - (struct stmt_status): New structure definition. - Add many accessor macros for stmt_status elements which previously - were global variables. - (init_stmt_for_function): Allocate stmt elt for current_function. - Reflect that block_start_count was renamed to - current_block_start_count. - (save_stmt_status, restore_stmt_status): Delete functions. - (preserve_subexpressions_p): Don't access loop_stack when outside - a function. - (expand_start_bindings): Reflect that block_start_count was renamed to - current_block_start_count. - (expand_fixup): Likewise. - (expand_decl): Don't access block_stack when outside a function. - (expand_decl_cleanup): Likewise. - (expand_dcc_cleanup): Likewise. - (expand_dhc_cleanup): Likewise. - (expand_anon_union_decl): Likewise. - (set_file_and_line_for_stmt): New function. - (in_control_zone_p): New function. - - * function.h (struct function): Add new elt stmt. - Delete elts block_stack, stack_block_stack, cond_stack, loop_stack, - case_stack, nesting_stack, nesting_depth, block_start_count, - last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename, - emit_lineno, goto_fixup_chain. - (save_eh_status, restore_eh_status, save_stmt_status, - restore_stmt_status): Delete declarations. - * function.c (push_function_context_to): Don't call save_stmt_status. - (pop_function_context_to): Don't call restore_stmt_status. - * tree.h (in_control_zone_p): Declare. - * rtl.h (set_file_and_line_for_stmt): Declare. - - * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno; - call set_file_and_line_for_stmt. - -Thu Jul 31 12:34:45 1999 Joe Buck - - * gcc.texi: Use terms "GNU Compiler Collection" and "GCC". - Also update copyright. - -Sat Jul 31 11:10:07 1999 Bernd Schmidt - - * c-pragma.c: Don't include "except.h". - * emit-rtl.c: Likewise. - * stor-layout.c: Likewise. - * tree.c: Likewise. - * varasm.c: Likewise. - - * flow.c: Include "function.h". - * tree.h (init_dummy_function_start): Declare new function. - - * except.h (struct eh_status): New structure. - (struct label_node, struct eh_entry): Declare even if tree.h hasn't - been included. - (eh_return_stub_label, ehstack, catchstack, ehqueue, - catch_clauses, false_label_stack, caught_return_label_stack, - protect_list, current_function_ehc): Add accessor macros for the - corresponding fields in current_function->eh; delete declarations - for all items that used to be declared here. - * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue, - catch_clauses, false_label_stack, caught_return_label_stack, - protect_list, current_function_ehc): Delete variables. - (init_eh_for_function): Allocate current_function->eh. - (save_eh_status, restore_eh_status): Delete functions. - - * function.h (struct function): Add fields next_global and eh. - Delete all exception handling related fields. - * function.c (current_function): New variable. - (all_functions): New variable. - (push_function_context_to): Don't allocate a struct function, - use current_function instead. Call init_dummy_function_start when - outside a function. Clear current_function before returning. - (pop_function_context_from): Restore current_function. - Don't free the restored struct function. - (prepare_function_start): New function. - (init_dummy_function_start): New function. - (init_function_start): Break out some code into prepare_function_start - and call it here. - - * stmt.c (save_stmt_status): Don't call save_eh_status. - (restore_stmt_status): Don't call restore_eh_status. - - * Makefile.in: Update dependencies. - -Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead - of depending on a magic constant value. Update comments. - (hppa_expand_prologue): Similarly. - - * pa.md (reload_indi, reload_outdi): Allow any register for the - original reload register. - -Fri Jul 30 19:41:35 1999 Jim Wilson - - * cccp.c (print_help): Change marcos to macros. - -1999-07-30 Richard Henderson - - * c-typeck.c (initializer_constant_valid_p): Move ... - * c-common.c (initializer_constant_valid_p): ... here. Use - FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction - of label addresses. - * c-common.h (initializer_constant_valid_p): Declare. - * c-tree.h (initializer_constant_valid_p): Remove. - -Fri Jul 30 16:33:42 1999 Mathias Froehlich - - * config/i386/sol2-c1.asm: Align the stack. - * config/i386/sol2-gc1.asm: Likewise. - -1999-07-30 Vladimir Makarov - - * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto - -Asparclite for sparc86x. - (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for - sparc86x. - (ASM_CPU_SPEC): Use -Asparclite for sparc86x. - -Fri Jul 30 14:53:56 1999 Jakub Jelinek - - * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by - the user if using the non-default arch size in BI_ARCH configuration. - * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto. - - * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set): - Fix patterns so that they actually match. - (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero. - (mulsidi3_sp64, const_mulsidi3_sp64): New patterns. - (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on - TARGET_HARD_MUL32. - (mulsidi3): Reflect this in the expand. - (smulsi3_highpart): Only on TARGET_ARCH32. - (umulsidi3_sp64, const_umulsidi3_sp64): New patterns. - (const_umulsidi3_sp32): Renamed from const_umulsidi3. - (umulsidi3): Reflect this in the expand. - (umulsi3_highpart): Only on TARGET_ARCH32. - (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32, - don't require g0 to be zero. - (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32. - ({,u}divsi3): New expands. - ({,u}divsi3_sp64): New patterns. - (after lshrdi3_v8plus): Four new patterns to help combiner - optimizing nested mixed mode shifts. - - * config/sparc/sparc.c (sparc_override_options): Use deprecated - v8 instructions if optimizing for UltraSPARC I, II, IIi, as it - speed things up. Don't use them by default on plain v9 in 64bit - mode, according to what SPAMv9 sais. - - * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves - top 32 bits of %[og][0-7] in signal handlers. - Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32. - -Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (zvdep_imm32): Renamed from zvdep_imm. - (ashlsi3): Corresponding changes. - - * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands. - -Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (FIRST_PARM_CALLER_OFFSET): Delete. - -Thu Jul 29 19:01:58 1999 Bernd Schmidt - - * arm.h (Hint): Delete macro. - Substitute HOST_WIDE_INT for Hint in some prototypes. - * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype. - -Thu Jul 29 09:21:42 1999 Nick Clifton - - * builtins.c (expand_builtin_setjmp): Use force_operand to - make sure that the buffer address is in a suitable form to be - passed to force_reg. - -Wed Jul 28 12:50:48 1999 Geoff Keating - - * config/mips/mips.c: system.h handles MIN and MAX, don't undefine - them here. - -Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (indirect_jump): Remove mode from match_operand. Verify - proper mode in the condition string. - (icacheflush, dcacheflush): Remove modes from match_operands. - - * pa.c (emit_move_sequence): Always convert scratch_reg to the - proper mode before using it. - - * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn - pair. - - * pa.c (store_reg): Do not call add_high_const generator directly. - (load_reg, set_reg_plus_d): Likewise. - * pa.md (add_high_const): No longer a named pattern. - - * pa.c (legitimize_address): Consistently use Pmode rather than - SImode. Do not call gen_pic2_highpart directly anymore. - * pa.md (pic2_highpart): No longer a named pattern. - (pic2_lo_sum): Similarly. Reformat to make more readable. - - * pa.md (call, call_value): Use "word_mode" instead of "SImode" as - needed. - - * README: Update. - -Wed Jul 28 11:28:04 1999 Franz Sirl - - * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs. - -Wed Jul 28 11:23:48 1999 Richard Henderson - - * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set - and tag the spill mems. - (hppa_va_start): New. - (hppa_va_arg): New. - * pa.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:22:21 1999 Richard Henderson - - * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set - and tag the spill mems. - (mn10300_va_start): New. - (mn10300_va_arg): New. - * mn10300.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:20:19 1999 Richard Henderson - - * mn10200.c (mn10200_va_arg): New. - * mn10200.h (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:19:06 1999 Richard Henderson - - * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes - rather than play with TREE_INT_CST_LOW. - -1999-07-27 Philip Blundell - - * config/arm/telf.h: Include dbxelf.h. - (CPP_PREDEFINES): Only define if not already defined. - (ASM_IDENTIFY_GCC): Likewise. - (SUBTARGET_EXTRA_SECTIONS): Likewise. - (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise. - * config/arm/thumb.h (LINK_SPEC): Only define if not already - defined. - (DBX_DEBUGGING_INFO): Don't define. - * config/arm/linux-telf.h: New file. - * config/arm/linux-tgas.h: New file. - * config/arm/t-thumb-linux: New file. - * config/arm/uclinux-elf.h: New file. - * config/arm/uclinux-telf.h: New file. - * configure.in (arm-*-uclinux, thumb-*-linux-gnu, - thumb-*-uclinux): New targets. - * configure: Regenerate. - -Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (post_store, pre_load): New expanders. - (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively. - (post_ldwm, pre_stwm): Make these unnamed patterns since we never - need to directly generate RTL for them. - * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding - changes. - -Tue Jul 27 16:05:52 1999 David Edelsohn - - * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630. - * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630. - (rs6000_cpu): Choose between 32-bit and 64-bit default processors. - (secndary_reload_class): Make TARGET_ELF conditional compile. - (print_operand_address): Similar. - (output_toc): Print all values as hex. - (get_issue_rate): Rearrange and add RS64A and PPC630. - * rs6000.h (processor_type): Add RS64A and PPC630. - (PROCESSOR_POWERPC64): New. - (PROMOTE_MODE): Use word_mode. - (RTX_COSTS): Add RS64A and PPC630. - * rs6000.md (scheduling information): Add lmul and ldiv - representing 64-bit integer multiply and divide. Add rs64a and - PPC630 information. - (ashldi3): Add support for "rldic" instruction. - * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750. - -Tue Jul 27 15:31:53 1999 Vladimir Makarov - - * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE - instead of V8 for sparclite86x in cpu_table. - -Tue Jul 27 17:49:42 1999 Bernd Schmidt - - * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call - output_file_directive. - -Tue Jul 27 03:15:33 1999 Jason Merrill - - * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the - tree for op1, not the rtl. - -Tue Jul 27 00:18:34 1999 Richard Henderson - - * m88k.c (m88k_builtin_saveregs): Break out the constructor code - to m88k_va_start, leaving only the register spill. - (m88k_build_va_list): New. - (m88k_va_start): New. - (m88k_va_arg): New. - * m88k.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Mon Jul 26 19:07:11 1999 Geoff Keating - - * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs): - Rename from expand_builtin_saveregs. - * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller. - -Mon Jul 26 22:52:47 1999 Richard Henderson - - * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set - for the register spill block. - (i960_build_va_list): New. - (i960_va_start): New. - (i960_va_arg): New. - * i960.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * i960.md (store_multiple): Use change_address on individul mems. - -Mon Jul 26 22:43:12 1999 Richard Henderson - - * builtins.c (stabilize_va_list): Don't INDIRECT_REF through - an ARRAY_TYPE. - (std_expand_builtin_va_start): Back out one word if !stdarg_p. - (expand_builtin_va_end): Evaluate arg for side effects. - * c-common.c (c_common_nodes_and_builtins): Construct a - va_list_arg_type_node to handle array decomposition to pointer. - -Mon Jul 26 18:51:34 1999 Richard Henderson - - * except.c (st_dynamic_cleanup): Use force_operand on the - buffer's address. - -Mon Jul 26 16:43:26 1999 Richard Henderson - - * c4x.h (EXPAND_BUILTIN_VA_ARG): New. - * c4x.c (c4x_va_arg): New. - -Mon Jul 26 12:30:09 1999 Jason Merrill - - * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer - has manual_pop set. - -1999-07-26 Nathan Sidwell - - * eh-common.h (__eh_matcher): Prototype correctly. - -Mon Jul 26 17:24:51 1999 Philip Blundell - - * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define. - (TARGET_SINGLE_PIC_BASE): Likewise. - (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default - definitions. - (TARGET_CALLEE_INTERWORKING): Fix typo in comment. - (TARGET_SWITCHES): Add -m{no-}single-pic-base. - (TARGET_OPTIONS): Add -mpic-register=N. - (OUTPUT_INT_ADDR_CONST): New macro. - (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, - LEGITIMATE_PIC_OPERAND_P): Likewise. - (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC. - (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling - output_addr_const directly. - (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with - ARM port. - (thumb_pic_register, thumb_pic_register_string): Declare. - - * config/arm/thumb.c (symbol_mentioned_p): New function: Imported - from arm.c. - (label_mentioned_p): New function: Imported from arm.c. - (legitimize_pic_address): New function: Imported from arm.c. - (is_pic):New function: Imported from arm.c. - (thumb_finalize_pic):New function: Imported from arm.c. - (add_constant): Cope with PIC constants. - (fixit): Cope with PIC constants. - (output_return): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_function_prologue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_expand_prologue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_unexpand_epilogue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_print_operand): Accept '|'. - (thumb_override_options): Process PIC options. - - * config/arm/thumb.md (movsi): Support PIC. - (call_insn): Change "i" constraint to "X". - (call_value_insn): Likewise. - (consttable_4, consttable_8, consttable_end): Set and clear - "making_const_table" as appropriate. - (pic_load_addr, pic_add_dot_plus_four): New insns. - - * invoke.texi (Thumb Options): Fix spelling. Document new - options -msingle-pic-base and -mpic-register=. - -1999-07-26 Andrew Haley - - * config/m32r/initfini.c (__init): Use a full word immediate for - __fini: this allows it to be placed in any memory region. - - * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for - -mmodel=medium. This is OK for all memory models. - -Mon Jul 26 11:58:46 1999 Nick Clifton - - * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r. - * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r. - -Mon Jul 26 10:23:36 1999 Nick Clifton - - * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if - defined. - - * tm.texi: Document ASM_FPRINTF_EXTENSIONS. - -Sun Jul 25 23:51:59 1999 Richard Henderson - - * i860.h (EXPAND_BUILTIN_SAVEREGS): New. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * i860.c (output_delayed_branch): Disable. - (output_delay_insn): Likewise. - (i860_saveregs): New. - (i860_build_va_list): New. - (i860_va_start): New. - (i860_va_arg): New. - * i860.md: Disable all peepholes using output_delayed_branch. - * i860/sysv4.h (I860_SVR4_VA_LIST): New. - -Sun Jul 25 23:44:13 1999 Richard Henderson - - * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * clipper.c (clipper_builtin_saveregs): Only dump registers. - Return the address of the save area. - (clipper_build_va_list): New. - (clipper_va_start): New. - (clipper_va_arg): New. - -Sun Jul 25 22:56:47 1999 Richard Henderson - - * arc.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * arc.c (arc_setup_incoming_varargs): Set alias set of - varargs save area. - (arc_va_start): New. - (arc_va_arg): New. - -Sun Jul 25 22:45:55 1999 Richard Henderson - - * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * alpha.c (alpha_builtin_saveregs): Delete. - (alpha_build_va_list): New. - (alpha_va_start): New. - (alpha_va_arg): New. - -Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com) - - * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in - column zero. - (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise. - (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise. - - * gcc.texi: More changes related to list conversion. - * invoke.texi: Likewise. - -Sun Jul 25 18:15:39 1999 Richard Henderson - - * builtins.c (expand_builtin_saveregs): Remove static, remove exp - and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS. - (expand_builtin_next_arg): Accept ARGLIST not EXP. - (stabilize_va_list): New function. - (std_expand_builtin_va_start): New function. - (expand_builtin_va_start): New function. - (get_varargs_alias_set): New function. - (std_expand_builtin_va_arg): New function. - (expand_builtin_va_arg): New function. - (expand_builtin_va_end): New function. - (expand_builtin_va_copy): New function. - (expand_builtin): Call them. - * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list, - __builtin_{varargs_start,stdarg_start,end,copy}. - (build_va_arg): New function. - * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete. - (build_va_arg): Declare. - * c-decl.c (ptr_type_node, va_list_type_node): New. - * c-parse.gperf (__builtin_va_arg): New. - * c-parse.in (VA_ARG): New token. - (unary_expr): Recognize it. - * expr.c (expand_expr): Expand VA_ARG_EXPR. - * expr.h (std_expand_builtin_va_start): Declare. - (std_expand_builtin_va_arg): Declare. - (expand_builtin_va_arg): Declare. - (get_varargs_alias_set): Declare. - * tree.def (VA_ARG_EXPR): New. - * tree.h (BUILT_IN_VARARGS_START): New. - (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New. - (ptr_type_node, va_list_type_node): Declare. - * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument. - * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise. - * m88k.h, m88k.c: Likewise. - * mn10300.h, mn10300.c: Likewise. - * pa.h, pa.c: Likewise. - * rs6000.h, rs6000.c: Likewise. - * sh.h, sh.c: Likewise. - * sparc.h, sparc.c: Likewise. - - * emit-rtl.c (operand_subword): Copy alias set. - (change_address): Likewise. - -Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Scan all the used callee saved registers, - not just the first one. - -Fri Jul 23 14:09:58 1999 Philip Blundell - - * config/arm/arm.h (TARGET_SWITCHES): Add - -m{no-}single-pic-base. Correct help string for -mshort-load-words. - (TARGET_OPTIONS): Add -mpic-register=. - (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define. - (arm_pic_register_string): Declare. - (NEED_PLT_GOT): Delete, replace with ... - (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros. - (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC. - (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC. - * config/arm/arm.c (arm_override_options): Add new option - -mpic-register=N. - (arm_pic_register_string): New variable. - (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE. - (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC - register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT. - (output_return_instruction): Likewise. - * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ... - (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic. - * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT. - - * invoke.texi (ARM Options): Fix spelling. Remove duplicate - mention of -msched-prolog. Document new options -msingle-pic-base - and -mpic-register=. - -Thu Jul 22 18:23:56 1999 Richard Henderson - - * haifa-sched.c (reemit_notes): Tidy. - * sched.c (reemit_notes): Duplicate 1998-08-31 patch to - haifa's routine. - -Thu Jul 22 18:21:04 1999 Richard Henderson - - * explow.c (trunc_int_for_mode): New function. - (plus_constant_wide): Use it. - * combine.c (simplify_and_const_int): Likewise. - (merge_outer_ops): Likewise. - (simplify_shift_const): Likewise. - * cse.c (simplify_unary_operation): Likewise. - (simplify_binary_operation): Likewise. - * emit-rtl.c (operand_subword): Likewise. - * rtl.h: Declare it. - -Thu Jul 22 14:34:59 1999 Bernd Schmidt - - * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case - (use NUM_REGS instead of NUM_INTS). - -Thu Jul 22 11:25:20 1999 Bernd Schmidt - - * builtins.c: New file. - * expr.c (saveregs_value, apply_args_value): Delete definition, - moved into builtins.c. - (string_constant): No longer static. - (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin, - apply_args_size, apply_result_size, result_vector, - expand_builtin_apply_args, expand_builtin_apply, - expand_builtin_return): Delete functions, moved into builtins.c. - (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros. - * expr.h (saveregs_value, apply_args_value): Declare variables. - (expand_builtin, string_constant): Declare functions. - * Makefile.in: Update to build builtin.o. - -Wed Jul 21 00:46:58 1999 Mark P. Mitchell - - * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro. - * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it. - * dwarf2out.c (dwarf2out_init): Don't output a label to mark the - start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is - false. - * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): - Define to zero. - -1999-07-21 Michael Meissner - - * print-rtl.c (print_rtx): Print the names of the virtual - registers. - -Wed Jul 21 16:00:32 1999 Nick Clifton - - * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo - introduced in previous delta. - -Wed Jul 21 14:30:51 1999 Bernd Schmidt - - * c-lang.c (finish_file): Rename void_list_node to void_list_node_1 - to avoid name clash. - -Wed Jul 21 08:39:22 1999 Gavin Romig-Koch - - * c-lex.c (yylex) : Correct the test for overflow when lexing - integer literals. - -Tue Jul 20 18:02:42 1999 Richard Henderson - - * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa. - (adjust_priority): Always call ADJUST_PRIORITY. - (schedule_insn): Only put insns into the ready at cost 0. - (schedule_block): Remove redundant initial sort. Give clock_var - and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost - is not 0. - * tm.texi (MD_SCHED_REORDER): Update docs. - - * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE. - * sparc.c (ultra_reorder_called_this_block): Delete. - (ultrasparc_sched_init): Don't set it. - (ultrasparc_sched_reorder): Don't check it. - -Tue Jul 20 17:07:54 1999 Richard Henderson - - * rs6000.h (struct rs6000_args): Add sysv_gregno. - * rs6000.c (init_cumulative_args): Init sysv_gregno. - (function_arg_boundary): Align DFmode. - (function_arg_advance): Restructure for ABI_V4; use sysv_gregno - to get fp reg and stack overflow correct. - (function_arg): Likewise. - (function_arg_pass_by_reference): True for TFmode for ABI_V4. - (setup_incoming_varargs): Restructure for ABI_V4; use - function_arg_advance to skip final named argument. - (expand_builtin_saveregs): Properly unskip the last integer arg - when doing varargs. Adjust overflow location calculation. - - * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr - explicitly unsigned. - (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly. - (__VA_GP_REGSAVE): Similarly. - (__va_longlong_p): Delete. - (__va_arg_type_violation): New declaration. - (va_arg): Restructure. Flag promotion errors. Align double. - TFmode passed by reference. - - * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic - in the HOST_BITS_PER_WIDE_INT > 32 case. - -Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson - - * dwarf2out.c (output_abbrev_section): Terminate with a zero. - -Tue Jul 20 12:12:27 1999 Jason Merrill - - * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed. - * toplev.c (documented_lang_options): Add -fpreprocessed. - * cpplib.h (struct cpp_buffer): Add preprocessed. - * cppinit.c (cpp_handle_option): Handle -fpreprocessed. - (cpp_start_read): Don't expand macros or emit an initial #line - directive if -fpreprocessed. - -Tue Jul 20 12:12:09 1999 Michael Tiemann - - * cpplib.h (struct cpp_buffer): Added manual_pop for - better C++ tokenization. - * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop. - Also, support C++ tokenization for ->*, .*, ? operators. - * c-common.c (cpp_token): Make non-static. - -Tue Jul 20 11:24:19 1999 Bernd Schmidt - - * c-common.h: New file. - * c-common.c (permanent_obstack): Delete unused declaration. - (c_global_trees): New array. - (c_common_nodes_and_builtins): New function; split off common code - from init_decl_processing in both c-decl.c and cp/decl.c. - * c-tree.h: Delete lots of declarations of tree nodes; replaced by - c_global_trees and accessor macros defined in c-common.h. - Include c-common.h. - * c-decl.c: Delete definitions for tree nodes that were replaced by - c_global_trees. - (init_decl_processing): Build void_list_node. - Call c_common_nodes_and_builtins; delete code to generate the common - builtins here. - * objc/objc-act.c (build_module_descriptor): Rename variable - void_list_node to avoid clash with c-common.h. - - * Makefile.in: Update dependencies. - * objc/Make-lang.in: Likewise. - -Mon Jul 19 14:22:18 1999 Mark P. Mitchell - - * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Likewise. - (UNIQUE_SECTION): Likewise. - -1999-07-19 Linas Vepstas - - * config/i370/README: New file. - * config/i370/linux.h: New file. - * config/i370/mvs.h: New file. - * config/i370/oe.h: New file. - * config/i370/t-linux: New file. - * config/i370/t-mvs: New file. - * config/i370/t-oe: New file. - * config/i370/x-oe: New file. - * config/i370/xm-linux.h: New file. - * config/i370/xm-mvs.h: New file. - * config/i370/xm-oe.h: New file. - - * i370.c (label_node_t): Add first_ref_page, label_addr, - label_first_ref, label_last_ref members. - (mvs_need_base_reload): Renamed from mvs_label_emitted. - (MAX_MVS_LABEL_SIZE): Define. - (MAX_LONG_LABEL_SIZE): Define. - (alias_node_t, alias_anchor, alias_number): New. - (mvs_function_table): Reorder for EBCDIC. - (ascebc, ebcasc): Unconditionally define. - (i370_branch_dest, i370_branch_length): New functions. - (i370_short_branch, i370_label_scan): New functions. - (mvs_get_label): Renamed from mvs_add_label. Search for - an existing label before creating a new one. - (mvs_add_label): New function. - (mvs_get_label_page): New function. - (mvs_free_label_list): Renamed from mvs_free_label. Iterate - over the entire list. - (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR. - (mvs_check_page) [TARGET_ELF_ABI]: New function. - (mvs_add_alias, mvs_need_alias): New functions. - (mvs_get_alias, mvs_check_alias): New functions. - (handle_pragma): New function. - (mvs_function_check): New function. - (unsigned_jump_follows_p): Search harder. - (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels. - (i370_function_prolog) [TARGET_ELF_ABI]: New function. - * i370.h (TARGET_VERSION): Delete. - (CPP_SPEC, CPP_PREDEFINES): Delete. - (mvs_label_emitted): Delete. - (TARGET_EBCDIC): Delete. - (MAP_CHARACTER): Define only if TARGET_EBCDIC. - (HANDLE_PRAGMA): Define. - (HARD_REGNO_NREGS): Handle complex modes. - (HARD_REGNO_MODE_OK): Likewise. - (CLASS_MAX_NREGS): Likewise. - (RET_REG): Likewise. - (EXTRA_CONSTRAINT): Define. - (RETURN_IN_MEMORY): True for DImode. - (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT. - (FUNCTION_PROFILER): Delete. - (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P. - (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts. - (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC. - (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise. - (TARGET_VT, TARGET_FF, TARGET_CR): Likewise. - (ASM_FILE_START): Add "RMODE ANY". - (ASM_OUTPUT_EXTERNAL): Check for aliases. - (ASM_GLOBALIZE_LABEL): Likewise. - (ASM_OUTPUT_LABELREF): Likewise. - (ASM_OUTPUT_COMMON): Likewise. - (PRINT_OPERAND): Handle 'K', 'W', default. - (PRINT_OPERAND_ADDRESS): New. - (Lots of defines): Add support for TARGET_ELF_ABI. - * i370.md (attr length): New. Define for all patterns. - (*): Lots of tweeks to assembly output and constraints. - -Mon Jul 19 15:09:29 1999 David Edelsohn - - * rs6000.md (arithmetic, logical, and shift Rc combiner patterns): - Disable patterns performing SImode comparisons with SImode values - if TARGET_POWERPC64 and instruction does not sign-extend or does - not mask to narrower than SImode, i.e. where bit 31 and bit 63 may - differ for signed quantities. - (indirect_jump): Add expander to choose RTL based on TARGET_64BIT. - (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64. - (decrement_and_branch_on_count): Add 64-bit variant. - -Mon Jul 19 09:36:27 1999 Bernd Schmidt - - * final.c (output_asm_insn): When searching for the matching string - for a given dialect, don't run past the end of the list of - alternatives if there are fewer alternatives in the template than - dialects. - -1999-07-17 Alexandre Oliva - - * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org. - Removed paragraph about compression of files and size limitation, - duplicated in the FAQ. Use gcc-patches for posting patches. - * gcc.c (main): Updated URL with bug reporting instructions to - gcc.gnu.org. Removed e-mail address. - * system.h (abort): Likewise. - -1999-07-17 Kaveh R. Ghazi - - * Makefile.in (stmp-multilib-sub): Make the files extracted - from $(LIBGCC1) writable. - -Sat Jul 17 14:25:46 1999 Nick Clifton - - * config/arm/aout.h: Reformat for improved readability. - - * config/arm/arm.h: Reformat for improved readability. - Replace uses of fprintf with asm_fprintf where appropriate. - (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM - function declaration assembler actions. - (NUM_INTS): New macro: Convert from bytes to words. - (NUM_REGS): New macro: Compute number of registers required to - hold a quanitity of tyep MODE. - (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode - types. - (NUM_ARG_REGS): New macro: The number of argument registers - available. - (ARG_REGISTER): New macro: Compute the register number of the Nth - argument register. - (LAST_ARG_REGNUM): New macro: The number of the last argument - register. - (SP_REGNUM): New macro: Register number of the stack pointer. - (FP_REGNUM): New macro: Register number of the frame pointer. - (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS, - FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change - CUMULATIVE_ARGS so that it counts registers not bytes. - - * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to - TARGET_INTERWORK. - Replace uses of fprintf with asm_fprintf where appropriate. - (output_ascii_pseudo_op): Replace with version from thumb.c - - * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF. - - * config/arm/elf.h (CPP_PREDEFINES): Replace with - SUBTARGET_CPP_SPEC. - (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. - (ASM_FILE_START): Emit ASM_APP_OFF. - -Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Round frame according to - STACK_BOUNDARY rather than a hardwired value. - - * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD. - - * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead - of "1". - * configure: Rebuilt. - - * configure.in (hppa*-*-linux*): New configuration. - * configure: Rebuilt. - * pa.h (MAX_OFILE_ALIGNMENT): Delete. - * pa/som.h (MAX_OFILE_ALIGNMENT): Define. - * pa/pa-linux.h: New file. - * pa/t-linux: New file. - * pa/xm-linux.h: New file. - - * pa.c (hppa_legitimize_address): Change references from SImode to - either Pmode or word_mode as appropriate. - (emit_move_sequence, store_reg, load_reg): Likewise. - (set_reg_plus_d, hppa_expand_prologue): Likewise. - (output_mul_insn): Likewise. - * pa.h (PROMOTE_MODE): Likewise. - (INITIALZE_TRAMPOLINE): Likewise. - (Pmode): Define to word_mode. - - * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired - value of 4. Allocate 8 bytes for each FP register save. - (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired - value of 4. - (hppa_expand_prologue): Likewise. - * pa.h (PROMOTE_MODE): Likewise. - (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise. - (FUNCTION_ARG_BOUNDARY): Likewise. - - * invoke.texi (HPPA Options): Remove -mspace/-mno-space. - - * pa.c (out_of_line_prologue_epilogue): Delete. - (override_options): Remove -mspace related code. - (hppa_expand_prologue, hppa_expand_epilogue): Likewise. - (compute_frame_size): Only allocate space for register that - actually need to be saved. - * pa.h (MASK_SPACE, TARGET_SPACE): Delete. - (TARGET_SWITCHES): Remove -mspace, -mno-space - * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm - * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib. - * pa/ee.asm, pa/ee_fp.asm: Delete. - - * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define. - - * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler - directive in column zero. - -Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.c (output_function_prologue): Fix computation of save mask - when generating PIC code. - -Thu Jul 15 15:40:09 1999 Jim Wilson - - * tree.c (build_type_attribute_variant): Move current_obstack restore - after build_qualified_type call. - -1999-07-15 Mark Mitchell - - * configure.in: Use t-iris6, even with GNU LD. - * config/mips/iris6gld.h: Fix typo in linker spec. - * config/mips/t-iris6gld: Remove. - -Thu Jul 15 15:15:43 1999 David Edelsohn - - * rs6000.md (insv, extzv): Remove SImode dependence in named - patterns. Explicitly generate DImode RTL if PowerPC64 and - operand is DImode. - (insvdi): Reverse start and size in instruction template. - -1999-07-12 Joseph S. Myers - - * invoke.texi: Typo fixes. - -Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not - handle at this time instead of silently generating incorrect code. - (gen_imagpart): Likewise. - - * reload.c (find_reloads): Emit a USE for a pseudo register without - a hard register if we could not create an optional reload for the - pseudo. - -Wed Jul 14 23:45:48 1999 J"orn Rennecke - - * c-typeck.c (output_init_element, process_init_element): - When advancing constructor_unfilled_fields for a RECORD_TYPE, - check for nameless bit fields. - -Wed Jul 14 01:57:39 1999 Richard Henderson - - * regclass.c (scan_one_insn): Notice subregs that change the - size of their operand. - (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE. - -Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (alpha*-*-*): Include alpha/t-ieee. - * configure: Rebuilt. - * alpha/t-ieee: New file. - -Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.c (find_addr_reg): Do not select r0 as an address - register. - -Tue Jul 13 00:46:18 1999 Philippe De Muyter - - * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'. - -Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (movsf): Do not force easy FP constants into memory. - - * expr.c (expand_expr, case PLUS_EXPR): Pass constants through - immed_double_const to ensure they are properly truncated then - sign extended. - -Mon Jul 12 10:40:01 1999 Vladimir Makarov - - * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block - always unless NO_DEBUG is used. Compile this code - unconditionally. - (replace_symbols_in_block): Compile it unconditionally. - -Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (i?86-*-elf*): New target. - * configure: Rebuilt. - * i386/i386elf.h, i386/t-i386elf: New files. - -Fri Jul 9 22:39:44 1999 Jason Merrill - - * toplev.c (main): Don't complain about saying -gdwarf. - (rest_of_compilation): Remove redundant code. - -Fri Jul 9 19:08:55 1999 Jim Wilson - - * unroll.c (unroll_loops): Don't delete named CODE_LABELs. - -Fri Jul 9 18:54:18 1999 Felix Lee - - * config/i960/i960.c (ret_label): Change asm label from "LR:" to - "Li960R:", to avoid name clash. - -Fri Jul 9 10:48:28 1999 Bernd Schmidt - - * loop.c (check_dbra_loop): When reversing a loop, delete all - REG_EQUAL notes referencing the reversed biv except those which are - for a giv based on it. - -Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com) - - * version.c: Drop "gcc-" prefix from version #. - -Thu Jul 8 18:06:30 1999 Jason Merrill - - * dwarf2out.c (dwarf2out_line): Emit a line number comment after - the label if we're being verbose. - -Thu Jul 8 14:18:46 1999 Richard Henderson - - * m68k.c (output_function_prologue): Add pic register to mask - if live and flag_pic. - (output_function_epilogue): Likewise. - -Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com) - - * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler - directives in column zero. - - * pa/elf.h (ASM_FILE_START): Define. - * pa/som.h (ASM_FILE_START): Include .level directives. - * pa/hpux10.h (ASM_FILE_START): Delete. - * pa/hpux11.h (ASM_FILE_START): Delete. - - * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss. - -Thu Jul 8 18:03:19 1999 J"orn Rennecke - - * reload1.c (choose_reload_regs): Never call remove_adress_replacements - when reload_out equals reload_in. - -Thu Jul 8 16:50:14 1999 Nick Clifton - - * invoke.texi (Spec Files): New node: Describe the contents of - spec files. - -Thu Jul 8 10:28:25 1999 Craig Burley - - * invoke.texi (DEC Alpha Options): Put @end table at - beginning of line, to avoid confusing texi2html. - -Thu Jul 8 09:22:06 1999 Nick Clifton - - * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo - introduced in previous delta. - -Wed Jul 7 02:00:04 1999 Franz Sirl - - * reload1.c (gen_reload): When synthesizing a 3 operand add - sequence, improve test for when to reload OP1 into the reload - register instead of OP0. - -Wed Jul 7 01:38:03 1999 Jim Wilson - - * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. - -1999-07-07 Manfred Hollstein - - * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line - string literal. - -Wed Jul 7 01:16:43 1999 Richard Henderson - - * ginclude/varargs.h (__builtin_va_alist_t): New typedef. - (va_dcl): Use __builtin_va_alist_t. - -Wed Jul 7 01:14:42 1999 Jason Merrill - - * dwarf2out.c (gen_struct_or_union_type_die): Only remember types - on the permanent_obstack. - * dwarfout.c (output_type): Likewise. - -Tue Jul 6 15:25:32 1999 Gavin Romig-Koch - - * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Merged from c-typeck.c and cp/typeck.c. - * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Merged into c-common. - -Tue Jul 6 13:06:01 1999 Dave Brolley - - * c-lex.c (errorcount): Declare it. - (finish_parse): Update errorcount when using CPPLIB. - -1999-07-06 Bruce Korb - - * fixinc/inclhack.def(end_else_label): Double the backslash so - sed gets a chance to see it. - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -Fri Jul 2 18:49:51 1999 Nick Clifton - - Add framework to support armv5 architecture when it becomes - available: - - * config/arm/arm.c (FL_ARCH5): New processor capability flag. - (arm_arch5): New variable. - (all_architectures): Add armv5 line. - * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if - -march=armv5 is specified on the command line. - (arm_arch5): Export this variable. - * invoke.texi: Document new string accepted by -march= switch for - ARM ports. - - * config/arm/arm.h: Replace use of constant 12 as a register - number with IP_REGNUM. Similarly 14 and LR_REGNUM. - * config/arm/arm.c: Replace use of constant 12 as a register - number with IP_REGNUM. Similarly 14 and LR_REGNUM. - - * config/arm/elf.h: Tidy up. - * config/arm/coff.h: Tidy up. - -Thu Jul 1 19:08:13 1999 Mark P. Mitchell - - * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld. - * gcc/config/mips/t-iris6gld: New file. - * gcc/config/mips/iris6gld.h: Likewise. - -Fri Jul 2 13:23:39 1999 Gavin Romig-Koch - - * c-decl.c (widest_integer_literal_type_node, - widest_unsigned_literal_type) : New. - (init_decl_processing): Handle/use the two new types. - * c-common.c (type_for_size,type_for_mode) : Same. - * c-lex.c (yylex) : Same. - * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Same. - * c-tree.h (widest_integer_literal_type_node, - widest_unsigned_literal_type) : New. - -Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com) - - * dwarfout.c (field_byte_offset): Correctly compute the object's - byte offset for the first bit of a field which crosses an alignment - boundary on a !BYTES_BIG_ENDIAN target. - -Fri Jul 2 01:36:36 1999 Robert Lipe - - * fixinc.svr4: Fix by deleting protos for htons and - ntohs. - -Fri Jul 2 00:46:47 1999 Richard Henderson - Jeff Law - - * ginclude/varargs.h (va_dcl): Use word_mode for type of - __builtin_va_list. - - * except.c: Include intl.h. - (expand_eh_return): Set current_function_cannot_inline. - (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label. - * function.h (struct function): Add eh_return_stub_label. - * flow.c (delete_unreachable_blocks): Don't merge across EH edges. - * Makefile.in (except.o): Depend on intl.h. - -Fri Jul 2 00:04:23 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the - same as offsettable in cases 1 and 2. - -Thu Jul 1 20:54:10 1999 Richard Henderson - - * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8). - (extlh, extwh): Likewise. - -Thu Jul 1 11:05:25 1999 Gavin Romig-Koch - - * c-lex.c (yylex): Improve 'integer constant out of range' messages. - -Wed Jun 30 16:51:41 1999 Nick Clifton - - * configure.in: Add arm-pe and thumb-pe targets. - * configure: Regenerate. - - * thumb.c (arm_naked_function_p): New function: Determines if - a function is naked (has no gcc generated prologue/epilogue). - (is_called_in_ARM_mode): Return true if the func has the - interfacearm attribute. - (output_return): Do not generate a return for naked functions. - (thumb_function_prologue): Do not generate a prologue for - naked functions. - (thumb_expand_prologue): Do not generate a prologue for naked - functions. - (thumb_expand_epilogue): Do not generate an epilogue for naked - functions. - (arm_valid_machine_decl_attribute): New function, copied from - arm.c: Permit naked and interfacearm attributes. - - * config/arm/pe.c: New file: Support code for arm-pe target. - * config/arm/pe.h: New file: Header file for arm-pe target. - * config/arm/tpe.h: New file: Header file for thumb-pe target. - * config/arm/t-thumb-pe: New file: Makefile fragment for - thumb-pe target. - -1999-07-01 Mark Kettenis - - * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if - -fPIC or -fpic is specified. - -Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com) - - * expr.c (emit_block_move): Use copy_to_mode_reg for - !TARGET_MEM_FUNCTIONS case too. - - * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as - appropriate. - * configure: Rebuilt. - (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default. - * pa.h: Include dbxelf.h. Delete various dbx/stabs related - definitions made redundant by dbxelf.h inclusion. Delete - lots of definitions related to assembly output that are - specific to the SOM object format. - * pa.c (output_function_prologue): Do not emit the function's - name for OBJ_ELF. - * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining. - * pa-pro.h: Deleted. - * som.h: New file with SOM specific definitions. - * elf.h: New file with ELF specific definitions. - - * elfos.h (const_section): Output a tab before assembler directives. - (ctors_section, dtors_section): Likewise. - (ASM_OUTPUT_SECTION_NAME): Likewise. - - * pa/pa1.h: Delete unused file. - -Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa*-hp-hpux11*): New configuration. - * configure: Rebuilt. - * pa/pa-hpux11.h: New file. - * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp - command line. - - * mips.md (leasi, leadi): New patterns. - - * expr.c (emit_block_move): Properly handle case where one of the - block move arguments has a queued increment or decrement. - (clear_storage): Similarly. Fix formatting goof. - -1999-06-28 "David O'Brien" - - * fixinc/inclhack.def(stdio_va_list): This patch Removes a - semicolon from the BSD VA_LIST replacement expression. - - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - - * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines - now use the fixincl program. - -Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA - case. Also make the PIC register call_used. - - * m68k.h (FINALIZE_PIC): Delete. - * m68k.c (finalize_pic): Delete. - -Mon Jun 28 05:16:35 1999 Richard Henderson - - * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles - to memory. - -Mon Jun 28 04:07:27 1999 David Edelsohn - - * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note. - -Sun Jun 27 02:39:08 1999 Richard Henderson - - * jump.c (jump_optimize_1): Validate the cmov copy to a temporary. - -Sat Jun 26 17:18:18 1999 David Edelsohn - - * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output. - -Fri Jun 25 11:33:24 1999 Richard Henderson - - * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4. - -Fri Jun 25 13:41:25 1999 David Edelsohn - - * rs6000.c (output_toc): Always use hex values for floating-point - constants. Store single-precision values in upper-half of TOC - entry in 64-bit mode. - * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64 - to final constraints. - (fix_truncdfsi2 splitter): Change pattern matching fctiwz. - (fctiwz): Improve accuracy of RTL for pattern. - -Fri Jun 25 11:26:38 1999 Gavin Romig-Koch - - * expr.c (expand_expr): Allow RTL_EXPR's through the - MAX_INTEGER_COMPUTATION_MODE checks. - -Fri Jun 25 06:06:37 1999 Richard Henderson - - * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define - such that MASK_SUPPORT_ARCH is not negative. - -Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (verify_dominator): Properly handle ADDR_VEC and - ADDR_DIFF_VEC insns that appear inside loops. - -Thu Jun 24 22:54:05 1999 David Edelsohn - Jeff Law - - * rs6000.md (movdf_hardfloat32): Revert previous patch. - Handle LO_SUM the same as offsettable in cases 1 and 2. - * rs6000.c (find_addr_reg): Revert previous patch. - -Thu Jun 24 22:43:12 1999 Philippe De Muyter - - * system.h (strstr): New external function declaration. - * acconfig.h (NEED_DECLARATION_STRSTR): New define slot. - * configure.in (GCC_NEED_DECLARATIONS): Check for strstr. - * config.in, configure: Rebuilt. - -1999-06-24 Tom Tromey - - * gcc.c (main): Read user-specified specs files after computing - additional startfile_prefixes. - -Thu Jun 24 15:00:47 1999 Mark Mitchell - - Revert these two patches: - - Thu Jun 17 21:34:24 1999 J"orn Rennecke - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - - Thu Jun 17 17:22:07 1999 J"orn Rennecke - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - (recombine_givs): Set ix field after sorting. - -Wed Jun 23 21:26:00 1999 J"orn Rennecke - - * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p - for the parts of an UNSPEC / UNSPEC_VOLATILE. - -1999-06-23 Bruce Korb - - *fixinc/inclhack.def: Add fix development commentary - (read_ret_type): reactivate and add selection clause - (zzz_*): tweak output file name to match what is used in hackshell.tpl - *fixinc/{fixincl.x|inclhack.sh}: regen - -Wed Jun 23 00:48:21 1999 Jason Merrill - - * expr.c (expand_expr): STRIP_NOPS before checking against - MAX_INTEGER_COMPUTATION_MODE - (check_max_integer_computation_mode): Likewise. - -Tue Jun 22 20:23:43 1999 Jim Wilson - - * md.texi (smul@var{m}3_highpart): Add missing 's' prefix. - -1999-06-22 Jim Wilson - - * expr.c (store_expr): When target is a promoted subreg, return a - promoted subreg as a result. - -Tue Jun 22 17:14:58 1999 Michael Meissner - - * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU - coding standards. - (dwarf2out_define): Mark unused parameters appropriately. - (gen_unspecified_parameters_die): Ditto. - (gen_subprogram_die): Fix signed/unsigned warnings. - (gen_variable_die): Ditto. - -1999-06-22 Bruce Korb - - * fixinc/inclhack.def(end_else_label): combined else_label - and endif_label and fixed the sed expression. - *fixinc/{fixincl.x|inclhack.sh}: regen - -Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting - 'x' when handling non-offsettable addresses - -Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com) - - * final.c (shorten_branches): Don't try to split an insn that has - been deleted. - -Mon Jun 21 12:47:39 1999 Mark Mitchell - - * config/mips/mips.c (symbolic_expression_p): New function. - (mips_select_rtx_section): Put symbolic expressions in the - data section, not the read-only data section. - -Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (find_addr_reg): Handle LO_SUM addresses. - -Mon Jun 21 20:10:42 1999 Richard Henderson - - * collect2.c (main): Log frame table count. - (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. - (scan_prog_file) [COFF]: Handle frame tables. - - * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. - (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. - * alpha/elf.h: Undef them again. - * alpha/vms.h: Remove their definitions. - -Tue Jun 22 03:17:53 1999 J"orn Rennecke - - * sh.c (machine_dependent_reorg): When fixing up fp pcloads, - remove the clobber of r0 and change the REG_UNUSED note to - REG_INC. - -1999-06-21 Jakub Jelinek - - * real.c (ereal_from_double): Fix for 64-bit big endian hosts. - * emit-rtl.c (gen_lowpart_common): Add case for hosts where double - fits in HOST_WIDE_INT and one uses union to access a long constant - as double. - -Mon Jun 21 17:18:25 1999 Richard Henderson - - * sparc.c (sparc_override_options): Don't allow profiling for - code models other than medlow. - (sparc_function_profiler): New function from old FUNCTION_PROFILER - macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION. - (sparc_function_block_profiler): Likewise. Use user_label_prefix. - (sparc_block_profiler): Likewise. - (sparc_function_block_profiler_exit): Likewise. - * sparc.h (FUNCTION_PROFILER): Call new sparc.c function. - (FUNCTION_BLOCK_PROFILER): Likewise. - (BLOCK_PROFILER): Likewise. - (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. - (MCOUNT_FUNCTION): New. - * sparc/pbd.h (FUNCTION_PROFILER): Delete. - (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. - * sparc/sun4o3.h (FUNCTION_PROFILER): Delete. - (MCOUNT_FUNCTION): New. - * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete. - (BLOCK_PROFILER): Delete. - (MCOUNT_FUNCTION): New. - -Mon Jun 21 14:11:29 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Fix typo in case 2. - -Mon Jun 21 12:27:17 1999 Vladimir Makarov - - * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Add the macros. - - * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - -Mon Jun 21 14:58:42 1999 Nick Clifton - - * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu - types. - -Mon Jun 21 06:22:21 1999 Mark Elbrecht - - * i386/djgpp.h (LIB_SPEC): New. - (STARTFILE_SPEC): New. - - * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete. - -Mon Jun 21 06:19:33 1999 Philippe De Muyter - - * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in - compiler flags. - - * system.h (WSTOPSIG): New macro. - -Mon Jun 21 05:33:15 1999 Mumit Khan - - * c-pragma.c (push_alignment): Don't ignore alignments greater than - 4 bytes. - (insert_pack_attributes): Take into account member natural - alignment. - - * i386/winnt.c (exports_head): New static variable. - (i386_pe_record_exported_symbol): New function. - (i386_pe_asm_file_end): Use. - * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported - symbols to be emitted at end of assembly. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - - * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and - -iwithprefix. - -Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced - in last change. - -Sun Jun 20 17:27:20 1999 Richard Henderson - - * haifa-sched.c (sched_analyze_1): Use free_list instead of - zapping reg_last_uses directly. - (sched_analyze_2, sched_analyze_insn): Likewise. - (sched_analyze): Likewise. Don't clear reg_last_uses on calls. - -Sun Jun 20 16:57:29 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Use worst case insn length - attributes for cases 1 and 2. - -Sat Jun 19 22:52:55 1999 Richard Henderson - - * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered - instead of set. - -Sat Jun 19 05:40:07 1999 Philip Blundell - - * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN. - -Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use - PIC_OFFSET_TABLE_REGNUM for general alloaction. - (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register - must be stacked if it is used for PIC accesses. - * arm.c (use_return_insn): Handle PIC register specially. - (output_return_instruction): Likewise. - (output_func_{prologue,epilogue}): Likewise. - (output_expand_prologue): Likewise. - - * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf. - (*strsi_predec): Renamed from *strqi_predec. - (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc. - (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec. - - * arm.c (arm_override_options): Remove warning about PIC code - not being supported. - -Fri Jun 18 23:47:06 1999 David Edelsohn - - * rs6000.c (find_addr_reg): New function. - * rs6000.h (find_addr_reg): Declare. - (offsettable_addr_operand): Delete. - * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads - from and stores to GPRs. - -Fri Jun 18 15:44:18 1999 Richard Henderson - - * alpha.c (alpha_expand_block_move): Use get_insns rather than - gen_sequence as argument to emit_no_conflict_block. - -Fri Jun 18 07:02 1999 Bruce Korb - - * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX - * fixinc/inclhack.def(dgux_int_varargs): script must end with \n - *fixinc/fixincl.x: regen - *fixinc/inclhack.sh: regen - -Thu Jun 17 15:06:10 PDT 1999 Don Lindsay - - * added support for -mpcrel (PC relative addressing for m68k) - based on code done by Michael Tiemann . - * invoke.texi (m68000 options): Add documentation for -mpcrel flag. - * m68k.c (print_operand_address): Handle 32-bit PIC case. - (comments for general_src_operand): Add some explanation - about EXTRA_CONSTRAINTS. - (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel. - * m68kelf.h (OVERRIDE_OPTIONS): Ditto. - (LEGITIMATE_PIC_OPERAND_P): Fix typo. - (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case. - * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o. - (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro. - (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic - if not already set. - (OVERRIDE_OPTIONS): Merge in changes from m68k.h. - * m68k.h (TARGET_PCREL): New target flag. - (TARGET_SWITCHES): Add "pcrel" as a recognized switch. - (OVERRIDE_OPTIONS): Add checks for -mpcrel. - (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that - contains a SYMBOL_REF. Relax this constraint during reload, since - we want to use the predicates, not reload's built-in concept of a - valid memory address, to control what insns need reloading. - (EXTRA_CONSTRAINT): Define constraints to accept pc-relative - operands (essentially 'g', 'm', and 's' under normal circumstances). - * m68k.c (print_operand): Cause printing of pc-relative addresses - to include pc register. - (print_operand_address): Ditto. - (general_src_operand): Accept operands that are not only - general_operands, but are also valid when used as a pc-relative - source. - (nonimmediate_src_operand): Similar, for nonimmediate_operands. - (memory_src_operand): Similar, for memory_operands. - (pcrel_address): New predicate to accept the special case of a - pc-relative address. - * m68k.md (many patterns): Rewrite common SImode, HImode, and - QImode insns to accept *_src_operand instead of *_operand where - pc-relative operands can fit. For example, a pc-relative operand - can be used as a memory source operand for addsi3, but not as a - memory destination. - * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h. - -Fri Jun 18 09:11:07 1999 Nick Clifton - - * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe - .thumb_set pseudo op to mark aliases of thumb functions. - -Wed Jun 16 18:19:13 1999 Nick Clifton - - * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in - preference to ASM_OUTPUT_DEF, if it is defined. - - * tm.texi: Document new, optional target macro - ASM_OUTPUT_DEF_FROM_DECLS. - -Thu Jun 17 15:07 1999 Bruce Korb - - * fixincludes: ISCNTL patch - * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL(). - (dgux_int_varargs): new for DG/UX - * fixinc/{fixincl.x,inclhack.sh}: Regenerated. - -Thu Jun 17 21:34:24 1999 Jeff Law - - * invoke.texi (ia32 options): Fix typo. - -Thu Jun 17 21:34:24 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - -Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (move_movables): Note issues with replacing REGs with - SUBREGs. - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly. - -Thu Jun 17 13:28:30 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): Fix typo. - - * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and - the reference to `mcount' was not correct for the ELF on FreeBSD. - -Thu Jun 17 17:22:07 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - - (recombine_givs): Set ix field after sorting. - -Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Tighten checks for when it is safe - to safe to extract a subword out of a REG. - -Thu Jun 17 01:45:24 1999 J"orn Rennecke - - * sh.md (mulsi3): Don't add a no-op move at the end. - -Wed Jun 16 20:29:00 1999 J"orn Rennecke - - * cse.c (cse_insn): Don't put hard register source into tables for - the last insn of a libcall. - -Wed Jun 16 19:44:33 1999 J"orn Rennecke - - * loop.c (strength_reduce): Insert sets of derived givs at every - biv increment, even if it's the only one. - -Wed Jun 16 10:33:02 1999 Jason Merrill - - * dwarfout.c (add_incomplete_type): New fn. - (output_type): Call it. - (retry_incomplete_types): New fn. - (dwarfout_finish): Call it. - - From Eric Raskin : - (output_type): Output types for bases. - -Tue Jun 15 12:51:23 1999 Alexandre Oliva - - * mips.c (mips_output_conditional_branch): Add `break' - between `default' label and `close braces'. - -Tue Jun 15 01:55:20 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library - specifications and make it realistic. - (LIB_SPEC): Likewise. - -Mon Jun 14 15:38:43 1999 Jim Wilson - - * config/mips/mips.c (mips_secondary_reload_class): Check for - (PLUS (SP) (REG)) and return appropriate register class. - * config/mips/mips.md (reload_insi): Delete predicate for operand 1. - Handle (PLUS (SP) (REG)). - (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn. - (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead - of emit_insn for tablejump. - -Mon Jun 14 17:26:40 1999 David Edelsohn - - * rs6000.c (output_prolog): RS6000_CALL_GLUE must be - asm_fprintf format string by itself. - (output_function_profiler): Likewise. - -Mon Jun 14 12:57:38 1999 David Mosberger - - * combine.c (simplify_logical, case AND): Only call - simplify_and_const_int if the mode is no wider than HOST_WIDE_INT - or the constant is positive. - -Mon Jun 14 11:43:41 1999 Nick Clifton - - * configure.in: Fix typo in rs6000-ibm-aix4 case. - * configure: Regenerate. - -Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not - require a sub-version #. - * configure: Rebuilt. - -1999-06-14 Robert Lipe (robertlipe@usa.net) - - * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition. - -Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell - - * c-typeck.c (process_init_element): Detect excess elements in - char array initializer. - -1999-06-14 Andreas Jaeger - - * gcc.texi: Mention gcc 2.96 instead of egcs 1.00. - -Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn - - * invoke.texi (Option Summary): Add -fpermissive flag. - -Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands - that require PIC code sequences. - -Wed Jun 9 16:29:01 1999 Nick Clifton - - * configure.in: Add new target: thumb-elf. - * configure: Regenerate. - * config/arm/t-thumb-elf: New file: Makefile fragment for - thumb-elf build. - * config/arm/telf.h: New file: Header file for thumb-elf - build. - -Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument. - * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide - initializers is some circumstances. - - * fixinc/inclhack.def (endif_label): Add additional selector for - more bogus stuff after #endif statements. - * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. - -Thu Jun 10 20:44:36 1999 Mumit Khan - - * i386/cygwin.h (SET_ASM_OP): Define. - -Thu Jun 10 20:37:57 1999 Mumit Khan - - * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. - -Thu Jun 10 19:23:00 1999 J"orn Rennecke - - * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the - latter. - - * sh.md (ic_invalidate_line_i): Remove second alternative. - -Thu Jun 10 06:55 1999 Bruce Korb - - *fixinc/inclhack.def(sun_auth_proto): We do not know how to - test for the presence of valid prototypes. Delete bypass expr. - (ioctl_fix_ctrl): Correct the selection expression. - (no_double_slash): Correct quoting rules - *fixinc/fixincl.x: regen - *fixinc/inclhack.sh: regen - -Thu Jun 10 15:08:15 1999 Nick Clifton - - * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t. - -Wed Jun 9 15:57:57 1999 Franz Sirl - - * rs6000.md (movsi_got_internal_mem): Delete. - * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM. - (GOT_TOC_REGNUM): Delete. - (PIC_OFFSET_TABLE_REGNUM): Define. - (FINALIZE_PIC): Disable. - * rs6000.c (rs6000_got_register): New code for fixed pic register. - (rs6000_replace_regno): Delete. - (rs6000_finalize_pic): Likewise. - (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM. - -Wed Jun 9 19:44:26 1999 J"orn Rennecke - - * loop.c (loop_insn_first_p): Don't compare LUIDs when P - is a note; use <= for the compare; advance P while it is - a NOTE. - -Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (no_double_slash): Fix quoting for test. - * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. - - * varasm.c (remove_from_pending_weak_list): Verify t->name - is non-NULL before passing it to strcmp. - -Wed Jun 9 06:50 1999 Bruce Korb - - *fixinc/inclhack.def(sun_auth_proto): bypass the patch if - the typed arguments are not part of a comment - (ioctl_fix_ctrl): Added a purpose comment - *fixinc/fixincl.x: regenerate - *fixinc/inclhack.sh: regenerate - -Wed Jun 9 22:57:02 1999 Michael Hayes - - * invoke.texi: Add C4x invocation docs. - -Wed Jun 9 22:34:38 1999 Michael Hayes - - * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS): - Define new macros. - * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use - TARGET_EXPOSE_LDP. - (c4x_legitimize_reload_address): New function. - * config/c4x/c4x.md: Update docs. - -Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com) - - * fixincludes: Avoid removing '.'. - * fixinc/fixinc.svr4: Likewise. - * fixinc/fixinc.winnt: Likewise. - * fixinc/inclhack.tpl: Likewise. - * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt. - -1999-06-09 Kaveh R. Ghazi - - * fixinc/inclhack.def (sun_catmacro): Escape parens in the select - pattern. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - -Wed Jun 9 03:10:34 1999 Mumit Khan - - * c-pragma.c (handle_pragma_token): Handle `#pragma pack()' - correctly. - -Tue Jun 8 13:06:15 1999 Jim Wilson - - * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000. - * configure: Regenerate. - -Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) - - * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute - values. - -Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (avoid_bool): Also catch - "typedef [unsigned] int bool". - * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - - * m68k/x-hp3bsd44: Delete obsolete and incorrect file. - * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44. - * configure: Rebuilt. - -Mon Jun 7 22:05:03 1999 Mark Kettenis - - * config/i386/gnu.h: Include right after , - such that we can override its definitions if necessary. - (CPP_SPEC): New define. Support processor specific predefines via - %(cpp_cpu). - (CC1_SPEC): New define. Support processor specific compiler - options via %(cc1_cpu). - (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for - -static. - -1999-06-07 Kaveh R. Ghazi - - * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace - between sed's -e flag, and the open-quote following it. - * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - -Mon Jun 7 20:34:20 1999 Robert Lipe - Jeffrey A Law (law@cygnus.com) - - * varasm.c (assemble_start_function): Remove the function - from the pending weak decls list when we define a function. - (assemble_variable): Similarly for variables. - (weak_finish): Ignore items on the list with a NULL name. - (remove_from_ending_weak_list); New function to "remove" an item - from the pending weak declarations list. - -Mon Jun 7 19:27:07 1999 Jerry Quinn - - * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns. - -Mon Jun 7 14:07:39 1999 Dave Brolley - - * c-lex.c (GETC): Redefine to call getch. - (UNGETC): Redefine to call put_back. - (putback_buffer): New structure type. - (putback): New static structure. - (getch): New function. - (put_back): New function. - (yylex): Replace unused bytes from bad multibyte character. - -Mon Jun 7 13:33:39 1999 Dave Brolley - - * cpplib.c (do_define): Cast `alloca' return value. - (do_include, do_undef, do_pragma): Likewise. - * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return - values. - * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values. - * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value. - -Sun Jun 6 11:58:34 1999 Jakub Jelinek - - * sparc.md (abstf2): This should be an expand. - (split after abstf2_notv9): Fix mode. - (abstf2_hq_v9): New pattern. - (abstf2_v9): Only use when no hard quad. - (absdf2_v9): Fix if target is not the same as source. - (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2): - Add correct output constraints. - -Sat Jun 5 17:04:16 1999 Craig Burley - - From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100: - * invoke.texi: Clarify text vis-a-vis Intel CPUs. - -Sat Jun 5 12:11:24 1999 Mark Mitchell - - * mips.h (mips_output_conditional_branch): New function. - (mips_adjust_insn_length): Likewise. - (ASSEMBLER_SCRATCH_REGNUM): New macro. - (ADJUST_INSN_LENGTH): Likewise. - * mips.c (print_operand): Add `F' and `W' for floating-point - comparison opcodes. - (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths - are now in bytes. - (mips_adjust_insn_length): New function. - (mips_output_conditional_branch): New function. - * mips.md (length): Adjust attribute definition to handle - conditional branches. Change lengths to bytes, rather than - instructions throughout. Remove length attribute from - instructions whose length is four bytes, and rely on the default - instead. - (dslot): Fix typo in comment. - Reword conditional branch patterns to use - mips_output_conditional_branch. - -Fri Jun 4 13:30:27 1999 Rainer Orth - - * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads. - (LIB_SPEC): Likewise. - Link with -lprof1_r for -g/-pg. - -1999-06-04 Andreas Schwab - - * loop.c (check_dbra_loop): Fix change of Jan 19. - -Fri Jun 4 00:12:40 1999 Marc Espie - - * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define. - (STARTFILE_SPEC): Define, override the svr4.h version. - (ENDFILE_SPEC): Likewise. - -Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h - * fixinc/fixincl.x: Regenerated. - * fixinc/inclhack.sh: Regenerated. - -Fri Jun 4 05:42:23 1999 J"orn Rennecke - - * sh.c (barrier_align): Don't return early for normal branch/barrier - when optimizing for SH2. - -Thu Jun 3 22:27:50 1999 Robert Lipe - - * i386/udk.h (LINK_SPEC): Correct linker search path for - system libraries. - -Fri Jun 4 03:20:40 1999 J"orn Rennecke - - * sh.c (fixup_addr_diff_vecs): Emit braf reference label. - (braf_label_ref_operand): Delete. - * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. - * sh.md (casesi_jump_2): Operand1 is now the inside of a - label_ref, and has no predicate. - The patten has a predicate to guard against invalid substitutions. - (dummy_jump): Delete. - (casesi): Update use of casesi_jump_2. - -Thu Jun 3 07:48 1999 Bruce Korb - - *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression - *fixinc/fixincl.x: regenerate - *fixinc/inclhack.sh: regenerate - -Thu Jun 3 02:15:07 1999 Jason Merrill - - * dwarf2out.c (add_incomplete_type): New fn. - (gen_struct_or_union_type_die): Call it. - (retry_incomplete_types): New fn. - (dwarf2out_finish): Call it. - -Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (insert_insn_end_bb): Correct placement of insns when the - current block starts with a CODE_LABEL and ends with a CALL and - we can not find all the argument setup instructions for the CALL. - -Wed Jun 2 15:44:15 1999 Mark Mitchell - - Revert this change: - * fold-const.c (fold): STRIP_NOPS when deciding whether or not - something is a candidate for optimize_bit_field_compare. - -Wed Jun 2 21:53:05 1999 J"orn Rennecke - - * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. - -Wed Jun 2 12:25:55 1999 Richard Henderson - - * alpha.c (override_options): Thinko in last patch. - - * alpha/osf.h (CPP_SUBTARGET_SPEC): Define. - (LIB_SPEC): Recognize -pthread. - -Wed Jun 2 08:42:55 1999 Nick Clifton - - * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with - definition in config/arm/coff.h - * config/arm/coff.h: Add comment about USER_LABEL_PREFIX. - -Wed Jun 2 07:07 1999 Bruce Korb - - * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark - fixes that need "file=xxx\n" prepended before invocation - (start_fixer - new): starting the fixer process is complex enough - to warrent its own routine. It prepends the "file=xxx\n" stuff. - (process): uses the new routine; omit usage of putenv() - * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT - * fixinc/fixincl.x: regenerate - -Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com) - - * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc) - and version #s (1.1 -> 2.96) as needed. - * README.g77: Kill way out of date file in the toplevel directory. - -Wed Jun 2 00:52:34 1999 David O'Brien - - * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h, - i386/freebsd-elf.h no longer requires it. Instead include svr4.h. - * configure: Rebuilt. - * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define. - (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise. - (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise. - (SWITCH_TAKES_ARG): Likewise. - * i386/freebsd.h: Remove FREEBSD_NATIVE support. - * config/t-freebsd: Moved from config/i386/ so it can used for all - FreeBSD targets. - -Mon May 31 02:22:55 1999 Philippe De Muyter - - * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o. - -Wed Jun 2 00:08:34 1999 Robert Lipe - - * configure.in (i[34567]86-*-udk*): Install headers with cpio. - * configure: Rebuilt. - -Tue Jun 1 19:06:22 1999 David Edelsohn - - * rs6000/aix41.h (RS6000_CALL_GLUE): Define. - * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise. - * rs6000/rs6000.c (rs6000_file_start): Use putc. - (rs6000_output_load_toc_table): Same. - (output_prolog, output_mi_thunk): Same. - * rs6000/rs6000.h (SELECT_SECTION): Formatting. - (ASM_GLOBALIZE_LABEL): Use putc. - -Mon May 31 15:23:23 1999 Richard Henderson - - * alpha.md (reload_*_help): New patterns and splitters. - (reload_*): Use them. - (mov[qh]i): Likewise. - -Mon May 31 11:48:07 1999 Mark Mitchell - - * cccp.c (handle_directive): Handle backslash-newlines in quoted - strings correctly. - -Mon May 31 09:36:11 1999 Cort Dougan - - * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. - -Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com) - - * flow.c (mark_regs_live_at_end, insn_dead_p, - mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM - and HARD_FRAME_POINTER_REGNUM special treatment if reload - hasn't run or the frame pointer is needed. - * haifa-sched.c (attach_deaths): Likewise. - * sched.c (attach_deaths): Likewise. - -Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): Only set CAN_REACH_END if - calculate_can_reach_end returns nonzero. - - * configure.in (native gas tests): Search for an assembler in the - same manner that the installed compiler will. - * configure: Rebuilt. - * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too. - - * alias.c (find_base_term): Improve handling of addresses - constructed from binary operations. - -Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com) - - * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces. - -Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com) - - * function.h (cleanup_label, frame_offset): Declare. - (tail_recursion_label, tail_recursion_reentry): Likewise. - (arg_pointer_save_area, rtl_expr_chain): Likewise. - * stmt.c (cleanup_label, frame_offset): Delete extern declarations. - (tail_recursion_label, tail_recursion_reentry): Likewise. - (arg_pointer_save_area, rtl_expr_chain): Likewise. - -Sat May 29 19:08:10 1999 Philip Blundell - - * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already - defined. - * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define. - (MAX_OFILE_ALIGNMENT): Define. - -Fri May 28 21:40 1999 Robert Lipe - - * fixincl.c: Replace local include scheme with #includes of - gansidecl.h and system.h. - * procopen.c: Likewise. - * server.c: Likewise. - -Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com) - - * i386/t-dgux (EXTRA_PARTS): Add crti.o - (crti.o): Add build rule and dependencies. - * fixinc/fixinc.dgux: Use modified _int_varargs.h - -Fri May 28 03:41:02 1999 Franz Sirl - - * rs6000/sysv4.h (CC1_SPEC): Add support for -profile - (LIB_LINUX_SPEC): Likewise. - (LIB_LINUX_SPEC): Add support for -pthread - (CPP_OS_LINUX_SPEC): Likewise. - (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are - specified. - -Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org) - - * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for - conditional move. - (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support. - (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison - for IEEE math and CC_FCOMI. - (put_jump_code): No IEEE if CC_FCOMI is set. - -1999-05-27 Andreas Schwab - - * fold-const.c (fold_truthop): Make the field reference unsigned - when converting a single bit compare. - -Thu May 27 02:40:48 1999 J"orn Rennecke - - * loop.c (strength_reduce): Don't do biv->giv conversion on constants. - -Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com) - - * varasm.c (STRIP_NAME_ENCODING): Remove default definition. - * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm - version did. - - * reload.c (push_reload): Do not call remove_address_replacements - when presented with identical optional reloads. - -Wed May 26 14:18:05 1999 Richard Henderson - - * alpha.h (MASK_FIX, TARGET_FIX): New. - (MASK_*): Reorganize constants. - (CPP_AM_FIX_SPEC): New. - (TARGET_SWITCHES): Add FIX. - (EXTRA_SPECS): Likewise. - (CPP_CPU_EV6_SPEC): Use FIX, not CIX. - (SECONDARY_MEMORY_NEEDED): Likewise. - (REGISTER_MOVE_COST): Likewise. - * alpha.c (override_options): Add FIX support. Always use - ALPHA_TP_PROG for ev6. - * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX. - * alpha/elf.h (ASM_FILE_START): Look at FIX too. - * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX. - -Wed May 26 09:53:05 1999 Mark Mitchell - - * fold-const.c (fold): STRIP_NOPS when deciding whether or not - something is a candidate for optimize_bit_field_compare. - -Wed May 26 09:40:02 1999 Mark Mitchell - - * gcc.texi (Passes): Document branch-shortening. - * invoke.texi (Debugging Options): Document the fact that `-dp' - outputs length information for instructions. - -Wed May 26 08:49:31 1999 Nick Clifton - - * flow.c: Revert previous delta. - -Wed May 26 06:05:10 1999 Nick Clifton - - * flow.c (insn_dead_p): Check against frame_pointer_rtx not - FRAME_POINTER_REGNUM. - (mark_set_1): Ditto. - (mark_used_regs): Ditto. - -Wed May 26 02:19:31 1999 Philip Blundell - - * arm.h (NEED_PLT_GOT): Fix mistake in last change. - (GOT_PCREL): New macro. Define to 1 if not already defined. - * arm/elf.h (GOT_PCREL): Define to 0. - * arm.c (arm_finalize_pic): Take into account the setting of - GOT_PCREL. - -Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com) - - * output.h (STRIP_NAME_ENCODING): Provide default definition. - * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING. - - * flow.c (mark_set_1): Do not record BLKmode stores as dead - store elimination candidates. - -Tue May 25 08:55:57 1999 Gavin Romig-Koch - - * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if - TARGET_GAS. - -Mon May 24 20:30:08 1999 Jim Wilson - - * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. - Add use of x-aix41-gld. - -Mon May 24 16:44:09 1999 Jakub Jelinek - - * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define. - (ASM_OUTPUT_DESTRUCTOR): Define. - -Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the - last CODE_LABEL in a loop if we have previously passed a jump - to the top of the loop. - -Mon May 24 07:56:29 1999 Nick Clifton - - * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when - applying Philip's patch. - -Mon May 24 01:02:12 1999 Mark Mitchell - - * stmt.c (expand_end_bindings): Ignore any elements of VARS that - are not VAR_DECLs. - -Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Grow reg_single_usage as needed. - -Sun May 23 10:13:20 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. - Also remove a useless comment. - -Sun May 23 10:05:23 1999 Jerry Quinn - - * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. - -Sat May 22 21:02:06 1999 David Edelsohn - - * collect2.c (main): Only generate import or export file and add - to link arguments if non-empty. Use xmalloc not alloca. - (write_{export,import}_file): Delete. - (write_aix_file): New function. - (locatelib): Use xmalloc not malloc. - (GCC_OK_SYMBOL): Do not check type if aix64. - -Sat May 22 09:35:51 1999 Philip Blundell - - Based on patch by Scott Bambrough and Pat Beirne: - * config/arm/arm.c (making_const_table): New variable. - * config/arm/arm.h (making_const_table): Declare. - (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if - appropriate. - * config/arm/arm.md (consttable_4, consttable_8, consttable_end): - Keep track of when we are building the constant table. - -Sat May 22 09:34:22 1999 Philip Blundell - - * config/arm/arm.c (arm_override_options): Fix erroneous warning - message. - -Sat May 22 09:06:33 1999 Nick Clifton - - * config/arm/arm.h (NEED_PLT_GOT): Only define if not already - defined. - -Sat May 22 07:17:05 1999 Nick Clifton - - * tm.texi (FUNCTION_ARG): Correct description of a stack element - in a PARALLEL. - -Sat May 22 01:27:49 1999 Mark Mitchell - - * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE. - -Fri May 21 21:19:02 1999 Franz Sirl - - * rs6000.c (output_mi_thunk): Enable full support again. - -Fri May 21 20:09:52 1999 J"orn Rennecke - - * sh.h (BRANCH_COST): Define. - -Thu May 20 10:00:42 1999 Stephen L Moshier - - * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. - -Thu May 20 09:58:57 1999 Jan Hubicka - - * function.c (assign_stack_local): Align stack slot propertly. - (assign_outer_stack_local): Likewise. - -Thu May 20 10:38:43 1999 Mark Mitchell - - * expr.h (lang_expand_constant): Declare. - * toplev.c (lang_expand_constant): Define it. - * varasm.c (output_constant): Use it. - -Thu May 20 11:28:53 1999 Kaveh R. Ghazi - - * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide): - Change function definitions to K&R style. - -Thu May 20 08:16:39 1999 Bruce Korb - - * fixinc/fixincl.c: We must not ignore SIGCLD now. - -Thu May 20 07:06:39 1999 Alexandre Oliva - - * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options - * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments - (several places): omit static initialization - (process): use single fd, since only the read fd is used - * fixinc/gnu-regex.c: define 'const' away, if not supported - * fixinc/procopen.c(several places): omit static initialization - * fixinc/server.c: define 'volitile' away, if not supported - -1999-05-20 Andreas Schwab - - * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use - asm_fprintf and %L to generate the label name. - * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels. - -Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (can_reverse_comparison_p): Do not abort if the comparison - insn for a conditional jump can not be found. - -Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com) - - * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations - on variables in specific sections other than .sbss and .sdata. - -Wed May 19 03:56:56 1999 Mark Mitchell - - * stmt.c (expand_return): Call start_cleanup_deferral and - end_cleanup_deferral around conditional code. - -Wed May 19 08:40:08 1999 Bruce Korb - - * fixinc/fixincl.tpl: Avoid depending on ANSI C features for - filename lists. Utilizes new "krstr" AutoGen function. - * fixinc/fixincl.x: Rebuilt. - -Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz) - - * i386.c (output_float_compare): Avoid GNU-C extensions. - -Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump to distinguish mainline tree from the - gcc-2.95 branch. - -See ChangeLog.1 for earlier changes. +See ChangeLog.2 for earlier changes. diff --git a/gcc/ChangeLog.2 b/gcc/ChangeLog.2 new file mode 100644 index 00000000000..b3b266b2081 --- /dev/null +++ b/gcc/ChangeLog.2 @@ -0,0 +1,14469 @@ +Fri Dec 31 19:10:31 1999 Richard Kenner + + * function.c (update_temp_slot_address): Handle case where sum of + temporary address plus offset in register is a valid address. + +1999-12-30 Herman A.J. ten Brugge + + * genrecog.c (change_state) Corrected typo. + +1999-12-30 Kaveh R. Ghazi + + * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free, + getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc, + strerror, getrlimit, setrlimit, abort): Add prototype arguments. + +1999-12-30 Bernd Schmidt + + * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE + case, expand GT comparisons correctly. Fix a comment before this + part of the code. + +1999-12-30 Gabriel Dos Reis + + * dwarfout.c: Include "frame.h" + * dwarf2out.c: Likewise. + * Makefile.in (dwarfout.o): Depend on frame.h + (dwarf2out.o): Likewise. + +1999-12-29 "Martin v. Loewis" + + Restore i386 binary compatibility in Dwarf EH info. + * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old + value of FIRST_PSEUDO_REGISTER. + * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER. + (struct frame_state): Use DWARF_FRAME_REGISTERS. + * dwarfout.c (output_reg_number): Ditto. + * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto. + (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS. + +1999-12-29 Bruce Korb + + * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK + * fixinc/fixincl.tpl(TEST_CT): Just do the existence test once + (_RE_CT): not needed + * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c + rewritten to scan the file text once only + "template<..." test added + * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c + (is_cxx_header): declaration added + * fixinc/fixtests.c(is_cxx_header): removed + (apply_fix_p_t): removed + (double_slash_test): is_cxx_header is only called once now + * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG + * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state + within the templates. + The borken spelling of "broken" was fixed. + * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages + The default level depends on FIXINC_DEBUG. + +1999-12-29 Kaveh R. Ghazi + + * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h. + Otherwise provide a declaration for atexit. + (init_dummy): Make sure dummy call to atexit is nevertheless + called with correct number of args. + + * frame.c: Update comments referring to other files. + + * libgcc2.c: Likewise. + +1999-12-29 Kaveh R. Ghazi + + * cse.c (free_element, get_element): Remove unused prototypes. + + * fold-const.c (extract_muldiv): Initialize variables `op0' and + `op1'. + + * jump.c (invert_exp): Add explicit braces to avoid ambiguous + `else' clauses. + +Wed Dec 29 12:44:54 1999 Donald Lindsay + + * configure.in,configure: case arm for mn10200-*-* now sets + float_format=i32 so that float.h will correctly claim "double" + to be 32 bits. Ran autoconf to generate configure from .in file. + +Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (conditional zero): If op1 is a register, force it into + the same register as op0. + +1999-12-28 Mark Mitchell + + * tree.h (BINFO_BASETYPES): Improve documentation. + +1999-12-28 Kaveh R. Ghazi + + * configure.in (--enable-checking): Use a more portable `for' + loop syntax. + +1999-12-28 Kaveh R. Ghazi + + * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h, + arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use. + + * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h: + Delete files. + + * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED): + Delete descriptions. + + * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h, + m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h, + m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h, + pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h, + xm-svr4.h: Remove all instances of sys_siglist handling. + +1999-12-27 Jakub Jelinek + + * config/sparc/sparc.md (cmp_zero_qi, + cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64, + cmp_zero_extendqidi2_andcc_set): New patterns. + +1999-12-28 Manfred Hollstein + + * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a. + (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define. + (fpgnulib.c, xfgnulib.c): Add rules. + * m68k/t-mot3300-gas: Likewise. + +1999-12-27 Ian Lance Taylor + + * configure.in: Avoid [[ by using test and changequote. Add + changequote required by 1999-12-14 change. + * configure: Rebuild. + +1999-12-27 Clinton Popetz + + * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix. + +1999-12-27 Christophe Jaillet + + * alias.c (nonlocal_reference_p): Add else for disjoint ifs. + * flow.c (find_use_as_address): Likewise. + * function.c (fixup_var_refs_1): Likewise. + (walk_fixup_memory_subreg, fixup_stack_1): Likewise. + * jump.c (invert_exp, redirect_exp): Likewise. + * loop.c (replace_call_address): Likewise. + (count_nonfixed_reads): Likewise. + * rtlanal.c (modified_between_p): Likewise. + (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise. + (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise. + * unroll.c (remap_split_bivs): Likewise. + +1999-12-27 Kaveh R. Ghazi + + * diagnostic.c (v_message_with_decl): Use .* format specifier + instead of building the format specifier width manually. + + * system.h (strsignal): Don't check HAVE_STRSIGNAL when + determining whether to provide a prototype. Remove the + sys_siglist clause in the conditional. + +1999-12-23 Martin v. Löwis + + * fold-const.c (operand_equal_p): Use memcmp to compare string + constants. + Suggested by D. J. Bernstein + +1999-12-17 Jakub Jelinek + + * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure + UNITS_PER_WORD and BITS_PER_WORD are compile time constants when + compiling libgcc2. + * config/mips/mips.h (TARGET_64BIT): Likewise. + * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise. + * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead + of {SI,DI}type and DIunion. Define these types to QI/HI modes on + dsps. Give routines proper names if SI/DI modes are not used. + * longlong.h: Use DWunion instead of DIunion. + +1999-12-26 Zack Weinberg + + * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING, + GC_CHECKING, GC_ALWAYS_COLLECT. + * configure.in: Allow --enable-checking with an argument + listing check modes to enable. + * config.in, configure: Rebuilt. + * ggc-page.c, ggc-simple.c: Define GGC_POISON (and + GGC_ALWAYS_VERIFY for ggc-simple.c) only if + ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if + ENABLE_GC_ALWAYS_COLLECT. + * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING + throughout. + * tree.h, tree.c: Change ENABLE_CHECKING to + ENABLE_TREE_CHECKING throughout. + +Sun Dec 26 07:48:20 1999 Richard Kenner + + * fold-const.c (fold_truthop): Properly check for FP RHS. + +1999-12-24 Mark Mitchell + + * toplev.h (note_deferall_of_defined_inline_function): Declare. + * toplev.c (note_deferral_of_defined_inline_function): New + function, split out from ... + (rest_of_compilation): ... here. Use it. + +Fri Dec 24 12:34:26 1999 Richard Kenner + + * expr.c (store_constructor): Don't call clear_storage if size is + variable. + +1999-12-24 Kaveh R. Ghazi + + * Makefile.in (toplev.o): Depend on loop.h. + + * dwarfout.c: Include tm_p.h. + + * emit-rtl.c (restore_emit_status): Mark parameter with + ATTRIBUTE_UNUSED. + + * final.c (final_scan_insn): Likewise. + + * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump, + flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find, + flow_depth_first_order_compute, flow_loop_pre_header_find, + flow_loop_tree_node_add, flow_loops_tree_build, + flow_loop_level_compute, flow_loops_level_compute, + flow_loop_outside_edge_p): Add prototypes. + (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED. + + * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack): + Mark with ATTRIBUTE_NORETURN. + + * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED. + + * local-alloc.c (no_conflict_p): Likewise. + + * loop.c (insert_bct): Hide definitions of variables with hidden + usage. + (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED. + + * regclass.c (memory_move_secondary_cost): Mark variable `mem' + with ATTRIBUTE_UNUSED. + (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED. + (reg_scan): Likewise. + + * reload.c (find_reloads): Remove unused variables `changed'. + + * reload1.c (reload_reg_class_lower): Don't unnecessarily cast + away const-ness. + (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED. + Remove unused variable `insn'. + + * toplev.c: Include loop.h. + (report_file_and_line): Remove unnecessary prototype. + + * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED. + + * unroll.c (biv_total_increment): Likewise. + +Thu Dec 23 23:15:22 1999 J"orn Rennecke + + * reload1.c (emit_input_reload_insns): Restore old behaviour + wrt. 'special' reloads. + +1999-12-23 Zack Weinberg + + * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on + hash.h. (cse.c): Don't depend on hashtab.h. + + * cse.c: Don't include hashtab.h. + (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes + of dead functions. + * ggc-simple.c: Don't include hash.h. + +1999-12-22 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Call + gen_abstract_function on our function context. + +Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson + + * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H. + +1999-12-23 Michael Hayes + + * config/c4x/c4x.c (c4x_address_cost): Add statement to default + case in switch. + +1999-12-22 Michael Hayes + + * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0 + constraints to "a!r". + +1999-12-21 Mark Mitchell + + * Makefile.in (calls.o): Depend on function.h. + (alias.o): Likewise. + +1999-12-21 Bernd Schmidt + + * reload1.c (emit_reload_insns): Break out code and variables into... + (input_reload_insns, other_input_address_reload_insns, + other_input_reload_insns, input_address_reload_insns, + inpaddr_address_reload_insns, output_reload_insns, + output_address_reload_insns, outaddr_address_reload_insns, + operand_reload_insns, other_operand_reload_insns, + other_output_reload_insns): ... new static variables, and... + (emit_input_reload_insns, emit_output_reload_insns, do_input_reload, + do_output_reload): ... new functions. + +Tue Dec 21 07:06:36 1999 Richard Kenner + + * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0. + +1999-12-21 Michael Hayes + + * md.texi: Add c4x constraints documentation. + +1999-12-21 Martin v. Löwis + + * config/i386/dgux.c (struct option): Rename to + lang_independent_option. + (struct m_options): Add description field. + (output_options): Rename option type, add sep declaration, output + ix86_cpu_string and ix86_arch_string only if set. + (output_file_start): Rename option type. + +Mon Dec 20 23:15:36 1999 Mike Stump + + * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on + stmp-int-hdrs. + (libgcc2.a): Similarly. + +Mon Dec 20 23:06:47 1999 David Edelsohn + + * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss + with W_TYPE_SIZE == 32. Do not fall through to POWER architecture + for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER. + +Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable. + Remove redundant initialization of "frexpon" and "expon". + +Mon Dec 20 15:00:04 1999 Richard Kenner + + * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first. + + * expr.c (store_constructor): New argument SIZE; pass to clear_storage. + (store_constructor_field, expand_expr): Pass new arg. + +1999-12-20 Mark Mitchell + + * Makefile.in (explow.o): Depend on function.h. + + * stor-layout.c (set_sizetype): Fix typo. + +1999-12-20 Bernd Schmidt + + * function.c (cfun): Renamed from current_function. All users + changed. + * function.h (cfun): Rename declaration as well. + + * reload.h (struct insn_chain): Change live_throughout and dead_or_set + to be of type regset_head, not regset. All users changed by adding + address operator. + * reload1.c (new_insn_chain): Don't allocate regsets, just clear them. + +1999-12-20 Michael Hayes + + * config/c4x/rtems.h: New file. + +1999-12-19 Bernd Schmidt + + * reload1.c (spill_failure): Take class of failed reload as argument + and print it. Caller changed. + +Sun Dec 19 07:50:42 1999 Richard Kenner + + * rs6000.h (SUBTARGET_DEFAULT): New macro. + (TARGET_SWITCHES): Allow subtargets to default switches. + * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro. + +1999-12-18 Mark Mitchell + + * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize + in a main program. + +Sat Dec 18 20:42:43 1999 Richard Henderson + + * cccp.c (main): Define __STDC_VERSION__ as necessary. + * cppinit.c (cpp_handle_option): Likewise. + + * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to + determine when to define. + +Sat Dec 18 20:34:00 1999 Richard Henderson + + * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle + cmove with mismatched test and data modes. + +Sat Dec 18 20:30:15 1999 Richard Henderson + + * c-typeck.c (c_expand_start_case): Don't warn for long switch + in system headers. + +Sat Dec 18 16:28:43 1999 Richard Kenner + + * alias.c: Minor reformatting. + * flow.c: Likewise. + * regs.h: Likewise. + * stor-layout.c: Likewise. + * fold-const.c: Likewise. + (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign. + (struct cb_args, const_binop_1, const_binop): Pass type of arg, + not arg itself. + (size_int_wide): Cache nodes even if garbage collecting. + (twoval_comparison_p): Reenable SAVE_EXPR case if operand + of SAVE_EXPR has no side effects. + * cse.c: Move a comment. + * tree.c: Minor reformatting. + (int_size_in_bytes): Return -1 if constant overflows. + +Sat Dec 18 18:30:20 1999 J"orn Rennecke + + * unroll.c (copy_loop_body): Don't treat a REG like a PLUS. + +1999-12-18 10:42 -0800 Zack Weinberg + + * objc/objc-parse.c: Regenerate. This file must be rebuilt + after any change to c-parse.in, even if objc-parse.y didn't + change. Oops. + +1999-12-18 David S. Miller + + * toplev.c (rest_of_compilation): Restore BLOCK tree + reconstruction and branch shortening changes lost in + December 18th change. + +Sat Dec 18 05:29:29 1999 Scott Bambrough + + * config/arm/linux-elf.h: Change all instances of + ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS. + * config/arm/uclinux-elf.h: Likewise. + +1999-12-18 Gabriel Dos Reis + + * toplev.c (notice, vmessage, v_message_with_file_and_line, + v_message_with_decl, file_and_line_for_asm, + v_error_with_file_and_line, v_error_with_decl, v_error_for_asm, + verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl, + v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl, + v_pedwarn_with_file_and_line, vsorry, vnotice, count_error, + pfatal_with_name, fatal_io_error, need_error_newline, + last_error_function, last_error_tick, announce_function, + default_print_error_function, print_error_function, + report_error_function, fnotice, error_with_file_and_line, + error_with_decl, error_for_asm, error, set_fatal_function, fatal, + _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line, + warning_with_decl, warning_for_asm, warning, pedwarn, + pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to + diagnostic.c + (compile_file): Use fnotice instead of notice. Adjust call. + + * diagnostic.c: New file. + + * Makefile.in (OBJS): Include diagnostic.o + (diagnostic.o): Define dependence. + +1999-12-18 Michael Hayes + + * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0). + Tweak formatting. + +1999-12-18 Michael Hayes + + * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re. + +1999-12-17 13:21 -0800 Zack Weinberg + + * fixtests.c (is_cxx_header): New fn, split out of + double_slash_test. + (else_endif_label): Allow "#endif // comment" in C++ headers, + as determined by is_cxx_header. + * fixfixes.c (else_endif_label_fix): Update comment. + * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not + a tty. + * genfixes: Correct double thinko in commandline parsing. + * hackshell.tpl: Generate correct sh syntax for bypass + entries. + + * inclhack.def (all): Whenever an inserted preprocessor + conditional is split over multiple lines, use double + backslashes in this file so the fixed header will be readable. + + (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h + and add bypass entry for correct version of this header. + (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h. + (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h. + + (hpux8_bogus_inlines): New fix, split from... + (ultrix_atof_param) ... here. + (math_expression): Add bypass entry keyed to glibc comment + indicating the problem has been dealt with; disable + unnecessary sed operations; update commentary. + (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max, + add select and bypass entries, simplify shell operation. + (math_huge_val_ifndef): Split from math_gcc_ifndefs. + + (ip_missing_semi, rs6000_param, tinfo_cplusplus, + ultrix_atof_param): Add select entry. + (stdio_va_list, sunos_mather_decl): Add bypass entry. + (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the + comments with the fixes they describe. + + * c-parse.in (string action): Do not warn about ANSI string + concatenation in system headers. Affects C parser only. + * c-parse.y, c-parse.c, c-parse.h: Rebuild. + +1999-12-16 Jakub Jelinek + + * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if + compiling libgcc2 the macro depends always on arch cpp defines. + +Fri Dec 17 10:34:16 1999 Richard Earnshaw + + * loop.c (insert_loop_mem): Don't record MEMs from inside + EXPR_LISTs. + +Fri Dec 17 12:08:11 MET 1999 Jan Hubicka + + * regclass.c (regclass): Do not use flowgraph when not optimizing. + + * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV + notes too, create one when replacement failed, attempt to simplify + resulting notes. + (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL + or REG_EQUIV notes. + +1999-12-16 Mark Mitchell + + * crtstuff.c (__dso_handle): Declare. + (__cxa_finalize): Likewise. + (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is + non-NULL. + + * invoke.texi: Document -fuse-cxa-atexit. + + * tree.h (ptr_type_node): Document. + (const_ptr_type_node): Likewise. + +Fri Dec 17 01:32:38 MET 1999 Jan Hubicka + + * regmove.c (optimize_reg_copy_1): Ignore LOOP notes. + (optimize_reg_copy_2): Likewise. + (optimize_reg_copy_3): Likewise. + (fixup_match_2): Likewise. + (regmove_optimize): Likewise. + (fixup_match_1): Liekwise. + + * i386.md (HI to SImode promoting splitters): Rewrite. + (pushsf mem peep2): New. + (testhi to andhi peep2): Remove. + * i386.h (x86_promote_QImode): New. + (TARGET_PROMOTE_QImode): New. + (PREDICATE_CODES): Add promotable_binary_operator. + * i386.c (x86_promote_QImode0: New. + (promotable_binary_operator): New. + * i386-protos.h (promotable_binary_operator): New. + + * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify + condition. + (one_cmpl?i*): Pass "NOT" to unary_operator_ok. + +1999-12-16 Mark Mitchell + + * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H. + * function.c (insert_block_after_note): Remove. + (retrofit_block): Likewise. + (identify_blocks): Fix indentation. + (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a + NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END. + * function.h (insert_block_after_note): Remove prototype. + (retrofit_block): Likewise. + * integrate.c (expand_inline_function): Don't call + find_loop_tree_blocks. Use expand_start_bindings_and_block, not + just expand_start_bindings. Use the block_map to remap old + NOTE_BLOCKs to new ones. + (integrate_decl_tree): Keep track of remapped blocks. + * integrate.h (struct inline_remap): Add block_map. + * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set + NOTE_BLOCK on the notes. + (expand_start_bindings): Rename to ... + (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK. + (expand_end_bindings): Set NOTE_BLOCK. + * toplev.c (rest_of_compilation): In function-at-a-time-mode, + reconstruct the BLOCK tree. + * tree.h (expand_start_bindings): Macroize. Call ... + (expand_start_bindings_and_block): New function. + +1999-12-16 Jakub Jelinek + + * config/sparc/sparc.c (print_operand): Cast fprintf arguments + to match the format. + +1999-12-16 David S. Miller + + * expr.c (emit_move_insn_1): Only emit clobbers if one of + the outputs is a SUBREG. + * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th + change. + + * config/sparc/sparc.c (epilogue_renumber): Add default case + to switch stmt. + +Thu Dec 16 11:33:57 MET 1999 Jan Hubicka + + * toplev.c (rest_of_compilation): Run branch shortening after + reg-stack. + + * regclass.c (loop_depth): Remove + (scan_one_insn): Do not handle LOOP_NOTE insns. + (regclass): Go through basic blocks and set loop_cost + +Thu Dec 16 02:56:25 1999 Zack Weinberg + + * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too. + +Thu Dec 16 10:43:35 MET 1999 Jan Hubicka + + * i386.md (movqi): Use "nonimmediate_operand" for output operand. + (movstrictqi, movdi, movsf, movdf, movxf): Likewise. + (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise. + +Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com) + + * loop.c (insert_loop_mem): Ignore memory clobbers. + + * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0) + to (OP A B). + +Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com) + + * profile.c: Remove redundant #include "output.h". + + * h8300.md (HImode preinc peephole): Fix typo. + +1999-12-15 Jason Merrill + + * function.c (retrofit_block): Abort if we don't find a suitable insn. + (insert_block_after_note): Abort if we don't have a previous block. + Remove FN parameter. + * function.h: Adjust. + +1999-12-15 Mark Mitchell + + * builtins.c (expand_builtin_mathfn): Make sure not to expand the + argument more than once. + +1999-12-15 Jason Merrill + + * stmt.c (expand_decl): Expand upper bound of a dynamic array. + +1999-12-15 Jakub Jelinek + + * expr.c (emit_group_load): Use dst mode if src is VOIDmode. + +Wed Dec 15 16:11:55 MET 1999 Jan Hubicka + + * function.c (PREFERRED_STACK_BOUDNARY): Provide default value. + (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY, + update stack_alignment_needed. + (prepare_function_start): Initialize stack_alignment_needed + * function.h (struct function): Add field stack_alignment_needed. + +Wed Dec 15 14:55:24 1999 J"orn Rennecke + + * caller-save.c (insert_one_insn): Returns struct insn_chain *. + Handle live_throughout / dead_or_set instead of live_before / + live_after. + (save_call_clobbered_regs): Get register livenessinformation from + chain->live_throughout. + (add_stored_regs): New function. + (insert_restore, insert_save): Add restored / saved registers to + dead_or_set. + * global.c (reg_dies): New parameter chain. + (reg_becomes_live): Third parameter is regs_set now. + Changed all callers. + (reg_dies): New parameter chain. Changed all callers. + (build_insn_chain): Set live_throughout instead of + live_before / live_after. + * reload.h (struct insn_chain): Replace members live_before / + live_after with live_throughout / dead_or_set. + * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set + instead of live_before / live_after. + (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise. + (order_regs_for_reload, find_reg, finish_spills): Likewise. + (choose_reload_regs_init): Likewise. + * stupid.c (current_chain, find_clobbered_regs): Delete. + (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set + instead of chain->live_before / chain->live_after. + (mark_hard_ref): New function. + (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout. + +1999-12-15 David S. Miller + + * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT. + +Wed Dec 15 15:05:30 MET 1999 Jan Hubicka + + * flow.c (calculate_loop_depth): Make global, remove prototype, + rewrite to use new loop infrastructure. + (find_basic_block): Remove calculate_loop_depth call. + * toplev.c (rest_of_compilation): Call find_basic_block. + * output.h (calculate_loop_depth): Declare. + + * flow.c (dump_flow_info): Dump loop_depth. + (flow_loops_nodes_find): Increase loop_depth for basic block in the + body. + (flow_loops_find): Initialize the loop_depth for each basic block. + +1999-12-15 Jason Merrill + + * tree.c (decl_function_context): Handle virtual functions. + + * tlink.c (scan_linker_output): Don't look in demangled name when + looking for linker output keywords. + + * dwarfout.c (output_type): We can defer namespace-scope classes. + +Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com) + + * regclass.c (record_reg_classes): Update comment for merging + register class preferences in reg->reg copies. Tighten conditions + for merging register class preferences in reg->reg copies. + +Wed Dec 15 02:19:32 1999 David Edelsohn + + * rs6000.md (tablejumpdi): Generate DImode LABEL_REF. + +1999-12-14 Geoff Keating + + * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete. + (INIT_SECTION_ASM_OP): Delete. + (FINI_SECTION_ASM_OP): Delete. + (STARTFILE_SPEC): Define to hold just crtbegin.o. + +1999-12-14 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Do call abort if + the abstract origin wasn't emitted. + + * dwarf2out.c (class_scope_p): New fn. + (gen_subprogram_die): Use it. + (gen_variable_die): Use it. Tweak logic. + (gen_struct_or_union_type_die): Check context_die to determine + if we're function-local. + (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE. + +1999-12-14 Bernd Schmidt + + * loop.c (check_dbra_loop): Can't reverse a biv that has + maybe_multiple set. + +1999-12-14 Nick Clifton + + * config/arm/arm.c: Add support for -mcpu=arm720 command line + switch. + +Tue Dec 14 18:13:32 1999 J"orn Rennecke + + * loop.c (strength_reduce): Fix sign of giv lifetime calculation + for givs made from biv increments. + +Tue Dec 14 08:11:27 1999 Richard Henderson + + * configure.in (alpha-osf, alpha-linux): Handle ev6[78]. + * alpha.c (override_options): Recognize -mcpu=ev67. + * alpha.h (CPP_CPU_EV67_SPEC): New. + (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it. + (EXTRA_SPECS): Update. + +Tue Dec 14 08:04:28 1999 Richard Henderson + + * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as + appropriate for -lang-c89 and -std=*. + * cppinit.c (cpp_handle_option): Likewise. + (new_pending_define): New, split out from cpp_handle_option. + * gcc.c (default_compilers): Don't define __STRICT_ANSI__ + or enable trigraphs for -ansi/-std=*. + + * ginclude/stdarg.h (__va_copy): New. + (va_copy): Don't define for C89. + +Tue Dec 14 08:37:27 CST 1999 Clinton Popetz + + * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns + for long long multiply-accumulate. + +Tue Dec 14 13:51:38 MET 1999 Jan Hubicka + + * regclass.c (scan_one_insn): Set loop_cost to 1 when + optimizing for size. + +1999-12-14 Bernd Schmidt + + * reload1.c (reload): Can't avoid select_reload_regs/finish_spills + if something changed. Back out that part of yesterday's changes. + + * loop.c (loop_max_reg): New static variable. + (loop_optimize): Initialize it. Eliminate one unnecessary call to + max_reg_num. + (scan_loop): Call reg_scan_update whenever we may have added new + registers, and update loop_max_reg. + +Tue Dec 14 12:07:29 MET 1999 Jan Hubicka + + * regclass.c (record_reg_classes): Do not do the copying preferrencing + when source does not die. + + * regclass.c (record_reg_classes): Handle INOUT operands propertly. + +1999-12-14 Jakub Jelinek + + * config/sparc/linux64.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC + variants on Linux. + * config/sparc/linux.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Likewise. + * config/sparc/linux-aout.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Likewise. + + * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32. + (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64, + not %g2. + (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2 + as sparc64 block profiling register. + * config/sparc/sparc.c (sparc_override_options): Allow block + profiling with -m32. + (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block + profiling register. + * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these + macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64. + * config/sparc/sol2.h (MACHINE_STATE_*): Likewise. + + * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing + for sparc64. + * config/sparc/sparc.h: Likewise. + * config/sparc/xm-sysv4-64.h: Likewise. + * config/float-sparc.h: Likewise. + * glimits.h: Likewise. + * longlong.h: Likewise. + + * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1. + (ASM_IDENTIFY_GCC): Remove. + +1999-12-14 Bernd Schmidt + + * combine.c (combine_simplify_rtx): Don't make shared rtl. + (simplify_logical): Likewise. + +1999-12-14 Mumit Khan + + * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin. + * cppfiles.c (INO_T_EQ): Likewise. + +1999-12-14 Mumit Khan + + * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support. + * i386/mingw32.h (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * i386/uwin.h (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + + * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition. + * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise. + +Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com) + + * combine.c (combine_simplify_rtx): Fix order of checks for + (ashiftrt foo C) -> (lt foo (const_int 0)) simplification. + +1999-12-13 Clinton Popetz + + * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out + 12/10/99 change, reapplied to merged-arm-thumb-backend-branch. + +1999-12-10 Bernd Schmidt + + * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is + defined. + * regclass.c (inv_reg_alloc_order): New array. + (regclass_init): If REG_ALLOC_ORDER is defined, initialize it. + + * reload.h (struct insn_chain): Delete fields group_size, group_mode, + counted_for_groups, counted_for_nongroups. Add fields rld and + n_reloads. + * reload.c (push_secondary_reload): Don't set nongroup field of + new reloads. + (push_reload): Likewise. + (find_reloads): Delete code to compute nongroup fields. + * reload1.c (reload_insn_firstobj): New static variable. + (pseudos_counted, spilled_pseudos): Now of type regset_head. All + users changed. + (calculate_needs, find_tworeg_group, find_group, possible_group_p, + count_possible_groups, modes_equiv_for_class_p, new_spill_reg, + dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete + functions. + (count_pseudo, select_reload_regs, copy_reloads, find_reg): New + functions. + (struct hard_reg_n_uses): Deleted. + (potential_reload_regs): Deleted. + (init_reload): Initialize spilled_pseudos and pseudos_counted. + (reload): Don't try to allocate reload registers if we already know + we have to make another pass. Call select_reload_regs. Free memory + starting with reload_firstobj when starting another pass. + Don't allocate spilled_pseudos. + (calculate_needs_all_insns): Call copy_reloads for an insn that + needs reloads; don't call calculate_needs. + (spill_cost): New static array. + (used_spill_regs_local): New static variable. + (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code + to compute potential_reload_regs. + (find_reload_regs): Completely rewritten to use find_reg. + (allocate_reload_reg): Don't test counted_for_groups or + counted_for_nongroups. Lose NOERROR arg and code to give an error; + all cllers changed. + (choose_reload_regs): Add fallback code that uses the existing + register allocation from find_reload_regs. + +Mon Dec 13 00:54:14 1999 Philippe De Muyter + + * flow.c (create_edge_list): Cast xmalloc return value. + +Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com) + + * doprnt.c: Remove incorrect comment closure. + + * cse.c: Fix a few minor whitespace goofs. + +1999-12-13 Don Bowman + + * mips/vxworks.h: Fix problem with comment termination. + (EXTRA_SECTIONS): Add in_sbss. + (EXTRA_SECTION_FUNCTIONS): Corresponding changes. + +1999-12-12 David S. Miller + + * cse.c (struct cse_reg_info): Add hash_next member, + reorder rest of struct for better packing on 64-bit + hosts. + (cse_reg_info_tree): Kill. + (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash, + REGHASH_FN): New custom pow2 hash mechanism. + (NBUCKETS): Kill. + (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to + use a pow2 hash table. + (get_cse_reg_info): Rework to use new REGHASH. + (new_basic_block): Likewise, use HASH_SIZE, and inline + free_element call. + (remove_from_table): Rework to use HASH_SIZE/HASH_MASK, + and inline free_element call. + (lookup_as_function, insert, flush_hash_table, invalidate, + remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, + invalidate_for_call, use_related_value, find_comparison_args, + fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise. + (hash_cse_reg_info, cse_reg_info_equal_p, free_element, + get_element): Kill. + +Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_basic_block): Free qty_table consistently. + +1999-12-12 David S. Miller + Jakub Jelinek + + * config/sparc/sparc.md (movtf reg/reg split): Don't generate + SUBREGs by hand, gen the appropriate hard reg directly. + (movtf reg/mem split): Likewise and alter_subreg on destination + if necessary. + (movtf mem/reg split): Similarly. + (movdf_cc_sp64): Rename from hidden pattern. + (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64. + (movtf_cc_sp64, following split): New pattern and splitter. + (movdf_cc_reg_sp64): Rename from hidden pattern. + (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require + TARGET_HARD_QUAD. + (movtf_cc_reg_sp64, following split): New pattern and splitter. + +1999-12-12 Stephen L Moshier + + * loop.c (load_mems): Don't hoist written floating point mem + if -ffloat-store. + +1999-12-12 Mark Mitchell + + * except.h (struct eh_queue): Add `next' pointer. + (struct eh_status): Make x_ehqueue a pointer. + (push_ehqueue): Declare. + (pop_ehqueue): Likewise. + * except.c (expand_eh_region_end): Adjust now that ehqueue is a + pointer. + (expand_fixup_region_end): Likewise. + (expand_leftover_cleanups): Likewise. + (push_ehqueue): Define. + (pop_ehqueue): Likewise. + (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather + than doing it inline. + (expand_start_all_catch): Adjust now that ehqueue is a + pointer. + (mark_eh_queue): Mark all level of the queue. + (mark_eh_status): Adjust now that ehqueue is a + pointer. + (init_eh_for_function): Allocate ehqueue. + (free_eh_status): Free it. + * stmt.c (expand_cleanups): Save the ehqueue around the cleanup + expansion for a fixup. + +1999-12-12 Kaveh R. Ghazi + + * gthr-single.h (__gthread_active_p): Add prototype arguments. + + * libgcc2.c (__udivmoddi4): Remove unnecessary decls. + (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg, + __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret, + function_ptr, getpagesize, __enable_execute_stack, + __enable_execute_stack, __clear_insn_cache, + __enable_execute_stack, __do_global_dtors, __do_global_ctors, + _cleanup, _exit, __default_terminate, __terminate_func, + __terminate, __empty, __throw, new_eh_context, + eh_context_initialize, eh_context_static, eh_context_specific, + get_eh_context, __get_eh_context, __get_eh_info, + init_reg_size_table, eh_threads_initialize, + __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow, + __unwinding_cleanup, throw_helper, __throw, __rethrow, + __pure_virtual): Add prototype arguments. + (__bb_exit_func): Cast a sizeof to long when comparing against one. + Cast a signed value to unsigned long when comparing against one. + (new_eh_context): Wrap in _GTHREADS macro. + (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at + declaration. + (in_reg_window): Mark parameters with __attribute__ ((__unused__)). + (throw_helper): Initialize variables `handler_p' and `pc_p'. + +1999-12-11 Kaveh R. Ghazi + + * combine.c (record_promoted_value): Remove unused variable + `links2'. + + * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'. + + * global.c (record_conflicts): Likewise for `j'. + + * genoutput.c (output_insn_data): Don't unnecessarily cast away + const-ness. + +1999-12-11 Kaveh R. Ghazi + + * i386-protos.h (output_387_binary_op, output_fix_trunc, + output_fp_compare): Constify a char*. + + * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add + static prototypes. + (override_options, ix86_comp_type_attributes, print_operand, + output_387_binary_op, output_fix_trunc, output_fp_compare): + Constify a char*. + (ix86_sched_reorder): Mark parameter `clock_var' with + ATTRIBUTE_UNUSED. + + * i386.h (DEBUG_PRINT_REG): Constify a char*. + +Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco + + * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third + operand, for use in the Java front-end. + +1999-12-10 Ben Collins + + * configure.in: Fix typo for "-64" in 64bit as check. + * configure: Rebuilt. + +1999-12-10 Jakub Jelinek + + * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where + appropriate. + +1999-12-10 Kaveh R. Ghazi + + * c-parse.in (string): With -Wtraditional, warn if ANSI string + concatenation is utilized. + + * invoke.texi (-Wtraditional): Document it. + +1999-12-10 Kaveh R. Ghazi + + * flow.c (flow_loops_dump): Avoid ANSI string concatenation. + Cast a ptrdiff_t to long and pass it to printf with %ld. + +1999-12-10 Geoff Keating + + * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no + 68881, we have no 68881 registers at all. + (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT + value in a 68881 register if it is available. + +1999-12-10 Clinton Popetz + + * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns + for long long multiply-accumulate. + +1999-12-10 Bernd Schmidt + + * loop.c (insert_loop_mem): Undo last change. + +1999-12-10 David S. Miller + + * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p): + New functions. + * config/sparc/sparc-protos.h: Add them. + * config/sparc/sparc.h: Add them to PREDICATE_CODES. + (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S + constraints which use those helpers. + (EXTRA_CONSTRAINT): Use this new macro. + * md.texi: Update sparc target constraints documentation. + * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg, + movsf_const_high, movsf_const_lo, movsf_insn): Delete. + (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0, + movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns. + (movsf high/lo_sum split): Rework for new patterns. + (movsf expander): Allow storing fp_zero to memory if ! live_g0. + +1999-12-09 Gavin Romig-Koch + + * c-common.c (c_common_nodes_and_builtins): + Create __builtin_ptrdiff_t and __builtin_size_t. + +Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com) + + * pa/elf.h (MAX_OFILE_ALIGNMENT): Define. + +Fri Dec 10 00:53:10 1999 J"orn Rennecke + + * regclass.c (globalize_reg): Re-instate test that allows + fixed registers to be declared as a variable even after functions + are defined. + +Fri Dec 10 00:52:13 MET 1999 Jan Hubicka + + * i386.md (cpu attribute): Add "athlon". + (athlon_decode): New attribute. + (Athlon scheduling units definitions): New. + (fcmp and shld patterns): Set athlon_decode to "vector". + * i386.c (athlon_cost): New. + (m_ATHLON): New. + (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, + x86_use_sahf): Set for Athlon. + (x86_use_fiop): Unset for Athlon. + (override_options): Define Athlon alignments and "athlon" name. + (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon. + * i386.h (TARGET_ATHLON): New. + (enum processor_type): Add PROCESSOR_ATHLON. + (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__" + for CPU_DEFAULT==5 + (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon. + +1999-12-09 Andreas Jaeger + + * loop.c (record_biv): Declare parameter as int. + + * config/i386/i386-protos.h: Declare long_memory_operand. + +1999-12-09 Mark Mitchell + + * tree.c (copy_node): Do zero the TREE_CHAIN, even for an + EXPR_WITH_FILE_LOCATION. + +Thu Dec 9 11:36:24 MET 1999 Jan Hubicka + + * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand + in expander. + + * flow.c (recompute_reg_usage): Use basic block info to get loop_depth. + + * combine.c (try_combine, distribute_notes): Remove REG_N_REFS + updating code. + +1999-12-09 Jakub Jelinek + + * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs + default on linux64 again. + * config/sparc/t-linux64: Add mno-app-regs and non-medlow code + models for multilibing. + * genmultilib: Accept | as alternative separator within a set in + MULTILIB_OPTIONS. + + * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define. + + * calls.c (precompute_arguments): Make sure initial_value contains + value pseudo which CSE expects. + * cse.c (struct set): New entry orig_src. + (cse_insn): Set it early on entry, use it for libcall EQUIV note + replacement. + +Wed Dec 8 22:24:15 1999 Richard Henderson + + * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns. + +1999-12-08 Bernd Schmidt + + * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops. + +1999-12-08 Jakub Jelinek + + * config/sparc/sparc.c (ultra_cmove_results_ready_p, + ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix. + + * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits + if TARGET_ARCH32. + + * longlong.h: Merge in changes from glibc. + Also don't clobber %g2 register in 32bit SPARC assembly, so that + -mno-app-regs libgcc can be compiled. + * libgcc2.c: Add defines so that the updated longlong.h + can be used in libgcc2.a. Also, make sure on most architectures + (at least on all which have optimized code in longlong.h defined + for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests. + +1999-12-08 Alexandre Oliva + + * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that + `-m EMULATION' is added to non-default LINK_ARCH_SPECs. + * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker + is GNU ld. + * configure: Rebuilt. + +Wed Dec 8 03:45:40 1999 Richard Henderson + + * alpha.c (secondary_reload_class): For !BWX, sub-simode + outputs require a register. + +1999-12-08 Brendan Kehoe + + * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi + _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to + functions like dptoul will be resolved. + (libgcc2.a): Make sure that the object files from DPBIT are named + differently (prefix `_dp') from those that would be coming from + FPBIT. + +1999-12-08 Alexandre Oliva , Jakub Jelinek + + * configure.in: When target is sparc* and tm_file contains 64, + test for 64bit support in assembler. If not supported, remove + sparc/t-sol2-64 from target-dependent Makefile fragments. + (AS_SPARC64_FLAG): Define to the assembler flag for 64bit. + (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags. + (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache. + * acconfig.h (AS_SPARC64_FLAG): Added. + * configure, config.in: Rebuilt. + * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit + support. Use AS_SPARC64_FLAG. + +1999-12-07 Jakub Jelinek + + * 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 + + * 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 + + * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std + documentation. + +1999-12-06 David S. Miller + + * combine.c (check_promoted_subreg): Do not conditionalize this upon + PROMOTE_FUNCTION_RETURN. + +Mon Dec 6 15:12:14 1999 Jim Wilson + + * 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 + + * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be + zero if there was an error. + +1999-12-06 Jakub Jelinek + + * 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 + + * 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 + + * 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 + + * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro. + +1999-12-05 Jakub Jelinek + + * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi. + +1999-12-05 Mark Mitchell + + * 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 + + * 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 + + * 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 + + * flow.c (flow_loops_dump): Add missing argument when calling + flow_loop_nested_p. + +1999-12-04 Geoffrey Keating + Greg McGary + + * 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 + Geoffrey Keating + + * 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 + + * frame.c (fde_split): Reimplement to avoid variable sized array. + +Thu Dec 2 18:59:48 1999 J"orn Rennecke + + * 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 + + * invoke.texi: Document the mips option -mno-crt0 + +1999-12-02 Mike Karr + + * 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 + + * 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 + + * 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 + + * i386.md (extend?f?f2): Force the input into a register, not + the output. + +1999-12-01 Jakub Jelinek + + * config/sparc/sparc.md (movsf_const_intreg): Add constraints for + regclass' sake. + (movdf_const_intreg_sp32): Likewise. Prefer the memory load + alternative because setting up 64bit constant is usually costly, + especially when reload is in progress or completed. + (movdf_const_intreg_sp64): Likewise. + (movdf_const_intreg split): Fix building up constants when + HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit. + +Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com) + + * combine.c (if_then_else_cond): Use const_true_rtx instead of + const1_rtx for return values in EQ/NE comparison against (const_int 0) + case. + + * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers. + (asm_file_start): Emit .am33 into assembly file when compiling for + the AM33. + (print_operand_address): Handle POST_INC addresses. + (can_use_return_insn, initial_offset): Check AM33 registers too. + (expand_prologue): Check & save AM33 registers too. + (expand_epilogue): Similarly. + (secondary_reload_class): Handle AM33 specific secondary reloads. + (output_tst): Emit efficient code for the AM33 too. + * mn10300.h (CPP_SPEC, TARGET_AM33): Define. + (TARGET_SWITCHES): Add -mam33 switch. + (FIRST_PSEUDO_REGISTER): Handle new AM33 registers. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise. + (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise. + (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise. + (enum reg_class, REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. + (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. + (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise. + (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise. + (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. + (HAVE_POST_INCREMENT): Define. + (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33. + (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address. + * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants. + (mulsi, andsi, iorsi, xorsi, notsi): Likewise. + (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise. + (zero_extend to SI from QI/HI): Likewise. + (sign_extend to SI from QI/HI): Likewise. + (mulsidi3, umulsidi3): New patterns for the AM33. + (tstsi with zero extension from QI/HI): Add AM33 variants. + (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too. + (return_internal_regs, store_movm): Handle new AM33 registers. + * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define. + (LIBGCC, INSTALL_LIBGCC): Likewise. + * invoke.texi: Document new flags. + +Fri Nov 26 10:59:12 CET 1999 Jan Hubicka + + * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition. + (addsi3_carry): Likewise. + (sbbsi3_cc): Add "binary_operator_ok" to the condition. + (sbbsi3_carry): Likewise. + (mulsi3): Rewrite to expander, ensure that only one operand is memory. + (mulhi3): Likewise. + (test?i_1): Ensure that only one operand is memory. + (conditional move patterns): likewise. + (shift and rotate patterns): Rewrite to expander, add + "binary_operator_ok" to the condition. + + * i386.md (QImode patterns): Remove '*' before the 'r' constraints. + * i386.h (procesor_costs): Add movzbl_load field. + (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in + non-Q registers, accept DImode registers anywhere. + (Q_CLASS_P): New. + (MEMORY_MOVE_COST): Calculate QImode moves correctly. + * i386.c (*_cost): Set value for movxbl_load field. + + * (addsi): New add to lea splitter. + (ashlsi): Likewise. + (lea to add/shift peep2): New. + +1999-12-01 Mark Salter + + * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0. + * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0. + * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0. + +Tue Nov 30 15:20:52 MET 1999 Jan Hubicka + + * i386.c (ix86_expand_move): Never add clobbers to move patterns. + * i386.md (movsi_xor): New. + (movsi_or): New. + (movsi_1, movhi_1, movqi_1): Remove. + (movsi_2): Rename to movsi_1. + (movhi_2): Rename to movhi_1. + (movqi_2): Rename to movqi_1. + (movdi_1): Remove; remove splitter. + (movdi_2): Rename to movdi_1. + (divmodsi4 splitter): Do not emit clobbers for move patterns. + (long move peep2): Do not create QI or HI mode mov0s + (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole. + + * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns, + rewrite splitters. + + * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives. + (abs?f2_if): Likewise. + +1999-11-30 Alex Samuel + + * ggc.h (ggc_test_and_set_mark): New macro. + (ggc_mark_rtx): Use ggc_test_and_set_mark. + (ggc_mark_tree): Likewise. + (ggc_mark_rtvec): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. + +1999-11-30 Jason Merrill + + * dwarf2out.c (scope_die_for): Only handle types. Only search for + containing types. + (decl_scope_table): Just an array of trees now. + (push_decl_scope): Simplify. + (dwarf2out_init): Adjust. + (local_scope_p): New fn. + (gen_inlined_enumeration_type_die): Don't call scope_die_for. + (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise. + (gen_typedef_die): Likewise. + (gen_lexical_block_die): Don't call push/pop_decl_scope. + (gen_inlined_subroutine_die): Likewise. + (gen_abstract_function): Set current_function_decl temporarily. + (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration. + Handle block extern declarations. Don't call push/pop_decl_scope. + (gen_decl_die): Fix logic for block externs. + +1999-11-30 Kaveh R. Ghazi + + * calls.c (special_function_p): Remove `realloc' and add `strdup' + to the list of functions which have attribute malloc by default. + +1999-11-30 Kaveh R. Ghazi + + * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an + integer constant does not match the traditional type, limit the + warnings to cases where the base of the type is ten. + + * invoke.texi (-Wtraditional): Document it. + +Tue Nov 30 15:18:35 1999 Franz Sirl + + * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST + * rs6000.md: Only access a CONST_INT with INTVAL + +Tue Nov 30 14:21:00 1999 Richard Henderson + + * lcm.c (compute_laterin): Cast bb->aux to size_t not int. + (compute_nearerout): Likewise. + * ggc-page.c (ggc_page_print_statistics): Explicitly cast + size_t to unsigned long for formatting. + +1999-11-30 Jakub Jelinek + + * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE): + Allow the user to override call-used/fixed state of %g2-5 + registers from the command line (with the exception of %g4 for + embedded model). + (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that + there is a higher chance of having a leaf function. + (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros + for ARCH64 which has %ccr register. + * config/sparc/sparc.md (return_losum_si, return_losum_di): New + patterns. + * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return + insn accept into delay slot any insn which does not use %[ol] + registers. Accept some LO_SUM and shift left by 1 for the normal + restore case. + (output_function_epilogue): Likewise. + (epilogue_renumber): Added argument which inhibits any renumbering + and just tests if the rtx does not use any %[ol] registers. + (output_return): Reflect above change. + +1999-11-30 Jakub Jelinek + + * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg + aggregate passing for sizes <= 16 bytes. + +1999-11-30 Bernd Schmidt + + * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P. + * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code. + * reload.c (find_dummy_reload): Likewise. + (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P. + * reload1.c (reload_as_needed): Likewise. + * stupid.c (stupid_find_reg): Likewise. + * tm.texi (Obsolete Register Macros): Delete section. + * gmicro.h: Remove all traces of the two macros. + * i386.h: Likewise. + * m88k.h: Likewise. + * mips.h: Likewise. + +1999-11-30 Brendan Kehoe + + * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define. + (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags. + (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs. + * sparc.md (sparclite86x_branch, sparclite86x_shift): New function + units for the sparclite86x chip. + (flush): Revert October 14th change; add SImode specifically. + (flushdi): Copy of flush, but DImode, to avoid genrecog warnings. + * invoke.texi: Document it. + +Tue Nov 30 14:58:14 1999 Nick Clifton + + * config/mn10200/mn10200.h (PREDICATE_CODES): Add + psimode_truncation_operand. + + * config/mn10200/mn10200.c (psimode_truncation_operand): New + function. Return true if the operand is either a MEM valid + for a PSImode address or not a MEM at all. + + * config/mn10200/mn10200.md (truncsipsi2): Use + psimode_truncation_operand. + +1999-11-30 Michael Hayes + + * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions. + (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise. + (flow_loop_exits_find, flow_loop_nodes_find): Likewise. + (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise. + (flow_loop_tree_node_add, flow_loops_tree_build): Likewise. + (flow_loop_level_compute, low_loops_level_compute): Likewise. + (flow_loops_find, flow_loop_outside_edge_p): Likewise. + * basic-block.h: Protect from multiple inclusion. + (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes. + (struct loops, struct loop): Define structures. + * sbitmap.c (sbitmap_a_subset_b_p): New function. + * sbitmap.h: Protect from multiple inclusion. + (sbitmap_a_subset_b_p): Add prototype. + * Makefile.in (LOOP_H): New macro. + (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H. + +Tue Nov 30 01:34:47 1999 Philippe De Muyter + + * cppinit.c (CAT): The argument list of this macro may not contain + spaces ! + +1999-11-29 David S. Miller + + Move quantity tables and register equivalence chains into + per-qty and per-register structure arrays respectively. + * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const, + qty_const_insn, qty_comparison_code, qty_comparison_const, + qty_comparison_qty): Delete, replace with... + (qty_table): this structure table. + (reg_next_eqv, reg_prev_eqv): Delete, replace with... + (reg_eqv_table): this structure table. + (make_new_qty): Add argument MODE. Caller updated. + Update to use qty_table and reg_eqv_table. + (make_regs_eqv, delete_reg_equiv, insert_regs, + insert, exp_equiv_p, cse_rtx_varies_p, canon_reg, + fold_rtx, equiv_constant, record_jump_cond, cse_insn, + cse_process_notes, cse_main, cse_basic_block): Likewise. + +Mon Nov 29 16:56:42 1999 Richard Kenner + + * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse + operation if C is negative. + (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects. + (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive + law for some divisions if constant is negative and change other + divisions to the opposite rounding. + + * expr.c (store_constructor_field): If bit position is not multiple + of alignment of TARGET's mode, use BLKmode. + + * expr.c (expand_expr_unaligned): Add more code from full case + that is needed when OP0 is in a register. + +Mon Nov 29 18:09:39 1999 J"orn Rennecke + + * dwarfout.c (field_byte_offset): Size can be zero if there was + an error. + +1999-11-29 Bernd Schmidt + + * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE. + (associate_trees): Delete unused var TEM. + (extract_muldiv): Delete unused var CANCEL_P. + + * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT] + (target_isinf, target_isnan, target_negative): Add return types to + function definitions. + +1999-11-29 Bruce Korb + + * fixinc/fixincl.c(process): don't skip GLIBC files any more. + * fixinc/hackshell.tpl: ditto + * fixinc/fixtests.c(double_slash_test): more C++ header testing + * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach + +1999-11-29 Bernd Schmidt + + * reload.c (push_reload): When looking for a register to put into + reg_rtx, make sure all hard regs in a multi-reg register are in the + right class and nonfixed. + + * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers, + pending_read_insns, pending_write_insns, pending_read_mems, + pending_write_mems, pending_list_length, last_pending_memory_flush, + last_function_call, sched_before_next_call): Move static variables + into a structure. + (bb_ prefixed versions): Replace with single array bb_deps. + (struct deps): New structure. + (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1, + sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new + argument of type "struct deps *"; use that instead of global + variables. All callers changed. + (init_rgn_data_dependencies): Delete function. + (init_rtx_vector): Delete function. + (init_deps): New function. + + (free_pending_lists): Simplify, we always use the bb_deps array even + if only one basic block. + (compute_block_backward_dependences): Likewise. + (schedule_region): Likewise. + + (propagate_deps): New function, broken out of + compute_block_backward_dependences. + (compute_block_backward_dependences): Use it. + + * alpha.md: Delete useless patterns that tried to work around + register elimination problems. + + * unroll.c (loop_iterations): Don't abort if iteration variable + was made by loop. + + From Joern Rennecke: + * reload1.c (reloads_conflict): Reverse test comparing operand + numbers when testing for conflict between output/outaddr reloads. + +1999-11-29 David S. Miller + + * config/sparc/sparc.c (init_cumulative_args): Fix type of third + arg. + * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE. + +1999-11-28 Robert Lipe + + * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn + table from .fini into .dtor. + +1999-11-28 Anthony Green + + * tree.h (struct tree_decl): Add malloc_flag. + (DECL_IS_MALLOC): Define. + * c-common.c (attrs): Add A_MALLOC attribute. + (init_attributes): Add this attribute to the table. + (decl_attributes): Handle malloc attribute. + * calls.c (special_function_p): Check for the malloc attribute. + * extend.texi (Function Attributes): Document malloc attribute. + +Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload shift-add patterns): Remove. + +1999-11-28 Herman A.J. ten Brugge + + * reorg.c (dbr_schedule) Print more statistics. Corrected + problem when printing info when 3 delay slots are filled. + +1999-11-28 Jakub Jelinek + + * combine.c (setup_incoming_promotions): Pass an outgoing + regno to FUNCTION_ARG_REGNO_P which it expects. + +1999-11-28 Andreas Jaeger + + * mips/linux.h (CPP_PREDEFINES): Undefine before redefining. + +Sun Nov 28 00:48:15 1999 Philippe De Muyter + + * cccp.c (do_include): Avoid initialization of automatic variable. + + * integrate.c (mark_stores): Function definition made void, to match + previous declaration. + * regclass.c (dump_regclass): Ditto. + * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'. + +Sat Nov 27 08:38:26 1999 Richard Kenner + + * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is + known to be multiple of divisor. + + * expr.c (store_constructor): Don't clobber TARGET if CLEARED. + + * combine.c (try_combine): Add code to try to merge a set of a + two-word pseudo to a constant with a setting of one of those words + to a constant. + + * fold-const.c (negate_expr, associate_trees, extract_muldiv): New. + (split_tree): Completely rework to make more general. + (make_range, fold): Call negate_expr. + (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math. + (fold, associate): Call new split_tree and associate_trees. + (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv. + +1999-11-26 Bernd Schmidt + + * loop.c (try_copy_prop): Avoid GNU C extension. + +1999-11-25 Mark Mitchell + + * except.c (init_eh_for_function): Still zero eh_return_context, + eh_return_stack_adjust, and eh_return_handler. + + * except.h (eh_status): Adjust documentation for x_protect_list. + (begin_protect_partials): New function. + * except.c (enqueue_eh_entry): Fix formatting. + (get_first_handler): Add consistency check. + (add_partial_entry): Adjust usage of protect_list. + (emit_cleanup_handler): Save and restore ehqueue. + (expand_start_all_catch): Add comment. + (begin_protect_partials): New function. + (end_protect_partials): Adjust usage of protect_list. + (init_eh_for_function): Use xcalloc. + +1999-11-25 Kaveh R. Ghazi + + * c-common.c (check_format_info): Don't call a variadic function + with a non-literal format string. + + * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise. + + * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else, + pedantic_lvalue_warning, error_init, pedwarn_init, warning_init): + Likewise. + + * cccp.c (check_macro_name, do_xifdef, vwarning_with_line): + Likewise. + + * collect2.c (collect_wait): Likewise. + + * dbxout.c (dbxout_type): Likewise. + + * gcc.c (do_spec_1): Likewise. + + * genemit.c (gen_insn, gen_expand): Likewise. + + * genrecog.c (write_switch, write_subroutine): Likewise. + + * mips-tfile.c (catch_signal, botch): Likewise. + + * print-rtl.c (print_rtx): Likewise. + + * toplev.c (default_print_error_function, report_error_function, + _fatal_insn): Likewise. + +1999-11-25 Mark Mitchell + + * tree.c (unsave_expr_now): Handle NULL_TREE as input. + +Wed Nov 24 17:08:09 MET 1999 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative + operations when needed. + * i386.md (fop_?f_comm): New. + (fop_?f_1): Do not accept commutative operands. + +1999-11-25 Andreas Jaeger + + * config/mips/mips.md (casesi_internal): Add missing brace. + +1999-11-25 Jason Merrill + + * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose. + (splice_child_die): Handle moving a child DIE from the declaration + DIE of a class to its specification. + (gen_struct_or_union_type_die): Use 'complete' consistently. + (gen_decl_die): Generate the virtual context DIE first. + Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN. + +1999-11-24 Gavin Romig-Koch + + * config/mips/mips.md (call_value_multiple_interanal1): New. + +1999-11-24 Jason Merrill + + * dwarf2out.c (free_AT, free_die): New fns. + (remove_children): Call them. + (output_line_info): Disable removal of duplicate notes. + + Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set. + * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO + means pretend the type isn't defined. + Don't defer emitting types. + (gen_type_die_for_member): New fn. + (gen_decl_die): Call it. + (splice_child_die): New fn. + (gen_member_die): Call it rather than generate duplicate dies. + + Defer emitting information for the abstract instance of an inline + until we either inline it or emit an out-of-line copy. + * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN + from output_inline_function if DECL_ABSTRACT is also set. + (block_ultimate_origin): Likewise. + (gen_abstract_function): New fn. + (gen_decl_die, gen_inlined_subroutine_die): Call it. + (gen_subprogram_die): An abstract instance is not a declaration + just because it doesn't match current_function_decl. Don't abort + because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration + has an abstract origin. + * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the + abstract instance here. + +Wed Nov 24 18:39:18 1999 Andrew Haley + + * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case + where we need to reload fpul from a system register. + +1999-11-24 Andreas Jaeger + + * config/mips/linux.h (CPP_PREDEFINES): Added. + (LINK_SPEC): Remove -Y since this is only needed on sparc. + +1999-11-24 Andreas Jaeger + + * config/mips/linux.h (TARGET_VERSION): Added. + (HANDLE_SYSV_PRAGMA): Added. + (DEFAULT_VTABLE_THUNKS): Added. + +Wed Nov 24 14:12:15 MET 1999 Jan Hubicka + + * local-alloc.c (qty): New structure and static variable. + (qty_phys_reg): Remove, all references changed to qty. + (qty_n_refs): Likewise. + (qty_min_class): Likewise. + (qty_birth): Likewise. + (qty_death): Likewise. + (qty_size): Likewise. + (qty_mode): Likewise. + (qty_n_calls_crossed): Likewise. + (qty_alternate_class): Likewise. + (qty_changes_size): Likewise. + (qty_first_reg): Likewise. + (alloc_qty): Rename variable QTY to QTYNO. + (finf_free_reg): Likewise. + (local_alloc): Allocate qty, do not allocate the removed variables. + +Wed Nov 24 17:26:05 1999 Geoffrey Keating + + * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler + when -membedded-pic is passed. + + * config/mips/mips.md (casesi): Handle 64-bit case too. + (casesi_internal_di): New insn. + + * config/mips/mips.c (embedded_pic_offset): Always make the + embedded-pic subtractions relative to the name of the current + function by use of the magic string "..CURRENT_FUNCTION". + * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen. + +1999-11-24 Geoffrey Keating + + * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO + of (const_int 0), when what we really care about is + whether it's a zero constant anyway. + (div_trap_mips16): Likewise. + +1999-11-23 Mark Mitchell + + * loop.c (loop_optimize): Always find_loop_tree_blocks and + unroll_block_trees when generating debuggable code. + + * tree.h (unsave_expr_1): New function. + (lang_unsave): New variable. + (get_callee_fndecl): New function. + * tree.c (unsave_expr_now_r): New function. + (lang_unsave): Define. + (unsave_expr_1): Likewise. + (unsave_expr_now_r): Split out from unsave_expr_now. + (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise, + call unsave_expr_now_r. + (get_callee_fndecl): Define. + + * Makefile.in (gencheck): Don't depend on lang_tree_files. + (gencheck.o): Do depend on lang_tree_files. + + * integrate.h (copy_decl_for_inlining): New declaration. + * integrate.c (copy_and_set_decl_abstract_origin): Remove. + (copy_decl_for_inlining): New function. + (integrate_parm_decls): Use it. + (integrate_decl_tree): Likewise. + +1999-11-23 Gavin Romig-Koch + + * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split + the second two from the first. + (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4. + * config/mips/mips.md (movcc,reload_incc,reload_outcc, + conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than + ISA_HAS_FP4. + * config/mips/mips.c (mips_move_1word,gen_conditional_branch, + override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than + ISA_HAS_FP4. + +Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (call_internal_symref, call_value_internal_symref): No mode + needed on the address operand. + * pa.c (call_operand_address): Check for the correct mode. + +1999-11-23 Bernd Schmidt + + * loop.c: Include "basic-block.h". + (try_copy_prop, replace_loop_reg): New functions. + (load_mems): Detect registers that just hold copies of the hoisted + mem, and call try_copy_prop to eliminate them. + * Makefile.in (loop.o): Update dependencies. + +Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson + + * Makefile.in (gencheck.o): Depend on gencheck.h. + (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h. + (insn-peep.o): Depend on except.h and function.h. + (insn-attrtab.o): Depend on RECOG_H. + (insn-output.o): Depend on toplev.h and flags.h. + (gengenrtl.o): Depend on real.h. + (gen-protos.o): Depend on cpplib.h and cpphash.h. + Unify all dependencies to be on RECOG_H rather than recog.h. + +Tue Nov 23 00:57:10 1999 Rainer Orth + + From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998: + * configure.in: Try building a bi-arch 32/64-bit compiler on + sparc-*-solaris2.7 and higher. + * configure: Rebuild. + +Mon Nov 22 23:09:44 1999 David O'Brien + + * config/freebsd.h: New, FreeBSD architecture independent file. + * config/i386/freebsd-elf.h: removed FreeBSD architecturally + independent pieces. + * config/i386/freebsd.h: include i386/perform.h via tm.h rather than + directly by i386/freebsd.h. + * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally + independent configuration file. + (*-*-freebsdelf): Include i386/perform.h via tm.h rather than + directly by i386/freebsd.h. + * configure: Rebuilt. + + * xm-i386.h: Define `__i386__' if not defined, rather than `i386' + which is in the user's namespace. + * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs. + `i386' which is not in our namespace. + +Mon Nov 22 22:58:01 1999 "R. Kelley Cook" + + * invoke.texi (ARM Options): Add in -mno-alignment-traps + +1999-11-22 Jason Merrill + + * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last. + (add_dwarf_attr, add_child_die): Just push onto the front. + (reverse_die_lists): New fn. + (add_sibling_attributes): Use it. + (push_decl_scope): Reorganize. + (add_name_and_src_coords_attributes): Don't set file and line for + an artificial decl. + (gen_subprogram_die): An artificial function doesn't need to match + file and line. + (gen_compile_unit_die): Return the generated die. Only add + AT_comp_dir if the filename is relative. + (remove_AT): Simplify loop. Also free string values. + (output_die): A DIE ref can't be null. + (output_value_format, value_format): Take a dw_attr_ref. + (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove. + (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, + AT_addr, AT_lbl): New fns. + (various): Use them. + (various): Constify. + +Mon Nov 22 23:53:50 1999 J"orn Rennecke + + * combine.c (combine_simplify_rtx): When handling a SUBREG, + take SUBREG_WORD into account. + (if_then_else_cond): Likewise. + +1999-11-22 Jason Merrill + + * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising + clause from BSD license, pursuant with + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + +1999-11-22 Bernd Schmidt + + * loop.c (load_mems): Reformat slightly. + * basic-block.h (regset_head): New typedef. + (INIT_REG_SET): New macro. + +1999-11-22 Bruce Korb + + * emit-rtl.c (gen_sequence): Only return the pattern of an insn if + its code is INSN and it has no notes. + +1999-11-22 Andrew Haley + + * varasm.c (function_defined): Remove. + (make_function_rtl): Don't set function_defined. + (make_decl_rtl): Remove global register warning. + * regclass.c (no_global_reg_vars): New variable. + (globalize_reg): Warn if function has already been defined. + (regclass_init): Set no_global_reg_vars. + +Mon Nov 22 14:42:22 MET 1999 Jan Hubicka + + * regclass.c (reg_pref): New structure and static variable + (prefclass): Delete. + (altclass): Delete. + (all uses of prefclass and altclass): Use reg_pref instead. + +1999-11-21 Nick Clifton + + * invoke.texi (ARM Options): Replace -mshort-load-bytes with + -malignment-traps. + (arm.h): Replace -mshort-load-bytes with -malignment-traps. + (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. + (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. + +Sun Nov 21 17:11:13 1999 Geoffrey Keating + + * varasm.c (output_constructor): Solve problem with long long + bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1). + +Fri Nov 19 05:48:45 CET 1999 Jan Hubicka + + * global.c (allocno): New structure and static variable. + (allocno_reg): Remove, all references replaced by allocno. + (allocno_size): Likewise. + (hard_reg_conflicts): Likewise. + (hard_reg_preferences): Likewise. + (hard_reg_copy_preferences): Likewise. + (hard_reg_full_preferences): Likewise. + (regs_someone_prefers): Likewise. + (allocno_calls_crossed): Likewise. + (allocno_n_refs): Likewise. + (allocno_live_length): Likewise. + (find_reg): Rename ALLOCNO to NUM. + + * regclass.c (may_move_in_cost): Rename from may_move_cost, all + references updated. + (may_move_out_cost): New variable. + (init_reg_sets_1): Initialize may_move_out_cost. + (record_reg_classes): Use may_move_out_cost. + + * regclass.c (dump_regclass): New function. + (regclass): New parameter DUMP, call DUMP_REGCLASS. + * toplev.c (rest_of_compilation): Open lreg dump file before regclass, + pass rtl_dump_file to regclass. + * rtl.h (regclass): Update prototype. + +Fri Nov 19 06:32:19 CET 1999 Jan Hubicka + + * i386.md (neg, not and abs patterns): Revmap to use + ix86_expand_unary_operator and ix86_unary_operator_ok. + (add?f and sub?f expanders): Force operand 1 to register. + * i386.c (ix86_expand_unary_operator): Rewrite. + (ix86_unary_operator_ok): Ensure that memory operands + match real opcode. + (ix86_binary_operator_ok): Do not allow operand 1 to + come into memory and operand 0 not. + (ix86_expand_binary_operator): Ensure that + src1 is not non-matching memory. + + * i386.md (negs?2): Rewrite to expanders, new patterns and splitters + to support integer registers and memory. + (abss?2_integer): Likewise. + + * i386.h (enum reg_class): Add FLOAT_INT_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS + and GENERAL_REGS. + * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS. + (movsf): Likewise; unify 4th and 5th alternative. + (pushdf): Likewise. + (movdf_1): Likewise; rename to movdf_integer. + (pushxf): Likewise; rename to pushxf_integer; fix output template; + remove redundant splitter. + (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition. + (movdf_nointeger): New. + (movxf_nointeger): New. + (pushxf_nointeger): New. + + * i386.md (extend?f?f): Split to expander and pattern, refuse two + memory operands in patterns. + (fop*): Refuse two memory operands. + + * i386.md (ashrsi3_31): Allow cltd when optimizing for size even + on !TARGET_USE_CLTD CPUs. + +Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell + + * extend.texi: Document C++ restricted pointers and references. + +1999-11-19 Bernd Schmidt + + * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC. + (invalidate_skipped_set): Call it unconditionally. + (cse_set_around_loop): Likewise. + +Thu Nov 18 17:29:34 MST 1999 Diego Novillo + + * rtl.texi (mem): Add documentation for alias-set argument + to RTX `mem'. + +Fri Nov 18 13:39:22 CET 1999 Jan Hubicka + + * i386.h (struct_processor_costs): New fields int_load, int_store, + fp_move, fp_load and fp_store + (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of + fp->int moves + (MEMORY_MOVE_COST): New macro. + * i386.c (386_cost): Define new fields. + (i486_cost): Likewise. + (pentium_cost): Likewise. + (pentiumpro_cost): Likewise. + (k6_cost): Likewise. + +Fri Nov 19 11:11:55 1999 Greg McGary + Geoffrey Keating + + * config/m68k/m68kelf.h: Suppress '/* within comment' warning. + + * config/m68k/m68k.h (MASK_PCREL): Don't use same value as + MASK_ALIGN_INT. + + * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro. + (TARGET_STRICT_ALIGNMENT): New macro. + (TARGET_SWITCHES): Add "strict-align" and "no-strict-align". + (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT. + * invoke.texi (M680x0 Options): Document -mstrict-align. + +Thu Nov 18 11:10:03 1999 Jan Hubicka + Richard Henderson + + * i386-protos.h (split_xf, ix86_split_movdi): Remove. + (ix86_split_long_move): Declare. + * i386.c (split_xf, ix86_split_movdi): Remove. + (ix86_split_to_parts, ix86_split_long_move): New. + * i386.md (dimode move splitters): Use ix86_split_long_move. + (dfmode move splitters): Likewise. + (xfmode move splitters): Likewise. + (movsf_1): Allow F->r. + (movdf_1, movxf_1): Allow F->ro. + +1999-11-17 Mark Mitchell + + * except.h (struct eh_entry): Add goto_entry_p. + (eh_region_from_symbol): Remove prototype. + * except.c (find_func_region_from_symbol): New function. + (emit_cleanup_handler): Likewise. + (eh_region_from_symbol): Make it static. + (add_new_handler): Verify the argument. + (find_func_region): Update comment. + (expand_eh_region_end): Expand handlers here, rater than waiting + until expand_leftover_cleanups or start_all_catch. + (expand_leftover_cleanups): Don't expand here. + (expand_start_all_catch): Or here. + (expand_rethrow): Check the return value from find_func_region. + * function.c (expand_function_end): Emit the catch_clauses. + +1999-11-18 Gavin Romig-Koch + + * integrate.c (expand_inline_function): Add necessary check for NULL. + +1999-11-18 Nick Clifton + + * toplev.c (main): Correctly detect an unrecognised option. + + * cppinit.c (cpp_handle_option): Do not claim to have consumed + a -f option if it has not been recognised. + +Thu Nov 18 00:59:11 1999 Michael Gschwind + + * basic-block.h (update_life_extent): Remove trailing comma on + enumeration type list. + +1999-11-18 Herman A.J. ten Brugge + + * varasm.c (output_constructor) Solved problem with long long + bitfields. Corrected calculating this_time and shift. Also + corrected calculating mask when BITS_PER_UNIT == 32 (c4x). + +Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (split_edge): Take looping structure into account when + determining where to put the new block note. + +Wed Nov 17 20:42:43 1999 Jeff Holcomb + + * Makefile.in (ggc-none.o): Provide host specific version if + needed. + +Wed Nov 17 16:51:23 1999 Richard Henderson + + * cse.c (delete_trivially_dead_insns): Identify no-op insns + containing subregs too. + +Wed Nov 17 17:39:48 MST 1999 Diego Novillo + + * invoke.texi: Add documentation for -muninit-const-in-rodata. + * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define. + (TARGET_UNINIT_CONST_IN_RODATA): Define. + (text_section): Add switches -munint-const-in-rodata and + -mno-uninit-const-in-rodata. + (ASM_OUTPUT_COMMON): Remove. + (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized + const objects should be placed in read-only data. Otherwise declare + them in common. + +Wed Nov 17 16:38:32 1999 Richard Henderson + + * jump.c (jump_optimize_1): Revert last change. + +Wed Nov 17 15:18:30 1999 Richard Henderson + + * jump.c (jump_optimize_1): Don't try to duplicate the loop exit + test if optimizing for size. + +1999-11-17 Mark Mitchell + + * Makefile.in (toplev.o): Depend on except.h. + (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise. + +Mon Nov 15 22:45:39 CET 1999 Jan Hubicka + + * i386.md (divmodsi4): Rewrite to expander. + (*divmodsi4_nocltd): New. + (*divmodsi4_cltd): New. + (divmodsi4 splitter): Handle the case when input comes in edx. + (udivmodhi4): Do not use constraints in exander. + (ashrsi3_31): Conditionize by TARGET_USE_CLTD. + +1999-11-17 Jason Merrill + + * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1 + for the common case. + +1999-11-16 Jakub Jelinek + + * explow.c (hard_function_value): Add outgoing argument. + * expr.h (hard_function_value): Declare it. + * calls.c (expand_call, emit_library_call_value): Update callers. + * function.c (aggregate_value_p): Ditto. + (diddle_return_value): Must look at the outgoing registers + on archs with register windows. + +Mon Nov 15 20:46:45 1999 Richard Henderson + + * alpha.c (alpha_build_va_list): Use make_lang_type and + initialize TYPE_NAME for the va_list record. + + * flow.c (calculate_global_regs_live): Zero bb->aux to begin. + + * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long + for printing. + * ggc.h (struct ggc_statistics): Rearrange elements for better + packing on 64-bit hosts. + * lcm.c (compute_laterin): Store a size_t not an int in bb->aux. + (compute_nearerout): Likewise. + +Tue Nov 16 14:37:52 1999 Geoffrey Keating + + * config/rs6000/rs6000.c (first_reg_to_save): Save + PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed. + +1999-11-15 Jason Merrill + + * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table + notion of nesting to find the DIE for a type or function. + DIEs can go in limbo even if we got a context_die. + (push_decl_scope): Our context doesn't need to be in decl_scope_table. + (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test + for local type. + (gen_decl_die): Ignore NAMESPACE_DECLs for now. + (gen_type_die): Writing out the context doesn't cause member class + template instantiations to be written out as well. + +Mon Nov 15 15:33:18 1999 Richard Henderson + + * rs6000.h (ASM_OUTPUT_DEF): New. + Based on proposed addition from David Edelsohn. + +1999-11-15 Robert Lipe + Bruce Korb + + * fixinc/inclhack.def + (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features + (unixware7_byteorder_fix): added. Removes conflicts for new defs + in net/inet.h. + (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax + (svr4_endian): enabled with SVR5 + (svr4_mkdev): simplified syntax and enabled with SVR5 + +Sun Nov 14 18:49:37 1999 David O'Brien + + * configure.in: Handle libgcc2 threads support on FreeBSD platforms. + * configure: Rebuilt. + * config/t-freebsd-thread: New file. + +Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_decompose_address): Verify the base is a REG + before trying to examine its register number. + + * basic-block.h: Remove all #defines and prototypes related to + integer lists. + (free_bb_mem, compute_preds_succs): Remove prototype. + * rtl.h (free_bb_mem): Remove prototype. + * flow.c (alloc_int_list_node); Remove function. + (add_inst_list_node, free_int_list, add_pred_succ): Likewise. + (compute_preds_succs, free_bb_mem): Likewise. + * gcse.c (gcse_main): Do not call free_bb_mem anymore. + * toplev.c (rest_of_compilation): Likewise. + * haifa-sched.c (build_control_flow): Use flow generated edge + list to build the haifa specific edge list. + (find_rgns): Use new CFG data structures instead of pred/succ lists. + (schedule_insns): Do not build pred/succ lists anymore. Instead + build the edge table. + + * basic-block.h (dump_bb_data): Remove declaration. + * flow.c (dump_bb_data): Remove function. + * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function. + (sbitmap_union_of_predsucc): Likewise. + + * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds + argument. All callers changed. + (delete_null_pointer_checks_1): No longer need to compute the + pred/succ lists. + + * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument. + All callers changed. + (pre_expr_reaches_here_p_work): Likewise. + (pre_edge_insert): No longer call pre_expr_reaches_here_p. + * lcm.c (compute_laterin): Fix initialization of LATER. + (compute_nearerout): Similarly for NEARER. + +Sun Nov 14 12:41:57 1999 Bernd Schmidt + + * cse.c (set_nonvarying_address_components): Delete unused function. + (refers_to_p): Likewise. + +Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as + needed. + +Sat Nov 13 16:20:09 1999 Michael Hayes + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro + definition in do while (0). + +Fri Nov 12 16:26:25 1999 Jim Wilson + + * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change. + +Fri Nov 12 12:43:49 1999 Richard Henderson + + * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT. + +Fri Nov 12 15:14:19 1999 Vladimir Makarov + + * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it. + (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto. + (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. + (INITIAL_FRAME_POINTER_OFFSET): Remove it. + + * i960.c (i960_function_prologue): Don't allocate space for g8-g11 + saved on the stack. Output more accurate stack frame statistics + into assembler file. + +1999-11-12 11:47 -0800 Zack Weinberg + + * genextract.c (record_insn_name): New function. + (get_insn_name): No longer a stub. + (main): Call record_insn_name for each insn. After each label + written, print the insn name in a comment. + +Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi + + * output.h (const_section, init_section, fini_section): Add + prototypes. + + * alpha/elf.h (const_section): Delete declaration. + + * svr4.h (const_section): Likewise. + +Fri Nov 12 08:54:22 1999 Mark Mitchell + + * tree.h (SAVE_EXPR_PERSISTENT_P): New macro. + * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially. + (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P + expressions. + * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on + variable-sized array bounds. + +Fri Nov 12 08:04:45 1999 Catherine Moore + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use + ASM_OUTPUT_LABEL. + +Fri Nov 12 13:31:54 1999 Bernd Schmidt + + * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode + addresses the same way GO_IF_LEGITIMATE_INDEX does. + +Fri Nov 12 12:36:04 1999 Bernd Schmidt + + * cse.c (hash_arg_in_struct): Delete. + (struct table_elt): Delete elt in_struct. + (struct set): Delete elt src_in_struct. + (merge_equiv_classes): Don't set either hash_arg_in_struct or + the corresponding in_struct elts. + (canon_hash): Likewise. + (safe_hash): Likewise. + (find_best_addr): Likewise. + (record_jump_cond): Likewise. + (cse_insn): Likewise. + +Thu Nov 11 19:45:24 1999 Jim Wilson + + * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back. + + * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large + unsigned types. + +Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (diddle_return_value): Put back check that the DECL_RTL + for the function is a register. + + * function.c (diddle_return_value): Use hard_function_value to + get an rtx suitable for use in the USE/CLOBBER insn. + + * global.c (global_conflicts): Update comments. + (record_conflicts): No need to record conflicts between pseudos here. + +1999-11-11 Bruce Korb + + * fixinc/fixincl.c: Added verbose levels for status messages + +Thu Nov 11 13:23:04 1999 Bernd Schmidt + + * jump.c (jump_optimize_1): Avoid passing an rtx that is not an + operand as argument to expand_and or expand_binop. + +Thu Nov 11 02:21:16 1999 Rodney Brown + + * xcoffout.c (xcoffout_source_file): Change ggc_add_root to + gcc_add_string_root. + +Wed Nov 10 21:24:19 1999 Jason Eckhardt + + * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4. + +Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (compute_flow_dominators): Initially put all blocks on + the worklist. + * lcm.c (compute_antinout_edge, compute_available): Similarly. + * gcse.c (compute_cprop_avinout): Remove. + (compute_cprop_data): Use compute_available. + (delete_null_pointer_checks_1): Use compute_available. + + * basic-block.h (compute_available): Returns a void now. + * gcse.c (one_classic_gcse_pass): Do not expect compute_available + to return a value anymore. + * lcm.c (compute_available, compute_antinout_edge): Revamp to use + worklists. Fix boundary cases. Compute maximal solutions. + (compute_laterin, compute_nearerout): Similarly. + + * dwarf2out.c (add_AT_location_description): Allow + (mem (plus (pseudo) (...)) too. + +Wed Nov 10 10:52:42 1999 Tom Tromey + + * gcc.c (do_spec_1): Support text between `%u' and `%O'. + +Wed Nov 10 12:43:21 1999 Philippe De Muyter + Kaveh R. Ghazi + + * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. + + * gansidecl.h: Likewise. + + * rtl.c: Likewise. + + * rtl.h: Likewise. + + * toplev.h: Likewise. + + * tree.c: Likewise. + + * tree.h: Likewise. + + * varray.c: Likewise. + + * varray.h: Likewise. + +Wed Nov 10 10:57:22 1999 Clinton Popetz + + * gcov.c (struct arcdata): Add hits and total, remove prob. + (output_branch_counts): New. + (process_args): Set output_branch_counts if -c. + (calculate_branch_probs): Store hits and total instead of + percentage. + (output_data): Emit counts if output_branch_counts is true. + * gcov.texi (Invoking Gcov): Document -c switch.. + +Wed Nov 10 01:10:41 1999 Philippe De Muyter + + * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and + `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type. + +Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson + + * invoke.texi (C Dialect Options): Add missing builtins from + c-common.c to list. + * extend.texi (Other Builtins): Copy to this list. + +Wed Nov 10 04:58:09 1999 Alexandre Oliva + + * Makefile.in (recog.o): Use BASIC_BLOCK_H macro. + (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove + redundant bitmap.h. + +Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (compute_flow_dominators): No longer treat basic block 0 + or (n_basic_blocks - 1) specially. Clear the AUX field before + starting computation of doms/pdoms. Fix initial state for pdoms. + +Wed Nov 10 03:58:08 1999 Alexandre Oliva + + * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to + match rtl.o's: added ggc.h and toplev.h + ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h. + ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h. + ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H). + +Tue Nov 9 10:30:08 1999 Tom Tromey + + * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed + from HAVE_DOS_BASED_FILESYSTEM. + * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not + HAVE_DOS_BASED_FILESYSTEM. + (main): Likewise. + (split_directories): Only special-case DOS file names if + HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR + instead of explicit tests. Conditionalize on !VMS. + (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit + tests. Conditionalize on !VMS. + (process_command): Only use make_relative_prefix if !VMS. + (free_split_directories): Conditionalize on !VMS. + (DIR_UP): Conditionalize on !VMS. + +Wed Jun 9 16:57:11 1999 Mumit Khan + + * gcc.c (STANDARD_BINDIR_PREFIX): Provide default. + +Fri Feb 5 14:22:01 1999 Mumit Khan + + * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX + case. + +Mon Nov 8 14:16:57 1999 Michael Meissner + + * invoke.texi (Environment Variables): Document relative path + lookup. + * gcc.c (DIR_UP): If not defined, define as "..". + (standard_bindir_prefix): New static, holds target location to + install binaries. + (split_directories): New function to split a filename into + component directories. + (free_split_directories): New function, release memory allocated + by split_directories. + (make_relative_prefix): New function, make a relative pathname if + the compiler is not in the expected location. + (process_command): If GCC_EXEC_PREFIX was not specified, see if we + can figure out an appropriate prefix from argv[0]. + * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of + STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define + STANDARD_BINDIR_PREFIX. + +Wed Nov 10 11:47:54 1999 Michael Hayes + + * config/c4x/c4x-protos.h: New file. Prototypes for functions defined + in c4x.c. + * config/c4x/c4x.h: Moved prototypes to c4x.h. + * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class, + c4x_secondary_memory_needed) Delete. + (fp_zero_operand): Add mode argument. + +Thu Nov 4 15:52:35 1999 Andrew Haley + + * reload1.c (reload_reg_free_for_value_p): Don't use a register + that is in reload_reg_used. + +Tue Nov 9 16:43:00 1999 Nick Clifton + + * config/arm/arm-protos.h: New file: Prototypes for functions + defined in arm.c and pe.c. + * config/arm/arm.h: Fix compile time warnings. + * config/arm/arm.c: Fix compile time warnings. + * config/arm/pe.h: Fix compile time warnings. + * config/arm/aout.h: Fix compile time warnings. + +Tue Nov 9 14:55:44 1999 Nick Clifton + + * config/m32r/m32r-protos.h: New file: Prototypes for functions + defined in m32r.c + + * config/m32r/m32r.h: Move prototypes to m32r-protos.h + Add support for subtargets. + Add prototypes for new predicates. + Add scheduling macros. + + * config/m32r/m32r.c: Fix compile time warnings. + (int8_operand): New predicate function. + (reg_or_cmp_int16_operand): New predicate function. + (extend_operand): New predicate function. + (m32r_adjust_code): New scheduling function. + (m32r_adjust_priorty): New scheduling function. + (m32r_sched_init): New scheduling function. + (m32r_sched_reorder): New scheduling function. + (m32r_sched_variable_issue): New scheduling function. + (direct_return): New codegen function. + (m32r_not_same_reg): New rtl testsing function. + + * config/m32r/m32r.md: Fix compile time warnings. + Add support for pre decrement and post increment memory + references. + Add S patterns. + Add fabs patterns. + +Mon Nov 8 22:20:13 1999 J"orn Rennecke + + * global.c (EXECUTE_IF_CONFLICT): Don't define. + (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead. + (find_reg): Likewise. + +Mon Nov 8 13:16:46 1999 Jason Eckhardt + + * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0 + to avoid assembler errors. + +Mon Nov 8 15:38:41 1999 Nick Clifton + + * config/v850/v850-protos.h: New file: Prototypes for functions + defined in v850.c + * config/v850/v850.h: Move prototypes to v850-protos.h + * config/v850/v850.c: Move prototypes to v850-protos.h + * config/v850/v850.md: Fix compile time warnings. + + * config/fr30/fr30-protos.h: New file: Prototypes for functions + defined in fr30.c + * config/fr30/fr30.h: Move prototypes to fr30-protos.h + * config/fr30/fr30.c: Fix compile time warnings. + * config/fr30/fr30.md: Fix compile time warnings. + +Mon Nov 8 07:25:37 1999 Mark Mitchell + + * tree.h (get_containing_scope): Declare it. + * tree.c (get_containing_scope): New fucntion. + (decl_function_context): Use it. + * toplev.c (rest_of_compilation): Use get_containing_scope. + +aMon Nov 8 03:03:07 1999 Alexandre Oliva + + * Makefile.in (rtl.o): Depend on toplev.h. + +Sun Nov 7 20:55:14 1999 Mark Mitchell + + * cse.c (delete_trivially_dead_insns): Replace alloca with + xmalloc/xcalloc. + * except.c (update_rethrow_references): Likewise. + (init_eh_nesting_info): Likewise. + * function.c (identify_blocks): Likewise. + * gcse.c (dump_hash_table): Likewise. + * graph.c (print_rtl_graph_with_bb): Likewise. + * loop.c (combine_movables): Likewise. + (move_movables): Likewise. + (count_loop_regs_set): Likewise. + (strength_reduce): Likewise. + * profile.c (compute_branch_probabilities): New function, split + out from ... + (branch_prob): Here. Replace alloca with xmalloc/xcalloc. + * regclass.c (regclass): Likewise. + * regmove.c (regmove_optimize): Likewise. + * toplev.c (compile_file): Likewise. + (main): Don't mess with the stack rlimit. + +Sun Nov 7 19:41:17 1999 Catherine Moore + + * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define. + (ASM_DECLARE_FUNCTION_SIZE): Conditionally define. + +Sun Nov 7 10:23:28 1999 Mark P. Mitchell + + * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns. + +Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com) + + * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change. + (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in + macro expansion. + +Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net) + + * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo. + +Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (post_dominators): Kill. + (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators. + (compute_code_hoist_data): Use compute_flow_dominators. Do not + pass in a pdom array since we do not need pdoms. + * haifa-sched.c (schedule_insns): Similarly. + * flow.c (compute_dominators): Remove dead function. + (compute_flow_dominators): Do not compute doms or pdoms if the + caller does not request them. Split up loop to build doms and + pdoms. Use a worklist to compute doms and pdoms. + * basic-block.h (compute_dominators): Remove prototype. + +Sat Nov 6 11:38:39 1999 Richard Henderson + + * haifa-sched.c (struct haifa_insn_data, h_i_d): New. + (insn_luid, insn_priority, insn_costs, insn_units): Remove. + (insn_reg_weight, insn_depend, insn_dep_count): Remove. + (insn_blockage, insn_ref_count, line_note, insn_tick): Remove. + (cant_move, fed_by_spec_load, is_load_insn): Remove. + (schedule_region): Remove unused variable. + (schedule_insns): Allocate h_i_d, and not all the separate arrays. + +Sat Nov 6 10:00:34 1999 Mark Mitchell + + * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * reg-stack.c (reg_to_stack): Likewise. + (convert_regs_2): Likewise. + * reload1.c (reload_as_needed): Likewise. + +Sat Nov 6 09:57:59 1999 Mark Mitchell + + * Makefile.in (dbxout.o): Depend on ggc.h. + (dwarf2out.o): Likewise. + (xcoffout.o): Likewise. + * dbxout.c: Include ggc.h. + (dbxout_init): Register lastfile as a root. + * dwarf2out.c: Include ggc.h. + (dwarf2out_line): Register lastfile as a root. + * xcoffout.c: Include ggc.h. + (xcoffout_source_line): Register xcoff_lastfile as a root. + +Sat Nov 6 09:52:09 1999 Richard Henderson + + * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination. + +Sat Nov 6 07:48:59 1999 Catherine Moore + + * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already + defined. + (ASM_DECLARE_FUNCTION_SIZE): Likewise. + +Fri Nov 5 18:33:39 1999 J"orn Rennecke + + * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro. + (EXECUTE_IF_CONFLICT): Likewise. + (ALLOCNO_LIVE_P): Avoid signed division. + (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise. + (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT. + (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET. + +Fri Nov 5 12:04:02 1999 Richard Henderson + + * haifa-sched.c (schedule_block): Don't crash if there's no + next insn for an interblock movement. + (add_branch_dependences): Don't allow clobber insns to move either. + +Fri Nov 5 10:18:11 1999 Richard Henderson + + * i386.c (split_xf): New. + * i386-protos.h: Declare it. + * i386.md (movxf_1): Add general regs alternatives. + (movxf_1+1): New splitter for same. + +Fri Nov 5 12:05:52 1999 Nick Clifton + + * function.c (purge_addressof_1): Add missing return values. + +Fri Nov 5 10:07:25 1999 Nick Clifton + + * function.c (is_addressof): New function. Returns true if + the given piece of RTL is an ADDRESSOF. + (purge_addressof_1): Make boolean. Return false if the + ADDRESSOFs could not be purged. + (purge_addressof): If ADDRESSOFs could not be purged from the + notes attached to an insn, remove the offending note(s), + unless they are attached to a libcall. + +1999-11-05 Andreas Jaeger + + * genoutput.c (null_operand =): Initialize all fields. + + * errors.h: Add extern to prototypes. + +Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (m68k-next-nextstep4): Handle Openstep 4.2. + * configure: Rebuilt. + +Fri Nov 5 01:24:37 1999 J"orn Rennecke + + * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division. + (mirror_conflicts): New function. + (global_alloc): Call it. + (expand_preferences): Remove redundant CONFLICTP test. + (find_reg, dump_conflicts): Likewise. + (prune_preferences): Process conflicts one word at a time. + +Fri Nov 5 01:05:21 1999 Richard Henderson + + * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP + instead of an explicit loop. + +Thu Nov 4 23:07:14 1999 Jim Wilson + + * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt, + if REG_RETVAL check succeeds, then put classp in src_elt. + +Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (pad_to_arg_alignment): Only update argument_pad + if the argument's alignment is greater than STACK_BOUNDARY. + +Thu Nov 4 16:44:53 1999 Richard Henderson + + * bitmap.h (BITMAP_XFREE): New. + * flow.c (life_analysis): Use it. + (life_analysis_1): Free blocks. + + * combine.c (undo_commit): New. + (try_combine): Use it. Don't zap undobuf.undos. + (combine_instructions): Don't zap undobuf.undos; free the + undobuf.frees list. + + * local-alloc.c (local_alloc): Free qty_phys_num_sugg. + + * stmt.c (cost_table_): New. + (estimate_case_costs): Use it instead of xmalloc. + + * toplev.c (compile_file): Reuse dumpname memory instead + of strdup'ing it. + +Thu Nov 4 16:36:44 1999 Richard Henderson + + * reg-stack.c (convert_regs_1): Initialize target_stack->top + after verifying an EH edge. + + * haifa-sched.c (init_rgn_data_dependences): Correctly + size bb_pending_lists_length when zeroing. + +Thu Nov 4 16:36:36 1999 Richard Henderson + + * function.c (diddle_return_value): New. + (expand_function_end): Use it. + * stmt.c (expand_null_return): Likewise. + (expand_value_return): Likewise. + + * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level. + + * reload1.c (reload): Don't remove return value clobbers. + +Thu Nov 4 13:33:46 1999 Richard Henderson + + * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal. + +Thu Nov 4 12:49:52 1999 Richard Henderson + + * cse.c (cse_main): Use xmalloc, not alloca. + (cse_basic_block): Likewise. + * local-alloc.c (local_alloc): Likewise. + +Thu Nov 4 14:22:12 1999 David Billinghurst + Alexandre Oliva + + * rtl.c: Include toplev.h. + (fatal): Remove declaration. + +Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_block): Fix thinko. + +1999-11-03 James McKelvey + + * fixinc/fixincl.c(create_file): Allow for systems that do not have + S_IR* defined values + +1999-11-03 Philippe De Muyter + + * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer; + call `malloc' instead. + +Wed Nov 3 23:05:14 1999 Mark Mitchell + + * flags.h (flag_renumber_insns): Declare. + * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print + renumbering table. + * rtl.h (renumber_insns): Change prototype. + * toplev.c (flag_renumber_insns): Define. + (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns. + +Wed Nov 3 15:11:27 1999 David S. Miller + + * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts + and fpsqrtd. Use them and create fdiv function unit to more + accurately represent fpu sqrt pipeline semantics on UltraSparc. + * config/sparc/sparc.c: Account for fpsqrt{s,d} changes. + +Wed Nov 3 15:11:27 1999 Matteo Frigo + + * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to + 3 on UltraSparc. + * config/sparc/sparc.c (ultra_schedule_insn): Insert launched + insn into ready list, do not use just a raw swap. + +Wed Nov 3 14:51:59 1999 Mark P. Mitchell + + * rtl.h (renumber_insns): New function. + (remove_unnecessary_notes): Likewise. + * emit-rtl.c (renumber_insns): Define. + (remove_unncessary_notes): Likewise. + * toplev.c (rest_of_compilation): Remove dead code. + Use renumber_insns and remove_unncessary_notes. + + * gcse.c (struct null_pointer_info): New type. + (get_bitmap_width): New function. + (current_block): Remove. + (nonnull_local): Likewise. + (nonnull_killed): Likewise. + (invalidate_nonnull_info): Take a null_pointer_info as input. + (delete_null_pointer_checks_1): New function. + (delete_null_pointer_checks): Use it. + + * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc. + (split_edges): Likewise. + (schedule_block): Likewise. + (compute_block_backward_dependencies): Likewise. + (schedule_region): Likewise. + (schedule_insns): Likewise. + +Wed Nov 3 15:40:23 1999 Catherine Moore + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default. + * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME. + * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME. + * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME. + * jump.c (delete_unreferenced_labels): Don't delete if + LABEL_ALTERNATE_NAME is set. + * print-rtl.c (print_rtx): Dump alternate name. + * rtl.def (CODE_LABEL): Change format to "iuuis00s". + * rtl.h (LABEL_ALTERNATE_NAME): Define. + * rtl.texi (LABEL_ALTERNATE_NAME): Document. + * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document. + +Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi + + * fix-header.c (recognized_extern, recognized_function): Constify + a char*. + + * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'. + (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. + (compute_available): Remove unused variable `last'. + (compute_nearerout): Remove unused variable `temp_bitmap'. + (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. + Remove unused variable `x'. + + * scan.h (recognized_function, recognized_extern): Constify a + char*. + + * simplify-rtx.c (simplify_rtx): Remove unused variable `new'. + +Wed Nov 3 10:40:53 1999 Franz Sirl + + * varasm.c (decode_rtx_const): Use XSTR to access the string + of a SYMBOL_REF. + +Wed Nov 3 10:10:58 1999 Richard Henderson + + * c-decl.c (duplicate_decls): Copy DECL_MODE too. + +Wed Nov 3 12:12:59 1999 Bernd Schmidt + + * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes. + +Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (ireg_operand): New function. + * pa.h (PREDICATE_CODES): Handle ireg_operand. + * pa.md (parallel_addb, parallel_movb): Use ireg_operand. + Fix out of date comment. + + * pa.md (negdi2): Turn into expander + anonymous pattern. + + * reload.c (find_reloads): Fix typos in recent change. + + * dwarf2out.c: Do not include ctype.h. + +Tue Nov 2 21:53:44 1999 Richard Kenner + + * regclass.c (record_reg_classes): Always use may_move_cost when + seeing how operand fits with various register classes. + +Tue Nov 2 15:38:17 1999 Richard Henderson + + * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes. + * toplev.c: Revert Nov 1 13:22 change. + +Tue Nov 2 14:21:37 1999 Jason Eckhardt + + * config/pa/pa.md (height reduction patterns): Add checks for + overlapping operands to avoid semantic-destroying splits for + height reduction patterns. + +Tue Nov 2 15:27:31 1999 Alexandre Oliva + + * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should + have been an hyphen, fixed. + * configure: Rebuilt. + +Tue Nov 2 17:04:36 1999 Nick Clifton + + * config/arm/tpe.h: Add prototypes for exported functions. + * config/arm/pe.c: Fix compile time warnings. + * config/arm/semi.h: Fix compile time warnings. + * config/arm/arm.c: Fix compile time warnings. + * config/arm/arm.h: Fix compile time warnings. + * config/arm/arm.md: Fix compile time warnings. + * config/arm/thumb.c: Fix compile time warnings. + * config/arm/thumb.h: Fix compile time warnings. + * config/arm/thumb.md: Fix compile time warnings. + +Tue Nov 2 04:10:24 1999 Jan Hubicka + + * jump.c (jump_optimize_1): Swap the incscc and the conditional mode + detection code + + * unroll.c (unroll_loop): Remove LOOP notes when loop is + completely unrolled. + +Tue Nov 2 16:57:22 1999 Bernd Schmidt + + * cse.c (simplify_plus_minus, check_fold_const): Delete declarations. + +Tue Nov 2 09:43:00 1999 Catherine Moore + + * Makefile.in (genattrtab): Don't use (HOST_RTLANAL). + * rtl.h (rtx_equal_p): Move prototype. + * rtl.c (rtx_equal_function_value_matters): Move from + rtlanal.c + (rtx_equal_p): Likewise. + * rtlanal.c (rtx_equal_function_value_matters): Delete. + (rtx_equal_p): Likewise. + +Mon Nov 1 23:21:17 1999 Jason Merrill + + * libgcc2.c (__do_global_dtors): Only do EH frame stuff if + ! HAS_INIT_SECTION. + +Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com) + + * gcc.1 (PA options): Remove obsolete -mshared-libs options. + + * pa.h (ADDR_VEC_ALIGN): Define. + + * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT + notes when presented with "if (foo) break; end_of_loop" and + the break sequence gets moved out of the loop. + + * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc. + Remove explicit zero initializations of entries within MAP. + +Mon Nov 1 18:09:14 1999 Richard Henderson + + * reg-stack.c (convert_regs_1): Handle EH edges specially. + +Mon Nov 1 15:41:01 1999 Mark P. Mitchell + + * bitmap.h (BITMAP_XMALLOC): New macro. + * flow.c (CLEAN_ALLOCA): Remove. + (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca. + (life_analysis): Likewise. + (update_life_info): Don't use CLEAN_ALLOCA. + (life_analysis_1): Use xmalloc/xcalloc instead of alloca. + (calculate_global_regs_live): Likewise. + (print_rtl_with_bb): Likewise. + (verify_flow_info): Likewise. + * global.c (global_alloc): Likewise. + (global_conflicts): Likewise. + * integrate.c (save_for_inline_nocopy): Likewise. + (expand_inline_function): Likewise. + * jump.c (jump_optimize_1): Likewise. + (duplicate_loop_exit_test): Likewise. + (thread_jumps): Likewise. + * loop.c (loop_optimize): Likewise. + (combine_givs): Likewise. + (recombine_givs): Likewise. + * reorg.c (dbr_schedule): Likewise. + * unroll.c (unroll_loop): Likewise. + + * combine.c (combine_instructions): Use xmalloc instead of alloca. + +Mon Nov 1 13:22:30 1999 Richard Henderson + + * toplev.c (rest_of_compilation): Don't optimize the CFG + when rebuilding, just before dbr. + +Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi + + * output.h (assemble_end_function, assemble_destructor, + assemble_constructor, assemble_gc_entry, assemble_global, + assemble_label, output_constant_pool) Constify a char*. + + * varasm.c (assemble_destructor, assemble_constructor, + assemble_gc_entry, assemble_end_function, assemble_global, + assemble_label, output_constant_pool): Likewise. + +Mon Nov 1 14:22:51 1999 Nick Clifton + + * config/arm/thumb.c (thumb_expand_prologue): Add comments + explaining what is goin on in this function. + +Mon Nov 1 08:03:15 1999 Richard Kenner + + * regclass.c (record_reg_classes): In matching case, recompute + costs since the direction of movement is different. + +Sun Oct 31 21:59:34 MST 1999 Diego Novillo + + * resource.c (mark_target_live_regs): For unconditional branches, + the resources found at the branch target should be added to the + resources found so far, not intersected. + +Sun Oct 31 15:48:49 1999 Philippe De Muyter + + * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for + old cpp's. + * fixinc/fixincl.c (fcntl.h) : Do not include this file twice. + (sys/mman.h): Include this file only if #HAVE_MMAP. + (run_compiles): Initialize `esac_fmt' with one old KR string, not + with automatically concatenated ANSI strings. + +Sun Oct 31 23:57:07 1999 Mark Mitchell + + * ggc-page.c (struct page_entry): Remove save_num_free_objects. + (DIV_ROUND_UP): Robustify. + (ggc_recalculate_in_use_p): New function. + (release_pages): Don't inline it. + (ggc_alloc_obj): Don't refuse to allocate objects on pages for + outer contexts. + (ggc_pop_context): Use ggc_recalculate_in_use_p. + (clear_marks): Always save in_use_p. + (sweep_pages): Use ggc_recalculate_in_use_p. + (ggc_page_print_statistics): Avoid signed/unsigned comparisons. + Release pages before counting statistics. + +Sun Oct 31 23:42:37 1999 Mark Mitchell + + * toplev.c (rest_of_compilation): Fix thinko in this change: + + Fri Oct 29 15:25:07 1999 Arnaud Charlet + + (rest_of_compilation): If inside an inlined external function, + pretend we are just being declared. + +Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (calculate_global_regs_live): Fix thinko. + + * integrate.c (expand_inline_function): Fix bugs in previous + change from Oct 28, 1999. + +Sun Oct 31 20:27:45 1999 Mark Mitchell + + * stmt.c (expand_value_return): Fix typo in this change: + + Thu Oct 28 18:06:50 1999 Richard Kenner + (expand_value_return): Correctly convert VAL when promoting function + return; support RETURN_REG being a PARALLEL. + +Sun Oct 31 20:25:42 1999 Mark P. Mitchell + + * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs. + +Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi + + * hard-reg-set.h (reg_names): Constify a char*. + + * regclass.c (reg_names): Likewise. + + * regs.h (reg_names): Likewise + + * a29k/a29k.c (reg_names): Delete declaration. + + * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*. + + * arc/arc.c (arc_save_restore, arc_output_function_prologue, + arc_output_function_epilogue): Likewise. + + * elxsi/elxsi.c (reg_names): Likewise. + + * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. + + * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move): + Likewise. + + * m88k/m88k.c (output_function_profiler): Likewise. + + * sparc/sparc.c (sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Likewise. + +Sun Oct 31 13:32:15 CET 1999 Marc Lehmann + + * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber + warning from -Wuninitialized and put it under -W. + * function.c (uninitialized_vars_warning): Warn only when the + corresponding flag is set. + +Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): If an insn has only a single set, SRC_EQV + is nonzero and the single set does not have an elt, then assign + it an elt. + + * simplify-rtx.c: New file. + * Makefile.in (OBJS): Add simplify-rtx.o + (simplify-rtx.o): Add dependencies. + * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes. + * cse.c: Use simplify_gen_binary intead of cse_gen_binary. + (cse_gen_binary, simplify_unary_operation): Delete. + (simplify_binary_operation, simplify_plus_minus): Likewise. + (check_fold_consts, simplify_relation_operation): Likewise. + (simplify_ternary_operation): Likewise. + (delete_trivially_dead_insns): Simplify the contents of the + REG_EQUAL note before trying to substitute it into the source + of the reg-reg copy at the end of a libcall sequence. + + * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All + references/callers changed. + + * mn10200.c (mn10200_va_arg): Force the return value into a + register. + + * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro. + + * cccp.c (macroexpand): Avoid out of range accesses for omitted + arguments. + +Sat Oct 30 22:42:50 1999 Stephen L Moshier + + * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant. + +Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold): Fix thinko when optimizing comparisons + against -0.0. + +Sat Oct 30 21:32:17 1999 David Starner + + * gcc.texi (Passes): Update front-end files to their current + location. + +Sat Oct 30 14:41:40 1999 Richard Henderson + + * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. + (PREDICATE_CODES): Add addition_operation. + * alpha-protos.h (addition_operation): Declare. + (secondary_reload_class): Likewise. + * alpha.c (addition_operation): New. + (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS. + * alpha.md (adddi3): Turn into expander. + (*lda, *adddi_2): New. + (movsf, movdf patterns): Don't preference integer regs. + (movsi, movdi patterns): Don't preference fp regs. + +Sat Oct 30 14:38:22 1999 Richard Henderson + + * genrecog.c (write_switch): Check for duplicate CODE cases. + +Sat Oct 30 14:31:48 1999 Richard Henderson + + * ggc-common.c: Update pre-function commentary. + * ggc-page.c: Likewise. + (poison): Remove. + (poison_pages): Use memset directly. + (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages. + (ggc_collect): Poison before sweeping. + * ggc-simple.c: Update pre-function commentary. + (ggc_alloc_obj): Poison non-zeroed memory. + +Sat Oct 30 14:28:52 1999 Mark Mitchell + + * ggc-common.c (ggc_print_statistics): Make arguments to fprintf + match format string, even on 64-bit hosts. + * gcc-page.c (ggc_page_print_statistics): Likewise. + +Sat Oct 30 14:38:04 1999 Catherine Moore + + * config/i386/i386.c (ix86_cpu): Revert last patch. + * config/i386/i386.h (ix86_cpu): Ditto. + +Fri Oct 29 17:00:42 1999 Jim Wilson + + * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from + TYPE_SIZE, convert type of result to sizetype. + +Fri Oct 29 14:34:17 1999 Richard Henderson + + * flow.c (count_or_remove_death_notes): Equate NULL with the + universal set. + + * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change. + * toplev.c (rest_of_compilation): Rebuild CFG immediately before + dbr_schedule. + + * i386.c (pic_label_no): Delete. + (ix86_attr_length_default): Don't use single_set to peek + inside a parallel. + + * recog.c (peephole2_optimize): Allow recog_next_insn to index + the first insn after bb->end. + * i386.md (push mem peeps): Scratch is live after evaluation + of the memory. + (cmp mem peep): Similarly. + +Fri Oct 29 11:50:11 1999 Catherine Moore + + * calls.c (emit_library_call_value): Fix declaration of alignment_pad. + * function.c (pad_to_arg_alignment): Add missing braces. + +Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi + + * alpha/alpha-protos.h (literal_section): Add prototype. + (alpha_need_linkage, alpha_start_function,alpha_end_function): + Constify a char*. + + * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add + prototype. + (alpha_start_function, alpha_end_function, float_strings, + alpha_need_linkage): Constify a char* + + * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise. + + * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise. + +Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi + + * flow.c (debug_flow_info): Add prototype. + + * gcc.c (main): Likewise. + + * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work): + Likewise. + + * reload1.c (failed_reload, set_reload_reg): Likewise. + + * mips-tfile.c (main): Likewise. + (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark + with ATTRIBUTE_NORETURN. + +Fri Oct 29 18:16:03 1999 Andrew Haley + + * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if + DECL is not a memory ref. + +Fri Oct 29 09:05:34 1999 Catherine Moore + + * config/i386/i386.h (ix86_cpu): Remove extern attribute. + * config/i386/i386.c (ix86_cpu): Add extern attribute. + +Fri Oct 29 16:30:04 1999 Andrew Haley + + * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN. + * config/mips/elf64.h: ditto. + +Fri Oct 29 08:03:57 1999 Catherine Moore + + * expr.c (emit_push_insn): New argument alignment_pad. + Update all callers. Adjust stack pointer based on alignment pad. + * function.c (pad_to_arg_alignment): New argument alignment_pad. + Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY. + (locate_and_pad_parm): New argument alignment_pad. Update all + callers. + * expr.h (emit_push_insn): Update prototype. + (locate_and_pad_parm): Update prototype. + * calls.c (arg_data): Add new field alignment_pad. + (initialize_argument_information): Initialize alignment_pad. + +Fri Oct 29 02:51:35 1999 Mark Mitchell + + * except.c (free_eh_nesting_info): Free the info itself. + * function.c (free_after_compilation): Don't free NULL. + * gcse.c (alloc_pre_mem): Free the temp_bitmap, too. + (pre_edge_insert): Free inserted. + * stmt.c (free_stmt_status): Don't free NULL. + +Fri Oct 29 15:25:07 1999 Arnaud Charlet + + * gcov.c (DIR_SEPARATOR): Provide default. + (output_data): Add test for MS-DOS format absolute filename. + (fancy_abort): Correct program name. + (open_files): Open all files in binary mode. + * libgcc2.c (__bb_exit_func): Likewise. + + * profile.c (init_branch_prob): Specify binary when opening files. + + * flags.h (flag_unwind_tables): New decl. + * toplev.c (flag_unwind_table): New definition. + (f_options): Add -funwind-tables. + (decode_g_option): Clarify warning when unknown -g option is given. + (rest_of_compilation): If inside an inlined external function, + pretend we are just being declared. + + * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables. + (dwarf2out_frame_finish): Likewise. + +Fri Oct 29 07:44:26 1999 Vasco Pedro + + * fold-const.c (merge_ranges): If not in0, but in1, handle + upper bounds equal like subset case. + +Thu Oct 28 19:22:24 1999 Douglas Rupp + + * dbxout.c (dbxout_parms): Generate a second stabs line for parameters + passed in a register but moved to the stack. + +Thu Oct 28 19:12:57 1999 Sam Tardieu + + * gcc.c (pass_exit_codes, greatest_status): New variables. + (struct option_map): Add entry for "--pass-exit-codes". + (execute): Update greatest_status if error. + (display_help): Add documentation for -pass-exit-codes. + (process_command): Handle -pass-exit-codes. + (main): Look at pass_exit_codes and greatest_status on call to exit. + +Thu Oct 28 18:06:50 1999 Richard Kenner + + * reload.c (find_reloads): Refine test for no input reload + case to not includes reloads emitted after insn. + + * function.c (find_temp_slots_from_address): Handle sum involving + a register that points to a temp slot. + (update_temp_slot_address): Make recursive call if both old and + new are PLUS with a common operand. + * calls.c (expand_call): Mark temp slot for result as having + address taken. + + * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case. + + * gcc.c (process_command): Add standard_exec_prefix with "GCC" + component as well as "BINUTILS". + + * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS. + * integrate.c (copy_rtx_and_substitute): Likewise. + (expand_inline_function, integrate_parm_decls, integrate_decl_tree): + All callers changed. + * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise. + + * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use + gdb extensions, write size of type; also be more consistent + in using references when this is a subtype. + + * pa.md (extv, extzv, insv): Use define_expand to reject constant + that is out of range. + + * loop.c (unknown_constant_address_altered): New variable. + (prescan_loop): Initialize it. + (note_addr_stored): Set it for RTX_UNCHANGING_P MEM. + (invariant_p, case MEM): Remove handling for volatile and readonly; + check new variable if readonly. + (check_dbra_loop): Chdeck unknown_constant_address_altered. + + * cse.c (canon_hash, case MEM): Do not record if BLKmode. + (addr_affects_sp_p): Removed from note_mem_written and only + define #ifdef AUTO_INC_DEC. + + * alpha.c (input_operand, case ADDRESSOF): Treat as REG. + + * regclass.c (record_reg_classes): Properly handle register move + directions. + + * varasm.c (initializer_constant_valid_p, case MINUS_EXPR): + Don't think valid if both operands are invalid. + (struct constant_descriptor): New field RTL. + (mark_const_hash_entry): Mark it. + (record_constant{,_rtx}): Initialize it. + (output_constant_def): Allocate RTL in permanent obstack and + save in table. + ({record,compare}_constant_1): Modes must match for + CONSTRUCTOR of ARRAY_TYPE. + + * c-common.h (initializer_constant_valid_p): Delete decl from here. + * output.h (initializer_constant_valid_p): Move decl to here. + * c-common.c (initializer_constant_valid_p): Delete function from here. + * varasm.c (initializer_constant_valid_p): Move function to here. + + * tree.h (STRIP_SIGN_NOPS): New macro. + * fold-const.c (optimize_minmax_comparison): New function. + (invert_truthvalue, case WITH_RECORD_EXPR): New case. + (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS. + (fold, case EQ_EXPR): Call optimize_minmax_comparison and add + cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and + widening conversions. + (fold, case LE_EXPR): Rework changing unsigned to signed comparisons + to look at size of mode, not precision of type; also add missing cases. + (optimize_bit_field_compare, decode_field_reference): Don't try to + optimize COMPONENT_REF of a PLACEHOLDER_EXPR. + + * dwarf2out.c (ctype.h): Include. + (dwarf2out_set_demangle_name_func): New function. + (size_of_line_info): Deleted. + (output_line_info): Compute size of line info table from difference + of labels. + (base_type_die, add_name_attribute): Call demangle function, if any. + (field_byte_offset): Use bits per word for variable length fields. + (gen_array_type_die): Add array name. + (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline. + (dwarf2out_add_library_unit_info): New function. + + * explow.c (set_stack_check_libfunc): New function. + (stack_check_libfunc): New static variable. + (probe_stack_range): Allow front-end to set up a libfunc to call. + + * combine.c (simplify_comparison): When making comparison in wider + mode, check for having commuted an AND and a SUBREG. + (contains_muldiv): New function. + (try_combine): Call it when dividing a PARALLEL. + (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart. + (simplify_comparison, case ASHIFTRT): Recognize sign-extension of + a PLUS. + (record_value_for_reg): If TEM is a binary operation with two CLOBBERs, + use one of the CLOBBERs instead. + (if_then_else_cond): If comparing against zero, just return thing + being compared. + + * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x). + Don't generate shifts and subtract if have conditional arithmetic. + + * rtl.h (delete_barrier): New declaration. + * jump.c (jump_optimize): Set up to handle conditional call. + In conditional arithmetic case, handle CALL_INSN followed by a BARRIER. + (delete_barrier): New function. + + * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode. + + * recog.c (nonmemory_operand): Accept ADDRESSOF. + + * tree.c (build_type_attribute_variant): Push to obstack of + ttype around type_hash_canon call. + + * expr.c (placeholder_list): Move decl to file scope. + (expand_expr): Don't force access to volatile just because its + address is taken. + If ignoring reference operations, just expand the operands. + (expand_expr, case COMPONENT_REF): Propagate + EXPAND_CONST_ADDRESS to recursive call when expanding inner. + Refine test for using bitfield operations vs pointer punning. + (expand_expr, case CONVERT_EXPR): If converting to + BLKmode UNION_TYPE from BLKmode, just return inner object. + Use proper mode in store_field call. + Properly set sizes of object to store and total size in store_field + call for convert to union. + (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in + memory (like for ADDR_EXPR). Also, don't put constant in register if + we'll want it in memory. + (readonly_fields_p): New function. + (expand_expr, case INDIRECT_REF): Call it if LHS. + (expand_assignment): Handle a RESULT_DECL where + DECL_RTL is a PARALLEL. + (do_jump, case WITH_RECORD_EXPR): New case. + (get_inner_reference): Always go inside a CONVERT_EXPR + and NOP_EXPR if both modes are the same. + (store_field): Use bitfield operations if size of bitsize is not same + as size of RHS's type. + Check for bitpos not a multiple of alignment in BLKmode case. + Do block move in largest possible alignment. + (store_constructor): Set BITSIZE to -1 for variable size and properly + in case of array of BLKmode. + (expand_expr_unaligned): New function. + (do_compare_and_jump): Call it. + + * mips/iris5.h (SWITCHES_NEED_SPACES): New macro. + * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES + does not include 'o'. + + * function.c (instantiate_virtual_regs_1, case SET): Handle case where + both SET_DEST and SET_SRC reference a virtual register. + (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG. + + * integrate.c (expand_inline_function): Handle case of setting + virtual stack vars register (from built in setjmp); when parameter + lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early. + (subst_constant): Add new parm, MEMONLY. + (expand_inline_function, integrate_parm_decls): Pass new parm. + (integrate_decl_tree): Likewise. + (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P. + (try_constants): Call subst_constants twice, with MEMONLY 0 and 1. + (copy_rtx_and_substitute, case SET): Add explicit calls to + copy_rtx_and_substitute for both sides. + + * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for + constraints. + (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for + within INDEX_TYPE, instead of before. + (fixup_gotos): Use f->target_rtl, not the next insn, + since latter may be from a later fixup. + (expand_value_return): Correctly convert VAL when promoting function + return; support RETURN_REG being a PARALLEL. + (expand_return): When checking for result in regs and having + cleanup, consider PARALLEL in DECL_RTL as being in regs. + +1999-10-28 21:27 -0700 Zack Weinberg + + * cpplib.h (struct cpp_buffer: fname, nominal_fname, + last_nominal_fname): Mark const. + (struct include_hash: name, nshort, control_macro): Mark + const. + (struct macrodef: symnam): Mark const. + (struct if_stack: fname): Mark const. + (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete. + (IStable): New character-syntax array which encompasses all + the old is_foo arrays. + (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace, + is_space): New macros for interrogating IStable. + (check_macro_name): Kill last argument. All callers changed. + + * cppinit.c (initialize_char_syntax): Delete. + (is_idchar, is_idstart, is_hor_space, is_space, + trigraph_table): Delete. + (IStable): New. Initialize with clever macros to avoid + information duplication. + (builtin_array): Table of builtins to get rid of explicit list + in initialize_builtins. + (initialize_builtins): Use builtins_array. + (cpp_start_read): Call init_IStable, and set IStable['$'] if + opts->dollars_in_ident. + + * cppexp.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + (cpp_parse_expr): Avoid 'format string is not constant' + warning. Use ISGRAPH to identify printable chars. + * cppfiles.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + (read_and_prescan): Map trigraphs to chars with open-coded + if-else-if-... sequence, not a lookup table. + * cpphash.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + * cpplib.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused). + (check_macro_name): Remove ability to report an invalid + assertion name, which is never used. + (do_line): Constify a couple of char *'s. + * cppmain.c (main): Call cpp_cleanup before returning. + +Thu Oct 28 21:16:35 1999 Mark Mitchell + + * ggc.h (struct ggc_statistics): New type. + (ggc_get_size): New function. + (ggc_print_statistics): Likewise. + * ggc-common.c (ggc_stats): New variable. + (ggc_mark_rtx_children): Keep statistics. + (ggc_mark_tree_children): Likewise. + (ggc_print_statistics): New function. + * ggc-page.c (struct globals): Add bytes_mapped field. + (alloc_anon): Update it. + (release_pages): Likewise. + (ggc_get_size): New function. + (ggc_page_print_statistics): New function. + * ggc-simple.c (ggc_get_size): New function. + +Fri Oct 29 06:32:44 1999 Geoffrey Keating + + * flow.c (propagate_block): When the last reference to a label + before an ADDR_VEC is deleted because the reference is a dead + store, delete the ADDR_VEC. + +Thu Oct 28 12:28:50 1999 Richard Henderson + + * resource.c (find_free_register): Don't use the frame pointer + if frame_pointer_needed. + +Thu Oct 28 10:02:00 1999 Jim Wilson + + * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. + (function_arg_pass_by_reference): Check for a NULL pointer in cum. + + * config/i960/i960.c (i960_va_start): New locals base, num. + Use INDIRECT_REF instead of ARRAY_REF on valist. + (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist. + +Thu Oct 28 09:45:48 1999 Mark Mitchell + + * gcse.c (delete_null_pointer_checks): Fix typo in previous change. + +Thu Oct 28 03:37:50 1999 Peter Gerwinski + + * tree.def (PLACEHOLDER_EXPR): Update comments. + +Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi + + * c-common.c (check_format_info): Avoid non-literal format string + warnings when `first_arg_num' is zero. + +Thu Oct 28 12:28:48 1999 Bernd Schmidt + + * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s. + +Thu Oct 28 11:05:13 1999 Richard Earnshaw + + * arm.md (casesi_insn): Add a clobber of the condition code + register. + +Mon Oct 18 21:16:06 1999 Fred Fish + + * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is + used by both cc1 and cc1plus. + +Thu Oct 28 10:00:48 1999 Nick Clifton + + * config/arm/arm.c: Initialise arm_structure_size_boundary to + DEFAULT_STRUCTURE_SIZE_BOUNDARY. + * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define + to the value 32 if it has not already been defined. + * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): + Override definition in arm.h with a value of 8. + +Thu Oct 28 03:12:02 1999 David Starner + + * c-pragma.c (push_alignment): Don't check the return value + of xmalloc. + +Thu Oct 28 03:08:38 1999 Matteo Frigo + + * sparc.h (ADJUST_COST): Fix thinko. + +Thu Oct 28 02:44:03 1999 Glen Nakamura + + * cccp.c (rescan): Fixed obp pointer handling around call to + check_expand subroutine. + +Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (delete_null_pointer_checks): Only record non-null info + for pseudos when examining stores. + + * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add + splitters for these patterns. Use "#" for output templates. + (addsi3_carryin_shift): New pattern. + +Thu Oct 28 10:20:02 1999 Geoffrey Keating + + * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG + of the function return register into a plain REG until + after function inlining is done. + +Wed Oct 27 15:21:46 1999 Richard Henderson + + * jump.c (jump_optimize_1): If we did cross-jumping, and + the data will matter, rebuild the CFG. + * reg-stack.c (reg_to_stack): Only (re)build the CFG if + not optimizing. Don't run shorten_branches. + * toplev.c (rest_of_compilation): Run shorten_branches after + reg_to_stack. + +Wed Oct 27 12:33:40 1999 Mark Mitchell + + * rtl.h (note_stores): Add additional paramter. + * rtlanal.c (reg_set_p_1): Take additional paramter. + (reg_set_last_1): Likewise. + (reg_set_p): Adjust call to note_stores. + (reg_set_last): Likewise. + (note_stores): Pass data parameter to worker function. + * alias.c (record_set): Take additional parameter. + (init_alias_analysis): Pass it. + * caller-save.c (mark_set_regs): Take additional parameter. + (save_call_clobbered_regs): Pass NULL to note_stores. + * combine.c (set_nonzero_bits_and_sign_copies): Take additional + parameter. + (record_dead_and_set_regs_1): Likewise. + (reg_dead_at_p_1): Likewise. + (combine_instructions): Adjust calls to note_stores. + (try_combine): Likewise. + (record_dead_insn): Remove. + (record_dead_and_set_regs): Adjust calls to note_stores. + (reg_dead_at_p): Likewise. + * cse.c (invalidate_skipped_set): Take additional parameter. + (cse_check_loop_start): Likewise. + (cse_check_loop_start_value): Remove. + (cse_set_around_loop): Adjust calls to note_stores. + * flow.c (notice_stack_pointer_modification): Take additional + parameter. Remove duplicate declaration. + (record_volatile_insns): Adjust calls to note_stores. + * gcse.c (record_set_info): Take additional parameter. + (record_last_set_info): Likewise. + (invalidate_nonnull_info): Likewise. + (record_set_insn): Remove. + (compute_sets): Adjust calls to note_stores. + (last_set_insn): Remove. + (compute_hash_table): Adjust calls to note_stores. + (insert_insn_end_bb): Likewise. + (delete_null_pointer_checks): Likewise. + * global.c (mark_reg_store): Take additional parameter. + (mark_reg_clobber): Likewise. + (reg_becomes_live): Likewise. + (global_conflicts): Adjust calls to note_stores. + (build_insn_chain): Likewise. + * integrate.c (note_modified_parmregs): Take additional parameter. + (mark_stores): Likewise. Make it static. + (save_for_inline_nocopy): Adjust calls to note_stores. + (try_constants): Likewise. + * integrate.h (mark_stores): Remove declaration. + * jump.c (mark_modified_reg): Take additional parameter. + (thread_jumps): Adjust calls to note_stores. + * local-alloc.c (validate_equiv_mem_from_store): Take additional + parameter. + (no_equiv): Likewise. + (reg_is_set): Likewise. + (validate_equiv_mem): Adjust calls to note_stores. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * loop.c (note_set_pseudo_multiple_uses_retval): Remove. + (note_addr_stored): Take additional parameter. + (note_set_pseudo_multiple_uses): Likewise. + (record_initial): Likewise. + (prescan_loop): Adjust calls to note_stores. + (strength_reduce): Likewise. + (check_dbra_loop): Likewise. + * regmove.c (flags_set_1): Take additional paramter. + (mark_flags_life_zones): Adjust calls to note_stores. + * reload1.c (mark_not_eliminable): Take additional parameter. + (forget_old_reloads_1): Likewise. + (reload_cse_invalidate_rtx): Likewise. + (reload_cse_check_clobber): Likewise. + (reload_combine_note_store): Likewise. + (move2add_note_store): Likewise. + (reload): Adjust calls to note_stores. + (reload_as_needed): Likewise. + (emit_reload_insns): Likewise. + (reload_cse_regs_1): Likewise. + (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx. + (reload_combine): Adjust calls to note_stores. + * resource.c (update_live_status): Take additional paramter. + (mark_target_live_regs): Adjust calls to note_stores. + * stupid.c (find_clobbered_regs): Take additional parameter. + (stupid_life_analysis): Adjust calls to note_stores. + +Wed Oct 27 19:26:12 1999 Nick Clifton + + * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete + definition. + + * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete + definition. + + * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms + of the variable arm_structure_size_boundary. + +Wed Oct 27 02:05:58 1999 Mark P. Mitchell + + * alias.c (init_alias_analysis): Allocate reg_known_value and + reg_known_equiv_p on the heap. Likewise for new_reg_base_value + and reg_seen. + (end_alias_analysis): Free reg_known_value and reg_known_equiv_p. + * cse.c (cse_main): Call end_alias_analysis. + * haifa-sched.c (schedule_insns): Likewise. + * local-alloc. (update_equiv_regs): Likewise. + * reload1.c (reload_cse_regs): Likewise. + +Wed Oct 27 01:49:17 1999 Rainer Orth + + * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET. + * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse + mapping from MASK_FPU. + +Wed Oct 27 01:42:26 1999 Scott Christley + + * sparc.md (call): Don't bound structure return size to 0xfff. + +Wed Oct 27 00:56:59 1999 Richard Henderson + + * resource.c (mark_target_live_regs): Check that the target + insn wasn't created after compute_bb_for_insn. + +Tue Oct 26 23:15:03 1999 Mark Mitchell + + * ggc-page.c (poison_pages): Don't be overzealous. + +Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com) + + * alias.c: Update comments for ADDRESS. + (nonlocal_reference_p): Look inside the ADDRESS to determine if + it is a local memory reference. + + * c-typeck.c (build_function_call): Check that the built-in + function is of class BUILT_IN_NORMAL before trying to recongize + it as BUILT_IN_ABS. + * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA. + * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE. + +Wed Oct 27 00:14:13 1999 Robert Lipe + + * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead + of alloca. + (pre_gcse): Likewise. + (hoist_expr_reaches_here_p): Likewise. + (hoist_code): Likewise. + (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core + code to ... + (pre_expr_reaches_here_p_work): ... here. + (expr_reaches_here_p): Replace alloca with xcalloc. Move core + code to ... + (expr_reaches_here_p_work): ... here. + +Tue Oct 26 20:42:45 1999 Richard Henderson + + * resource.c (find_basic_block): Delete. + (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead. + (init_resource_info): Call compute_bb_for_insn. + +Tue Oct 26 20:21:02 1999 Richard Henderson + + * flow.c (merge_blocks_move_predecessor_nojumps): Cope + with already adjacent blocks, but no fallthru. + (merge_blocks_move_successor_nojumps): Simplify. + (debug_flow_info): New. + + * toplev.c (rest_of_compilation): Open jump1 dump file before + jump and close after, as opposed to just using dump_rtl. + +Wed Oct 27 03:09:23 1999 J"orn Rennecke + + * reload.h (earlyclobber_operand_p): Declare. + * reload.c (earlyclobber_operand_p): Don't declare. No longer static. + * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with + an earlyclobbered output conflict with RELOAD_INPUT reloads - handle + case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p. + +Tue Oct 26 18:23:38 1999 Jan Hubicka + Richard Henderson + + * emit-rtl.c (emit_block_insn_before): New. + (emit_block_insn_after): New. + * basic-block.h: Declare them. + + * bitmap.h: Protect from multiple inclusion. + + * recog.c (scratch_operand): Handle VOIDmode correctly. + + * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New. + + * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack. + * function.c (assign_parms): Likewise. + * global.c (global_conflicts): Clarify STACK_REGS commentary. + + * reg-stack.c (max_uid): Remove. + (blocks, block_begin, block_end, block_drops_in): Remove. + (block_stack_in, block_out_reg_set, block_number): Remove. + (struct block_info_def, BLOCK_INFO): New. + (enum emit_where): New. + (current_block): New. + (BLOCK_NUM): Remove. + (mark_regs_pat, record_label_references): Remove. + (record_reg_life_pat, record_reg_life, find_blocks): Remove. + (nan): New. + (goto_block_pat, print_blocks, dump_stack_info): Remove. + (reg_to_stack): Simplified test for existance of fp code. Use + flow.c code. Call shorten_branches after cross-jump opt. + (check_asm_stack_operands): Renamed from record_asm_reg_life. + Return false if the asm doesn't use stack regs. Don't do life + analysis on the asm. + (emit_pop_insn): Replace function pointer arg `when' with + enum `where'. Update all callers. + (change_stack): Likewise. Update basic block end. + (emit_swap_insn): Use current_block->head to limit reverse search + for start of block. Use emit_block_insn_after. + (subst_stack_regs_pat): Handle USE and CLOBBER patterns. + (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct + structure assignment instead of bcopy. + (print_stack): New. + (convert_regs_entry, convert_regs_exit): New. + (convert_regs_1, convert_regs_2): Split out from convert_regs. + Work on basic blocks and the CFG. + (convert_regs): Use them. + + * i386.c (output_fix_trunc): Remove code for DImode input operand + not at top-of-stack. + * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with + appropriate mode. + (fix_truncdi_1): Allow any mode scratch. + +Tue Oct 26 13:30:35 1999 Richard Henderson + + * alpha.h (TARGET_MEM_FUNCTIONS): Define here. + * linux.h, netbsd.h, vms.h: Not here. + +1999-10-26 Gavin Romig-Koch + + * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY, + ISA_HAS_FP4,ISA_HAS_CONDMOVE): New. + (GENERATE_BRANCHLIKELY,HAVE_SQRT_P, + CONDITIONAL_REGISTER_USEAGE): Use them. + * config/mips/mips.c (mips_move_1word,mips_move_2words, + gen_conditional_branch,override_options) : Use them. + * config/mips/mips.md : Use them. + +Tue Oct 26 13:09:23 1999 Richard Henderson + + * i386.md (zero_extendqihi2): Use SImode register name with andl. + +Tue Oct 26 12:35:38 1999 Richard Henderson + + * integrate.c (function_cannot_inline_p): Don't allow inlining + if setjmp is used. + +Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi + + * c-parse.in (cast_expr): Constify. + + * cccp.c (special_symbol): Likewise. + + * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise. + + * dwarf2out.c (base_type_die): Likewise. + + * global.c (allocno_compare): Likewise. + + * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise. + + * regclass.c (fix_register): Likewise. + + * rtl.h (fix_register): Likewise. + + * stupid.c (stupid_reg_compare): Likewise. + + * toplev.c (decode_f_option): Likewise. + + * tree.c (build_complex_type): Likewise. + +Tue Oct 26 18:35:25 1999 Richard Earnshaw + + * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE. + +Tue Oct 26 15:42:56 1999 Bernd Schmidt + + * reload.c (find_reloads): Compute mode and nregs fields of all + reloads. + * reload1.c (calculate_needs_all_insns): Simplify a bit. + (calculate_needs): Use precomputed mode/nregs values. + (allocate_reload_reg): Likewise. + Break out two... + (failed_reload, set_reload_reg): ... new functions. + (choose_reload_regs_init): New function, mostly broken out from... + (choose_reload_regs): ... here. Lose all the save_xxx nonsense. + Also lose one #if 0 block. + +Tue Oct 26 02:48:32 1999 Marc Espie + + * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name + substitution. + +Tue Oct 26 01:27:32 1999 Mark Mitchell + + * tree.h (BLOCK_TYPE_TAGS): Remove. + (BLOCK_END_NOTE): Likewise. + (BLOCK_LIVE_RANGE_FLAG): Likewise. + (BLOCK_LIVE_RANGE_START): Likewise. + (BLOCK_LIVE_RANGE_END): Likewise. + (tree_block): Remove live_range_flag, live_range_var_flag, and + type_tags. Remove end_note, live_range_start, and live_range_end. + (remember_end_note): Remove prototype. + * tree.c (build_block): Don't set BLOCK_TYPE_TAGS. + * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call + remember_end_note. + * ggc-common.c (ggc_mark_tree_children): Don't mark + BLOCK_TYPE_TAGS or BLOCK_END_NOTE. + * integrate.c (adjust_copied_decl_tree): Remove. + * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS. + * stmt.c (last_block_end_note): Remove. + (init_stmt): Don't add a GC root for it. + (expand_fixup): Don't set it. + (remember_end_note): Remove. + (expand_end_bindings): Don't set last_block_end_note. + +Tue Oct 26 00:41:54 1999 Bernd Schmidt + + * reload1.c (reload_reg_free_for_value_p): Show + RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER + reloads. + +Mon Oct 25 23:54:45 1999 Geoff Keating + + * expmed.c (extract_bit_field): Allow for the case of non-integer + objects that are smaller than a word (like SFmode on a 64-bit + machine). + + * loop.c (basic_induction_var): A non-integer variable which is + being set by a paradoxical subreg is probably not a biv. + +1999-10-25 Herman A.J. ten Brugge + + * prefix.c (translate_name) Check for empty prefix string. + +Mon Oct 25 23:10:45 1999 Andreas Schwab + + * Makefile.in (CPP_CROSS_NAME): New variable. + (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross + xcpp. + (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the + names of the files to be uninstalled. + +Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com) + + * collect2.c (IS_DIR_SEPARATOR): Define. + (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR. + + * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static + functions too. + + * haifa-sched.c (add_dependence): Update the true dependency + cache the first time we add a true dependence to the LOG_LINKS chain. + +Mon Oct 25 22:27:40 1999 Jim Kingdon + + * fold-const.c (fold): Fix comment. + +Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi + + * dbxout.c (lastfile, cwd, dbxout_type_method_1, + dbxout_symbol_location, dbxout_symbol_name, dbxout_init, + dbxout_start_new_source_file, dbxout_source_file, + dbxout_source_line, dbxout_finish, dbxout_type_fields, + dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol): + Constify a char*. + (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes. + (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED. + (dbxout_block): Initialize variable `blocknum'. + + * dbxout.h (dbxout_init, dbxout_finish, + dbxout_start_new_source_file, dbxout_source_file, dbxout_types, + dbxout_args, dbxout_source_line): Constify a char*. + + * dwarfout.c (dwarf_tag_name, dwarf_attr_name, + dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name, + dwarf_fund_type_name, name_attribute, stmt_list_attribute, + low_pc_attribute, high_pc_attribute, body_begin_attribute, + body_end_attribute, comp_dir_attribute, sf_names_attribute, + src_info_attribute, mac_info_attribute, producer_attribute, + lookup_filename, generate_macinfo_entry, fundamental_type_code, + dwarfout_line, dwarfout_start_new_source_file, dwarfout_define, + dwarfout_undef): Constify a char*. + (add_incomplete_type, retry_incomplete_types): Add prototypes. + + * dwarfout.h (dwarfout_define, dwarfout_undef, + dwarfout_start_new_source_file, dwarfout_line): Constify a char*. + +1999-10-25 Gavin Romig-Koch + + * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined. + (MULTILIB_ISA_DEFAULT): New. + (MULTILIB_DEFAULTS): Use it. + * config/mips/mips.c (): Remove the now unnecessary definition + of MIPS_ISA_DEFAULT. + * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now + unnecessary definition. + +Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (pic_load_addr): Add constraints to operand 1. + +1999-10-25 Bruce Korb + + * fixinc/genfixes: Provide a means for specifying -D options to + AutoGen + +Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com) + + * arm.c (arm_override_options): Correct initialization of + arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched, + arm_is_strong, and arm_is_6_or_7. + + * loop.c (note_set_pseudo_multiple_uses_retval): New variable. + (note_set_pseudo_multiple_uses): New function. + (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine + if a pseudo set in the loop exit is used elsewhere. + +Sun Oct 24 20:52:40 1999 Mark Mitchell + + * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler. + +Sun Oct 24 21:02:46 1999 Richard Henderson + + * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into + a single load-address pattern. + +Sun Oct 24 19:33:24 1999 Mark P. Mitchell + + * haifa-sched.c (schedule_insns): Don't assign LUIDs differently + depending on whether or not line-number notes are present. + +Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi + + * cccp.c (progname, file_buf, default_include, include_file, + macrodef, definition, hashval, wchar_type, user_label_prefix, + directive, out_fname, if_stack, safe_write, index0, get_lintcmd, + expand_to_temp_buffer, is_system_include, base_name, + absolute_filename, read_name_map, open_include_file, + record_control_macro, check_precompiled, check_preconditions, + pcfinclude, pass_thru_directive, create_definition, + check_macro_name, comp_def_part, collect_expansion, + check_assertion, read_token_list, assertion_install, + assertion_lookup, eval_if_expression, conditional_skip, + validate_else, skip_quoted_string, quote_string, macarg1, + error_from_errno, install, lookup, hashf, dump_defn_1, + perror_with_name, pfatal_with_name, main, trigraph_pcp, + check_white_space, rescan, handle_directive, monthnames, + special_symbol, do_include, remap_include_file, write_output, + arglist, do_assert, do_unassert, do_line, do_error, do_once, + do_ident, do_sccs, do_xifdef, skip_if_group, + output_line_directive, macroexpand, macarg, change_newlines, + initialize_builtins, make_definition): Constify a char*. + + * pcp.h (stringdef): Likewise. + +Sun Oct 24 13:29:28 1999 Richard Henderson + + * unroll.c (copy_loop_body): Examine SET_DEST of single_set + not of pattern. + +Sun Oct 24 13:14:20 1999 Graham + Richard Henderson + + * alias.c: Include ggc.h. + (reg_base_value, new_reg_base_value, reg_base_value_size): Make static. + (record_set): Verify enough room in reg_base_value. + (init_alias_analysis): Allocate reg_base_value with xcalloc. + Register it as a GC root. + (end_alias_analysis): Free reg_base_value. Remove it as a GC root. + * Makefile.in (alias.o): Depend on ggc.h. + + * unroll.c (unroll_loop): Verify the insn before a barrier + is a JUMP_INSN before checking JUMP_LABEL. + +Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi + + * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*. + * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise. + * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/mips.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. + +Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi + + * output.h (ctors_section, dtors_section, bss_section): Prototype. + + * alpha/alpha-interix.h (text_section): Delete prototype. + * alpha/elf.h (text_section): Likewise. + * arm/linux-elf.h (text_section): Likewise. + * arm/linux-telf.h (text_section): Likewise. + * c4x/c4x.h (text_section): Likewise. + * dsp16xx/dsp16xx.h (bss_section): Likewise. + * elfos.h (text_section): Likewise. + * i386/aix386ng.h (text_section): Likewise. + * i386/i386-interix.h (text_section): Likewise. + * i386/sco5.h (text_section): Likewise. + * i386/svr3gas.h (text_section): Likewise. + * nextstep.h (text_section): Likewise. + * psos.h (text_section): Likewise. + * ptx4.h (text_section): Likewise. + * svr3.h (text_section): Likewise. + * svr4.h (text_section, ctors_section, dtors_section): Likewise. + +Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi + + * final.c (peephole): Delete prototype. + + * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. + (pre_insert_copies): Remove unused variable `bb'. + + * genrecog.c (debug_decision_0, debug_decision_list, main): Add + prototypes. + + * output.h (peephole): Add prototype. + +Sun Oct 24 11:35:30 1999 Mark P. Mitchell + + * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to + -O0. + +Sat Oct 23 21:13:00 1999 Mark Mitchell + + * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT + for inlined declarations. + +Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com) + + * arm.c (logical_binary_operator): New fucntion. + * arm.h (logical_binary_operator): Declare it. + (PREDICATE_CODES): Handle logical_binary_operator. + * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for + output constraints. Add appropriate splitters. + (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise. + (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise. + (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise. + +Fri Oct 22 23:46:50 1999 Bernd Schmidt + + * genoutput.c (struct operand_data): New elt eliminable. + (output_operand_data): Write it. + (scan_operands): Set it for MATCH_OPERAND, clear for other matchers. + (compare_operands): Take it into account. + * recog.h (struct insn_operand_data): New elt eliminable. + * reload1.c (check_eliminable_occurrences, elimination_effects): New + functions. + (old_asm_operands_vec, new_asm_operands_vec): Delete. + (eliminate_regs): Move code that detects changes to elimination + target regs into new function elimination_effects. + Delete one #if 0 block. + Abort for USE, CLOBBER, ASM_OPERANDS and SET. + (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs, + ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs. + Only call eliminate_regs for real operands of the insn, not for parts + of its structure or parts matched by things like match_operator. + Use elimination_effects and check_eliminable_occurrences. Use + copy_insn to duplicate the pattern when not in the final pass. + +Fri Oct 22 09:03:44 1999 Mark Mitchell + + * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld, + and fld. + +1999-10-22 Bruce Korb + + * fixinc/README: document the "mach" machine matching test + * fixinc/fixfixes.c: Implement the #else/#endif label fix + * fixinc/fixtests.c: Implement the #else/#endif label test + * fixinc/inclhack.def: utilize these tests and fixes + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + * fixinc/fixincl.sh: regen + +Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also + depend on ggc.h. + +Thu Oct 21 20:30:19 1999 Matthias Klose + + * gcc.1: Document exit codes. + +Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi + + * calls.c: Include tm_p.h later, so everything we need is defined. + * expr.c: Likewise. + * function.c: Likewise. + + * except.c: Include tm_p.h. + + * sparc.c: Likewise. + (dwarf2out_cfi_label): Don't prototype. + (check_return_regs, epilogue_renumber, + ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, + ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline, + ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask, + ultra_schedule_insn): Add static prototype. + (data_segment_operand, text_segment_operand): Call itself with the + proper number of arguments. + (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*. + + * sparc.h: Move all declarations to sparc-protos.h. + (SELECT_RTX_SECTION): Pass a missing MODE argument to + symbolic_operand. + + * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise. + + * config/svr4.h (text_section, ctors_section, dtors_section): Add + Prototypes. + (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION, + ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII): Constify a char*. + + * sparc-protos.h: New file for sparc prototypes. + +Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi + + * function.c (record_insns, contains): Always declare and define. + (record_insns): Mark with ATTRIBUTE_UNUSED. + +Thu Oct 21 13:03:49 1999 Jonathan Larmour + + * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option + to .section when outputting a .bss section to deal with multiple + .bss input sections (as happens with -fdata-sections) + Also output %progbits, not @progbits so the assembler doesn't treat as + a comment. + * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise + + * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of + thumb parts even when building with non-thumb CPUs, by forcing + thumb mode. + +Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.md (movsf_const_intreg): If splitting, length must be > 1. + (movdf_const_intreg_sp64): Similarly. + + * local-alloc.c (update_equiv_regs): Check the correct insn + for pre-existing REG_EQUIV notes. + +Wed Oct 20 20:41:46 1999 Mark Mitchell + + * cse.c (cse_end_of_basic_block): Don't return the end of a basic + block reached by a branch if we're not going to actually process + this block. + +Wed Oct 20 15:18:42 1999 Jim Wilson + + * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is + a local extern function declaration. + +Wed Oct 20 13:56:01 1999 Richard Henderson + + * i386.c (ix86_expand_prologue): Properly wrap USE around + reg for CALL_INSN_FUNCTION_USAGE. + +Thu Oct 14 18:51:37 1999 Andrew Haley + + * config/mips/mips.md (movdf_internal1a): Allow floating-point + move between GP_REGs. + +Wed Oct 20 15:36:11 1999 Andrew Haley + + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of + the mode size when finding out if an offset is legal. + +Wed Oct 20 06:26:58 1999 Richard Henderson + + * basic-block.h (PROP_*): Move constants from ... + * flow.c: ... here. + (compute_bb_for_insn): Free the array before reallocating. + (update_life_info): New arg PROP_FLAGS; pass on to propagate_block. + (allocate_reg_life_data): Reset all reg variables collected by + propagate_block. + (get_block_head_tail): Don't convert from bb to block. + (get_bb_head_tail): New. Update all callers of get_block_head_tail. + (find_insn_reg_weight): Take block not bb. + (schedule_block): Don't set block num for moved insns. + (schedule_region): Don't update_life_info or find_insn_reg_weight. + (schedule_insns): Do it here instead. + * combine.c (combine_instructions): Invoke compute_bb_for_insn + before update_life_info. + * recog.c (split_all_insns, peephole2_optimize): Update for + new arg to update_life_info. + * rtlanal.c (remove_note): Cope with NULL note. + * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage + if we did sched1. + +Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com) + + * jump.c (jump_optimize_1): More accurately detect casesi insns. + + * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic + block records so that merge_blocks_nomove will clean up correctly. + (split_edge): Handle casesi insns. + + * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS. + +Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (call, call_value): Do not emit a blockage after restoring + the PIC register. + +Tue Oct 19 17:22:39 1999 Mark Mitchell + + * c-typeck.c (c_expand_asm_operands): Fix typo. + +Tue Oct 19 18:42:58 1999 Bernd Schmidt + + * arm.c (fpu_rhs_operand): Verify modes. + (fpu_add_operand): Likewise. + (di_operand): Likewise. + (soft_df_operand): Likewise. + +Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_return_in_memory): APCS rules state that the elements + of a structure returned in a register must be 'integer-like'. + +1999-10-19 Bruce Korb + + * fixinc/Makefile.in: Change the generation rules to run `genfixes' + in the source tree when the generated targets are out of date + * fixinc/genfixes: Alter it to run individual fixes for make. + * fixinc/README: rewrite + * fixinc/inclhack.def: moved initial comments to README + +Tue Oct 19 14:01:34 1999 Nick Clifton + + * toplev.c (main): Do not generate an error message if an + unrecognised command line switch is recognisable by another + language. If extra_warnings are enabled, then generate a + warning message instead. + +Tue Oct 19 11:41:12 1999 Mumit Khan + + * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro. + (insert_pack_attributes): Delete prototype. + + * c-pragma.c (default_alignment): New static variable. + (push_alignment): Initialize to current effective alignment. + (pop_alignment): Use to set new alignment. + (insert_pack_attributes): Delete function. + (handle_pragma_token): Set default_alignment as well each time + a #pragma pack() is encountered. + +Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com) + + * reg-stack.c (stack_result): Aggregates are not returned in + stack registers. + +Tue Oct 19 01:26:48 1999 Alasdair Baird + + * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation. + +Mon Oct 18 15:19:41 1999 Richard Henderson + + * basic-block.h (set_block_num): Declare. + * flow.c (update_life_info): Don't call compute_bb_for_insn + or free_basic_block_vars. + * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0. + (insn_orig_block): Remove. + (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM. + (schedule_block): Keep BLOCK_NUM up-to-date. + (schedule_insns): Use compute_bb_for_insn. + * recog.c (split_all_insns): Likewise. + (peephole2_optimize): Likewise. + +Mon Oct 18 18:50:51 1999 Andreas Schwab + + * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word + if the pic register is used. + +Mon Oct 18 02:38:46 1999 Bernd Schmidt + + * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT. + (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of + if that tests TREE_PERMANENT. + +Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (invalidate_for_call): Do not remove memory references from + the table here. It's handled elsewhere. + + * haifa-sched.c (add_dependence): Protect references to the + true dependency cache with #ifdef INSN_SCHEDULING. + (remove_dependence): Similarly. + + * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate + to the cfg code that this is a return instruction. + * mn10300.md (return_internal): Similarly. + + * combine.c (get_last_value): If the last set of a register + is after subst_low_cuid, then we can not use it to determine + the register's last value. + +Sun Oct 17 11:02:52 1999 Mark Mitchell + + * Makefile.in: Back out previous change. + +Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). + + * haifa-sched.c (add_dependence): Only check/update the cache + if it exists. + (remove_dependence): Likewise. + (schedule_insns): Only create the true_dependency_cache if the + average number of instructions in a basic block is very large. + +Sun Oct 17 11:02:52 1999 Mark Mitchell + + * Makefile.in (ggc-common.o): Depend on genrtl.h. + (ggc-simple.o): Likewise. + (ggc-page.o): Likewise. + +Sun Oct 17 02:09:50 1999 Andrew MacLeod + + * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available): + Prototype for exported functions. + (pre_lcm, pre_rev_lcm): Remove prototypes. + * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. + (compute_available): Move to lcm.c, and change parameter order. + (one_classic_gcse_pass): Call compute_ae_kill with parameters. + (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. + (gcse_main): No longer call compute_preds_succs. Rebuild the + set table after reach pre pass. + (pre_insert_map, pre_delete_map, edge_list): New. + (alloc_pre_mem): Allocate edge vectors. + (free_pre_mem): Delete edge vectors. + (compute_pre_data): Call new edge based lcm routines. + (process_insert_insn): New function. + (insert_insn_end_bb): Use it. + (pre_edge_insert): New function. + (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as + needed. + (pre_insert_copies): Revamp using new edge based lcm outputs. + (pre_delete): Likewise. + (one_pre_gcse_pass): Insert & remove fake edges to the exit + block. + (compute_code_hoist_vbeinout): New new edge based routines. + * lcm.c: Remove all the old LCM functions. Replace with new ones + that work with the new cfg datastructures and work with edges + instead of blocks. + +Sun Oct 17 00:44:17 1999 Bernd Schmidt + + * reload.h (struct reload): Add new fields "mode" and "nregs". + * reload1.c: Change all occurrences of reload_mode and reload_nregs + to reference the "mode" and "nregs" field within struct reload. + +Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (true_dependency_cache): New. + (add_dependence): Use the true dependency cache to avoid expensive + walks down the LOG_LINKS dependency list. Add entries to the + cache as necessary. + (remove_dependence): Remove entries from the true dependency cache + as needed. + (schedule_insns): Allocate and initialize and free the true + dependency cache. + + * haifa-sched.c (schedule_insns): Do not remove inter-block + dependencies anymore. + +Sat Oct 16 11:19:52 1999 Richard Henderson + + * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H. + * i386/t-winnt: Likewise. + +Sat Oct 16 11:11:54 1999 Richard Henderson + + * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug. + +1999-10-16 Manfred Hollstein + + * Makefile.in (LANGUAGES): Omit "proto". + (clean): Remove stale comment about removing unprotoize.c. + +Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi + + * protoize.c (safe_read, safe_write): Avoid the gcc extension of + using arithmetic on void pointers. + +Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (compute_block_forward_dependencies): Only check + for notes, deleted insns and duplicates if ENABLE_CHECKING is defined. + +Sat Oct 16 00:07:01 1999 Richard Henderson + + * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. + (expr_equiv_p): Reject memories with different alias sets. + +Fri Oct 15 15:17:29 1999 Greg McGary + + * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls. + * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags. + (f_options): Add "bounded-pointers" and "bounds-check" entries. + * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified". + (lang_init): Set default for flag_bounds_check if still "unspecified". + +Sat Oct 16 13:42:29 1999 Michael Hayes + + * config/c4x/c4x.md (HF mode patterns): Add missing modes. + +Sat Oct 16 13:37:46 1999 Michael Hayes + + * config/c4x/c4x.md (movstrqi_small): Utilise parallel move + instructions. + +Sat Oct 16 13:26:47 1999 Michael Hayes + + * config/c4x/c4x.md (*db_noclobber, + *decrement_and_branch_until_zero_noclobber): New patterns and + associated splitters. + +Sat Oct 16 13:13:15 1999 Michael Hayes + + * config/c4x/c4x.md (parallel instruction patterns): Rework + constraints to keep reload happy. + +Sat Oct 16 13:03:16 1999 Michael Hayes + + * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber, + *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber, + *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber): + Add new patterns and associated post-reload splitters. + +Sat Oct 16 12:42:12 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string. + +Sat Oct 16 12:34:44 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern + if appropriate. + * config/c4x/c4x.md (rpts_top): New pattern and splitter. + +Sat Oct 16 12:26:30 1999 Michael Hayes + + * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF + memory mode. + +Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Rely on memory_address_p to determine the + validity of non-indexed memory addresses. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic + operand in DFmode and SFmode when generating PA2.0 code. + +Fri Oct 15 14:25:19 1999 Richard Henderson + + * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF. + +Fri Oct 15 13:48:45 1999 Richard Henderson + + * mips.c (function_prologue): Fix argument types. + * mips.md (casesi): Use emit_jump_insn for casesi_internal. + (casesi_internal): Write to the scratch register. + +1999-10-15 11:16 -0700 Zack Weinberg + + * cppexp.c (cpp_parse_escape): Make static. Change second arg + to U_CHAR **. + (parse_charconst): Delete unnecessary cast when calling + cpp_parse_escape. + (cpplib.h): Kill prototype of cpp_parse_escape. + +Fri Oct 15 11:02:46 1999 Richard Henderson + + Based on patch from Michael Gschwind : + * unroll.c (unroll_loop): Cast return value of alloca. + * i370/i370.c: Include function.h and toplev.h. + (i370_label_scan): Remove c++ commented abort. + * i370/i370.h (HANDLE_PRAGMA): Takes three arguments. + (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept. + * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define. + * i370/xm-mvs.h, i370/xm-oe.h: Likewise. + +Fri Oct 15 03:01:01 1999 Loren Rittle + + * config/t-freebsd: Do not override USER_H. + * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_. + +Fri Oct 15 02:37:28 1999 Alastair J. Houghton + Mumit Khan + + * c-parse.in (component_decl): Support anonymous struct/union. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * c-decl.c (finish_struct): Don't sort the fields. + (field_decl_cmp): Delete unused function. + +Fri Oct 15 01:20:52 1999 Richard Henderson + + * sparc.md (movsf_const_intreg): Revert last constraint change. + (movdf_const_intreg_sp32): Likewise. + +Fri Oct 15 01:47:51 1999 Vladimir Makarov + + * cse.c: Include hashtab.h instead of splay-tree.h + (struct cse_reg_info): No longer use variant union. Add new + field "regno". All references changed to avoid union. + (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables. + (free_cse_reg_info): Remove. + (hash_cse_reg_info, cse_reg_info_equal_p): New functions. + (get_cse_reg_info): Revamp to use expandable hash tables instead + of splay trees. Initialize new fields in cse_reg_info structure. + (new_basic_block): Similarly. + +Thu Oct 14 23:51:56 1999 Richard Henderson + + * genrecog.c (message_with_line): Prototype. + (validate_pattern): Pass along the set for the dest, not a flag. + Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL. + Check for PC/CC0 as sources. + (nodes_identical): Check for children position match before + allowing the combination. + + * rtl.c (read_rtx): Track line number across \\\n. + +Thu Oct 14 23:50:25 1999 Richard Henderson + + * mips.h (SPECIAL_MODE_PREDICATES): New. + * mips.md (*) Use nonimmediate_operand not general_operand for outputs. + (movdi+1, movsi+1): Add output reload constraint. + (casesi_internal): Likewise. Fix commentary. + (return_internal): Use pmode_register_operand. + +Thu Oct 14 23:19:34 1999 Richard Henderson + + * 1750a.md (movstrqi): Add missing output reload constraint. + (call_value): Likewise. + * a29k.md (cpxxx patterns): Add missing match_operator mode. + (jmpfdec): Add missing inout reload constraint. + * elxsi.md (addsi patterns): Add missing output reload constraint. + (move from sp): Use @ alternates. + (call_value): No constraint on output. + * fr30.md (movsi_pop): Add missing output reload constraint. + (movsf_constant_store): Likewise. + (splits): Remove constraints. + (subsi3): Add missing mode. + * i370.md (cmpstrsi+1): Add missing output reload constraint. + (call_value): Likewise. + * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints. + * m32r.h (PREDICATE_CODES): Add seth_add3_operand. + * m32r.md (movsicc_internal): Add output reload constraint. + (movstrsi_internal): Add inout reload constraints. + * m88k.h (reg_names): Don't declare. + (SPECIAL_MODE_PREDICATES): New. + * m88k.md (*): Use register_operand not reg_or_0_operand + on destinations. + * mn10200.h (PREDICATE_CODES): New. + * ns32k.md (ffs pattern): Add output reload constraint. + * pdp11.md (sob pattern): Add inout reload constraint. + * sh.md (splits): Remove constraints. + (indirect_jump_scratch, fpu_switch): Add output reload constraint. + * v850.md (pattern_is_ok_for_epilogue): Likewise. + * vax.md (jgequ pattern): Add inout reload constraint. + +Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (djgpp): Revert previous patch. + * configure: Rebuit. + * config/i386/djgpp.h: Revert previous patch. + +Fri Oct 15 00:00:24 1999 Loren J. Rittle + + * fixinc/inclhack.def: Restore patch lost during last merge of + "no_bogosity" branch. + * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. + +Thu Oct 14 23:57:56 1999 Gavin Romig-Koch + + * fixincludes: Add a HPUX 11 fix for inttypes.h. + * fixinc/inclhack.def: Same. + * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate. + +Thu Oct 14 22:51:55 1999 Richard Henderson + + * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF + as the base of a PLUS. + +Fri Oct 15 18:36:07 1999 Michael Hayes + + * config/c4x/c4x.md: Define mode for remaining unspec operators. + * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand. + +Thu Oct 14 22:14:23 1999 Richard Henderson + + * pa.md (post_stw+1): Use pmode_register_operand. + (dcacheflush, icacheflush): Likewise. + + * i386.md (movstricthi_1): Allow r/r. + +Thu Oct 14 19:44:08 1999 Jan Hubicka + + * fold-const.c (fold): Convert (or (not arg0) (not arg1)) + to (not (and (arg0) (arg1))). Similary for and. + + * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case, + fallthrough to associate code. + Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have + bits in common. + + * combine.c (simplify_logical): Convert XOR to IOR if operands have + no bits in common; remove XOR to ROTATE conversion. + +Fri Oct 15 17:40:11 1999 Michael Hayes + + * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare. + +Fri Oct 15 17:27:17 1999 Michael Hayes + + * config/c4x/c4x.c (dst_operand): New. + (PREDICATE_CODES): Update. + * config/c4x/c4x.h (dst_operand): Declare it. + * config/c4x/c4x.md: Define mode for each unspec usage. + (move patterns): Use dst_operand predicate instead of src_operand. + (movqi_update, movqf_update): Delete. + +Thu Oct 14 18:48:54 1999 Richard Henderson + + * recog.c (pmode_register_operand): New. + * recog.h: Declare it. + * genrecog.c (pred_codes): Likewise. + (special_mode_pred_table): Likewise. + (validate_pattern): Don't warn no mode for address_operand. + + * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression + if the operand is not insn-like. + +Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com) + Sylvian Pion + + * fold-const.c (fold): Handle more simplifications allowed by IEEE. + +Thu Oct 14 17:30:14 1999 Richard Henderson + + * sparc.md (*): Use {nonimmediate,register}_operand as appropriate + instead of general_operand in a SET_DEST. Use const_double_operand + instead of an explicit test against CONST_DOUBLE. + (movsf_const_lo): Add missing register mode. + (goto_handler_and_restore): Add auxiliary test for Pmode. + (flush): Adjust to use address_operand. + (return_sf_no_fpu): Add missing output constraint. + +Thu Oct 14 17:21:26 1999 Richard Henderson + + * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand + for call return value. + (call_value_indirect_aix64, call_value_indirect_nt): Likewise. + +Thu Oct 14 13:54:25 1999 Jason Merrill + + * toplev.c (main): Only warn about options for other languages. + * collect2.c (main): Pass -w to sub-gcc. + +Thu Oct 14 16:27:50 1999 Richard Henderson + + * flow.c (propagate_block): Add call-clobbered registers to + significant too. + + * flow.c (propagate_block): Use free_EXPR_LIST_list instead of + zapping mem_set_list. + (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node. + (mark_set_1, mark_used_regs): Likewise. + +Thu Oct 14 10:51:49 1999 Richard Henderson + + * m68k.md (zero_extendsidi2): Add missing output reload constraint. + +Wed Oct 13 00:09:18 1999 Gerald Pfeifer + + * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes, + -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only + options. Also add a new item "C-only Warning Options" to the + option summary. + +1999-10-14 Gavin Romig-Koch + + * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info + from multiple calls. + +Thu Oct 14 04:54:54 1999 Richard Henderson + + * i386.md (call value patterns): Move to the end of the file. + (prologue_set_got, prologue_get_pc): Use register_operand for op 0. + +1999-10-14 Mark Elbrecht + + * configure.in (djgpp configuration): Define extra_objects.. + * configure: Rebuilt. + * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + (INIT_SECTION_ASM_OP): Define. + (FINI_SECTION_ASM_OP): Define. + (DATA_SECTION_ASM_OP): Define. + (TEXT_SECTION_ASM_OP): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl. + (STARTFILE_SPEC): Add crtbegin.o. + (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl + to here from LINK_COMMAND_SPEC. + (DO_GLOBAL_CTORS_BODY): Define. + (CRTSTUFF_USE_FINI_SECTION): Define + (HAS_INIT_SECTION): Delete. + +Thu Oct 14 05:08:14 1999 Andreas Schwab + + * Makefile.in (all.cross): Depend on xcpp$(exeext). + +Thu Oct 14 04:00:40 1999 Richard Henderson + + * pa.h (PREDICATE_CODES): New. + + * genrecog.c (validate_pattern): Condense the destination + non-lvalue message. + +Thu Oct 14 03:23:08 1999 Richard Henderson + + * alpha.md (call-1): Supply missing mode for operator. + (*): Add missing output reload constraints. Remove constraints + from define_splits. + + * i386.h (SPECIAL_MODE_PREDICATES): New. + * i386.md (movstricthi_1): Use nonimmediate_operand for op 0. + (movqi_1, movdi_1, movdi_2, some splits): Likewise. + (addsi_lea_3): Add missing mode for op 3. + (prologue_set_got, prologue_get_pc): Add missing modes. + (*) Add missing output reload constraints. + +Thu Oct 14 03:59:57 1999 Stephane Carrez + + * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size; + check for member bit-size overflow and use var_size if it occurs. + (layout_record): Use bitsize_int() to define the type size in bits. + Likewise for computation and assignment to DECL_FIELD_BITPOS. + (layout_decl): Likewise when assigning to DECL_SIZE. + +Thu Oct 14 02:57:05 1999 Richard Henderson + + * genrecog.c (validate_pattern): Typo last change. Verify + that output operands have output reloads. + +Thu Oct 14 01:49:54 1999 Richard Henderson + + * genrecog.c (special_mode_pred_table): New. + (NUM_SPECIAL_MODE_PREDS): New. + (find_operand): New. + (validate_pattern): New argument `insn'. Warn for assignment to + any predicate accepting non-lvalues. Conditionaly warn for + match_operand without a mode. Try much harder to match source + and destination modes on a set. + * tm.texi (SPECIAL_MODE_PREDICATES): Document. + +Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs. + +Thu Oct 14 02:18:19 1999 Marc Espie + + * combine.c (simplify_logical): Recognize xor pattern that encodes + rotation. + +Wed Oct 13 23:23:45 1999 Franz Sirl + + * rs6000.c (expand_block_move): Use INTVAL, not XINT to access + alignment. + +Wed Oct 13 21:47:18 1999 Richard Henderson + + * ggc-page.c (MAP_FAILED): Provide default. + +Wed Oct 13 21:41:59 1999 Richard Henderson + + * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE. + * sparc.h (PREDICATE_CODES): Update. + +Wed Oct 13 21:18:17 1999 Richard Henderson + + * alpha.c (some_ni_operand): New. + * alpha-protos.h: Declare it. + * alpha.h (PREDICATE_CODES): Update. + * alpha.md (sXaddq reload insns): Use some_ni_operand + for SET_DEST instead of some_operand. + +Wed Oct 13 21:04:45 1999 Richard Henderson + Jim Wilson + + * genrecog.c (maybe_both_true_2): Don't compare modes of + two DT_pred tests. + (process_tree): Elide peephole2_insns. Invoke simplify_tests + after find_afterward. + (debug_decision_1): Dump next and afterward codes. + +Wed Oct 13 20:35:16 1999 Richard Henderson + + * rtl.c (dump_and_abort): Remove. + (fatal_with_file_and_line): New. + (fatal_expected_char): New. + (read_rtx_lineno, read_rtx_filename): New. + (read_skip_spaces): Track line number. + (read_name): Use fatal_with_file_and_line. + (read_rtx): Use fatal_expected_char. Track line number. + * rtl.h (read_rtx_filename, read_rtx_lineno): Declare. + + * print-rtl.c (print_rtx): Don't special case LABEL_REF argument + if it isn't a CODE_LABEL. + + * genattr.c (main): Set read_rtx_filename. + * genattrtab.c (main): Likewise. + * gencodes.c (main): Likewise. + * genconfig.c (main): Likewise. + * genemit.c (main): Likewise. + * genextract.c (main): Likewise. + * genflags.c (main): Likewise. + * genopinit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genpeep.c (main): Likewise. + + * genrecog.c (decision_test.u.insn): Add `lineno'. + (pattern_lineno, error_count): New variables. + (message_with_line): New. + (add_to_sequence): Break out checking code to ... + (validate_pattern): ... here. Detect SET_DEST matching CONST_INT. + (merge_insn): Use message_with_line. + (make_insn_sequence): Use validate_pattern. Record insn lineno. + (main): Set read_rtx_filename, pattern_lineno. Exit early on error. + +Wed Oct 13 22:01:35 1999 J"orn Rennecke + + * expr.c (store_constructor): Clear union if constructor is empty. + +Wed Oct 13 15:19:04 1999 Jim Wilson + + * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change. + Add !endian checks. Change %{...} to %(...). + +Wed Oct 13 13:30:34 1999 Richard Henderson + + * i386.md (*addsi3_cc): Renamed from addcsi3. + (*addsi3_carry): Renamed from addxsi3. + (*subsi3_cc): Renamed from subcsi3. + (*subsi3_carry): Renamed from subxsi3. + (*xorqi_cc_1): Renamed from xorcqi_1. + (xorqi_cc_ext_1): Renamed from xorcqi_ext_1. + * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1. + +Wed Oct 13 13:10:46 1999 Richard Henderson + + * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H. + (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise. + +1999-10-13 Brendan Kehoe + + * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we + climb up the chain of insns. + +Wed Oct 13 10:20:58 1999 Richard Henderson + + * genrecog.c (write_subroutine): Careful for null trees. + (process_tree): Don't elide empty functions. + +Wed Oct 13 10:07:54 1999 Richard Henderson + + * Makefile.in (genrtl.o): Depend on ggc.h. + * configure.in (valloc): Probe for it. + (with-gc): Use ggc-page if valloc present. + * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable. + (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec. + (ggc_alloc_string): Moved from ggc-page.c. + * ggc-none.c (ggc_alloc_obj): New. + (ggc_alloc_rtx, ggc_alloc_rtvec): Remove. + * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP. + (struct globals): Likewise for dev_zero_fd. + (init_ggc): Likewise for it's initialization. + (ggc_allocated_p): Move careful dereference from ... + (ggc_lookup_page_table): ... here. Delete. + (lookup_page_table_entry): Don't use ggc_lookup_page_table. + (alloc_anon): Use valloc if no mmap. + (release_pages): Use free if using valloc. + (ggc_alloc_obj): Renamed from alloc_obj. + (ggc_set_mark): Renamed from mark_obj. + (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable. + (ggc_alloc_rtx, ggc_alloc_rtvec): Delete. + (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete. + (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. + (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete. + (ggc_collect): Use fp printing instead of our own rounding. + * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete. + (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete. + (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete. + (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete. + (struct ggc_string, struct ggc_any): Delete. + (offsetof): Provide default definition. + (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New. + (PTR_KEY): New. + (struct ggc_mem): New, from corpse of ggc_any. + (struct ggc_status): Delete. + (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete. + (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete. + (n_strings_collected, n_anys_collected): Delete. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete. + (ggc_alloc_string, ggc_alloc): Delete. + (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete. + (ggc_free_string, ggc_free_any): Delete. + (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete. + (ggc_compare_addresses, ggc_mark_string): Delete. + (ggc_mark_string_if_gcable, ggc_mark): Delete. + (search_data): Delete. + (struct globals): New. + (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New. + (tree_insert, tree_lookup): New. + (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New. + (clear_marks, sweep_objs): New. + (ggc_collect): Gut. Use clear_marks, sweep_objs. + (init_ggc): Set allocated_last_gc. + (ggc_push_context): Gut. Use G.context. + (ggc_pop_context): Likewise. + (ggc_pop_context_1): New. + (debug_ggc_tree): New. + (debug_ggc_balance, tally_leaves): New. + * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl. + (ggc_mark_string_if_gcable): Remove decl. + (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark. + (ggc_mark_rtvec_children): New. + (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New. + (ggc_mark_if_gcable): New decl. + (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl. + (ggc_alloc_tree, ggc_alloc): Likewise. + (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise. + (ggc_alloc_obj): New decl. + (ggc_alloc_rtx, ggc_alloc_rtvec): New macros. + (ggc_alloc_tree, ggc_alloc): Likewise. + (ggc_set_mark): New decl. + * rtl.h (struct rtx_def): Remove gc_mark. + (struct rtvec_def): Likewise. + * tree.h (struct tree_common): Likewise. + +Wed Oct 13 01:44:29 1999 Carol LePage + + * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines, + float_format and thread_file definitions. + * configure: Rebuilt. + +Wed Oct 13 09:25:03 1999 Niels Möller + + * extend.texi (Function Names): Document types of function names. + +Wed Oct 13 00:45:04 1999 Bernd Schmidt + + * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with + an earlyclobbered output conflict with RELOAD_INPUT reloads. + +Tue Oct 12 23:28:28 1999 J"orn Rennecke + + * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE. + +Tue Oct 12 23:19:32 1999 J"orn Rennecke + + * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS. + +Tue Oct 12 17:09:38 1999 David Edelsohn + + * collect2.c (main): Do prelimnary link on AIX if rflag. + +Tue Oct 12 09:45:19 1999 Jonathan Larmour + + * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through + __CTOR_LIST__ in opposite order, which is the correct order for sorted + constructors. + (__do_global_dtors): similarly for __DTOR_LIST__. + +Fri Oct 8 19:46:03 1999 J"orn Rennecke + Diego Novillo + + * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to + FPUL_REGS. + +Tue Oct 12 07:38:41 1999 Bruce Korb + + * fixincl/*: Merged "no_bogosity" branch + * fixincl/fixlib.h: protect against doubly defining t_bool + * fixincl/server.h: protect against doubly defining t_bool + +Mon Oct 11 20:18:41 1999 Jim Wilson + + * genoutput.c: Include toplev.h. + +Mon Oct 11 18:56:14 1999 Jim Wilson + + * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): + Undef. + * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h. + * configure: Regenerate. + +Mon Oct 11 16:07:49 1999 Richard Henderson + + * gcse.c (delete_null_pointer_checks): Returns void. + +Mon Oct 11 20:31:51 1999 Bernd Schmidt + + * rtl.c (copy_rtx): Don't use accessor macros to copy fields. + * emit-rtl.c (copy_insn_1): Likewise. + +Mon Oct 11 13:29:06 1999 Geoffrey Keating + + * config/mips/mips.c (mips_build_va_list): Correct + TREE_CHAIN setting when hard-float. + (mips_va_start): Use corrected setting. + (mips_va_arg): Likewise. Also pass a tree to build of + POSTINCREMENT_EXPR rather than a naked 'int'. + +Sun Oct 10 18:27:27 1999 Mark Mitchell + + * ggc.h (ggc_push_context): Fix comment. + (ggc_pop_context): Likewise. + (mark_string_if_gcable): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Use + ggc_mark_string_if_gcable. + * ggc-page.c (ggc_lookup_page_table): New function. + (ggc_allocated_p): Likewise. + (mark_obj): Fix formatting. + (ggc_mark_string_if_gcable): New function. + * ggc-simple.c (ggc_allocated_strings): New variable. + (ggc_strings_used): Likewise. + (ggc_compare_addresses): New function. + (ggc_pop_context): Pop the `any' memory too. + (ggc_mark_string_if_gcable): New function. + (ggc_collect): Initialize and tear down ggc_allocated_strings. + +Sun Oct 10 20:05:21 1999 David Edelsohn + + * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form. + (scc patterns): Disable most SImode variants if TARGET_POWERPC64. + * rs6000.c (expand_block_move): Match movstrsi_?reg register + changes. + +Sun Oct 10 16:37:01 1999 Richard Henderson + + * haifa-sched.c (sched_reg_n_calls_crossed): Delete. + (sched_reg_live_length, sched_reg_basic_block): Delete. + (current_block_num, bb_live_regs, old_live_regs): Delete. + (dead_notes, struct sometimes): Delete. + (sched_note_set, birthing_insn_p): Delete. + (adjust_priority): Gut useless reg lifetime code. + (create_reg_dead_note, attach_deaths): Delete. + (attach_deaths_insn, new_sometimes_live): Delete. + (finish_sometimes_live): Delete. + (find_pre_sched_live, find_post_sched_live): Delete. + (update_reg_usage): Delete. + (find_insn_reg_weight): New, from corpse of find_pre_sched_live. + (schedule_insns): Delete reg lifetime code. + (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away. + (unlink_other_notes): Adjust REG_NOTE commentary. + (reemit_notes): Use REG_SAVE_NOTE. + (schedule_block): Likewise. + (schedule_region): Allocate bitmap of blocks in region. Use + count_or_remove_death_notes. Use update_life_info. + + * rtl.h (REG_SAVE_NOTE): New. + * rtl.c (reg_note_name): Update. + +Sun Oct 10 16:14:16 1999 Richard Henderson + + * combine.c (refresh_blocks, need_refresh): New. + (combine_instructions): Allocate refresh_blocks. Invoke + update_life_info if needed. + (distribute_notes): Mark refresh_blocks instead of installing + USE insns. + * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES. + * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES. + + * Makefile.in (recog.o): Depend on basic-block.h. + +Sun Oct 10 12:03:21 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Thinko last change: delete + shadowing allow_const_int variable. + +Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi + + * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing + __GNUC__ and __GNUC_MINOR__. + + * gansidecl.h: Likewise. + + * rtl.c: Likewise. + + * rtl.h: Likewise. + + * toplev.h: Likewise. + + * tree.c: Likewise. + + * tree.h: Likewise. + + * varray.c: Likewise. + + * varray.h: Likewise. + +Sun Oct 10 13:28:48 1999 Bernd Schmidt + + * loop.c (find_and_verify_loops): When looking for a BARRIER, don't + use one before a jump table. + + * rtl.def (ADDRESS): Change documentation to match reality. + * md.texi: Don't document it. + * gmicro.md (load address pattern): Use 'p' constraint, delete use + of ADDRESS rtx. + + * emit-rtl.c (copy_insn_1): Make format_ptr a const char *. + +Sun Oct 10 02:41:41 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Move allow_const_int test outside + known predicate block; default allow_const_int true. + (debug_decision_list): New. + +Sun Oct 10 00:43:08 1999 Richard Henderson + + * i386.h (CC1_SPEC): Typo -- use cc1_cpu. + +Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (gcse_main): Avoid global optimizations if we have a + large number of basic blocks and the ratio of edges to blocks + is high. + (delete_null_pointer_checks): Likewise. + +Sat Oct 9 23:16:01 1999 Ken Raeburn + + * c-common.c (check_format_info): Warn if format string isn't a + string literal. + +Sat Oct 9 23:04:02 1999 Jonathan Larmour + + * configure.in (arm*-*-*): Don't let autoconf remove brackets + * configure: regenerate + +Sat Oct 9 13:15:53 1999 Richard Henderson + + * alpha.md (extendsidi2): Turn into a splitter. Allow f/f. + If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern. + (peepholes): Re-enable. + +Sat Oct 9 12:18:16 1999 Richard Henderson + + * Makefile.in (flow.o): Depend on TREE_H. + * basic-block.h (REG_SET_EQUAL_P): New. + (XOR_REG_SET): New. + (n_edges): Declare. + (free_regset_vector): Remove declaration. + (flow_delete_insn_chain): Declare. + (enum update_life_extent): New. + (update_life_info, count_or_remove_death_notes): Declare. + * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head. + Verify register live at bb->global_live_at_start before adding USE. + * flow.c (HAVE_epilogue, HAVE_prologue): Provide default. + (CLEAN_ALLOCA): New. + (n_edges): New. + (PROP_*): New flags. + (find_basic_blocks_1): Use alloc_EXPR_LIST. + (clear_edges): Zero n_edges. + (make_edge): Increment n_edges. + (split_edge): Don't allocate bb->local_set. Increment n_edges. + (flow_delete_insn_chain): Export. + (delete_block): Decrement n_edges. + (merge_blocks_nomove): Likewise. + (life_analysis): Give life_analysis_1 PROP flags. + (verify_wide_reg_1, verify_wide_reg): New. + (verify_local_live_at_start): New. + (update_life_info): Rewrite to call into propogate_block. + (mark_reg): New. + (mark_regs_live_at_end): After reload, if epilogue as rtl, + always mark stack pointer. Conditionally mark PIC register. + After reload, mark call-saved registers, return regsiters. + (life_analysis_1): Accept PROP flags not remove_dead_code. + Call mark_regs_live_at_end before zeroing regs_ever_live. + Use calculate_global_regs_live. Copy global_live_at_end before + calling final propagate_block. Zero reg_next_use on exit. + (calculate_global_regs_live): New. + (allocate_bb_life_data): Don't allocate bb->local_set. + (init_regset_vector, free_regset_vector): Remove. + (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE. + Test flags before every operation. Warn if prologue/epilogue insn + would have been deleted. + (mark_set_regs, mark_set_1): Accept and use FLAGS. + Use alloc_EXPR_LIST. + (mark_used_regs): Accept and use FLAGS, not FINAL. + Remove special handling for RETURN. + (try_pre_increment): Use alloc_EXPR_LIST. + (dump_flow_info): Dump n_edges. + (unlink_insn_chain, split_hard_reg_notes): Remove. + (maybe_add_dead_note, maybe_add_dead_note_use): Remove. + (find_insn_with_note, new_insn_dead_notes): Remove. + (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove. + (maybe_remove_dead_notes, prepend_reg_notes): Remove. + (replace_insns): Remove. + (count_or_remove_death_notes): New. + (verify_flow_info): Abort on error after all checks. + (remove_edge): Decrement n_edges. + (remove_fake_edges): Tweak format. + * haifa-sched.c (schedule_insns): Use split_all_insns. + * output.h (update_life_info): Remove declaration. + * recog.c (split_all_insns): From the corpse of split_block_insns, + do the whole function block by block. Use update_life_info. + (recog_last_allowed_insn): New. + (recog_next_insn): Mind it. + (peephole2_optimize): Set it. Walk backwards through blocks. + Use update_life_info. + * rtl.h (update_flow_info, replace_insns): Remove declarations. + (split_all_insns): Declare. + * toplev.c (rest_of_compilation): Thread prologue before flow2. + Use split_all_insns. + + * i386.md (or -1 peep2s): Disable. + +Fri Oct 8 17:49:08 1999 Richard Henderson + + * config/mips/mips.md (movstrsi+[123]) : Combine these into + a single pattern. Scrap the 'd' versions as unnecessary. + + * config/mips/mips.md (tablejump_internal3,tablejump_mips161, + tablejump_mips162,tablejump_internal4): The operands to a + label_ref must be VOIDmode. + +Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi + + * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'. + +Fri Oct 8 11:58:34 1999 Richard Henderson + + * mips.c (mips_va_arg) [EABI]: Return addr_rtx. + +Fri Oct 8 11:58:34 1999 Richard Henderson + + * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the + cache every function if ggc_p. + +Fri Oct 8 18:46:11 1999 Bernd Schmidt + + * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1 + instead of copy_rtx. Accept sequences that contain asm statements. + * emit-rtl.c (copy_insn_1, copy_insn): New functions. + (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches, + orig_asm_operands_vector, copy_asm_operands_vector, + orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static + variables. + * rtl.h (copy_insn, copy_insn_1): Declare. + +Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi + + * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h. + + * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of + arguments to `current_file_function_operand'. + + * genrecog.c: Include hard-reg-set.h and resource.h in the + generated output file. + + * real.c: Include tm_p.h. + +Fri Oct 8 18:46:11 1999 Bernd Schmidt + + * i386.md (prologue_allocate_stack): Add '=' constraint letter on + output operand. + +Thu Oct 7 23:06:50 1999 Richard Henderson + + * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber + before the fctiwz insn. + +Thu Oct 7 22:53:00 1999 Franz Sirl + Mark Mitchell + + * tree.c (make_lang_type_fn): New funtion pointer. + (make_lang_type): Call it. + * tree.h (make_lang_type): Declare. + (make_lang_type_fn): Likewise. + * rs6000.c (rs6000_build_va_list): Use make_lang_type. + +Thu Oct 7 00:36:17 1999 Diego Novillo + + * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF + make sure that HIGH instructions are copied into BASE_REGS. + +Thu Oct 7 17:02:34 1999 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner. + +Thu Oct 7 17:01:58 1999 Greg McGary + + * c-decl.c (finish_struct): Use simpler method of + removing elements of a singly-linked list. + +Thu Oct 7 15:23:28 1999 Michael Meissner + + * alpha.md (peephole2's): Comment out peephole2's that generate + buggy code. + +Thu Oct 7 12:00:53 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Disable mode check for + wildcard matches. + +Thu Oct 7 20:14:16 1999 Bernd Schmidt + + * ggc-simple.c (init_ggc): Set empty_string. + +Thu Oct 7 01:13:15 1999 Richard Henderson + + * configure.in: Detect mmap. Add --with-gc=foo to select + garbage collector; default to page if mmap available. + * Makefile.in (GGC): Substitute. + +Wed Oct 6 23:56:30 1999 Richard Henderson + + * c-decl.c (ggc_p): Enable. + +Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi + + * flow.c (verify_flow_info): Make it extern & unconditionally define. + +1999-10-06 Brendan Kehoe + + * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc + string for little-endian-data. + +Wed Oct 6 16:10:35 1999 Michael Meissner + + * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in + case somebody tries to compile --enable-checking code with gcc + 1.34 or such. + +Wed Oct 6 12:22:50 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Verify operand to label_ref is + VOIDmode. + +Wed Oct 6 10:21:15 1999 Richard Henderson + + * genconfig.c (main): Disable HAVE_conditional_arithmetic. + * jump.c (jump_optimize_1): Document why. + +Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi + + * collect2.c (scan_prog_file, scan_libraries): Prototype function + pointers and casts for `int_handler' and `quit_handler'. + + * flow.c (verify_flow_info, split_hard_reg_notes, + find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes, + remove_edge, remove_fake_successors): Add static prototypes. + (verify_flow_info): Wrap with macro ENABLE_CHECKING. + (mark_set_1): Initialize variable `regno'. + (unlink_insn_chain): Likewise for variable `curr'. + (remove_fake_edges): Remove unused variables `e', `tmp' and `last'. + + * loop.c (strength_reduce): Initialize variable + `unrolled_insn_copies'. + (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static + prototypes. Change these functions to take const PTR parameters + to avoid prototype conflict when used as the comparson argument + for qsort. + (check_dbra_loop): Initialize variable `comparison_val'. + + * reload.c (debug_reload_to_stream, debug_reload): Add prototypes. + (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED. + (find_valid_class): Initialize variable `best_class'. + (find_reloads): Call memcpy, not bcopy. + + * reload1.c (gen_mode_int, dump_needs): Add prototypes. + (hard_reg_use_compare): Don't needlessly cast away const. + (reload_reg_class_lower): Likewise. + (choose_reload_regs): Initialize variable `regno'. + +Tue Oct 5 16:34:12 1999 Paul Burchard + + * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing. + +Tue Oct 5 16:14:40 1999 Michael Meissner + + * libgcc1-test.c (toplevel): Include stddef.h to get size_t. + ({,d}discard): Add forward declarations. Declare parameter as + unused. + (main_without_main): Explicitly declare return type to be int. + (memcpy): Properly declare. + + * libgcc2.c (toplevel): If inhibit_libc is defined and not + building the trampoline support, declare malloc, free, and + atexit. + (__clear_cache): Mark arguments as potentially unused. + + * frame.c (toplevel): If inhibit_libc is defined, declare + malloc and free. + +Tue Oct 5 12:00:32 1999 Richard Henderson + + * flow.c (make_edge): Accept an optional 2D bitmap in which + to cache edge existence. Update all callers. + (make_label_edge, make_eh_edge): Pass through the edge cache. + (make_edges): Provide the cache. + +Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi + + * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify + a char*. + (local_mbtowc): Change the type of variable `i' from int to size_t. + + * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||. + (local_mbtowc, local_mblen, literal_codeset): Constify a char*. + +Tue Oct 5 11:34:52 1999 Michael Meissner + + * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes + after other includes that define the appropriate types. Include + tm_p.h for getting user prototypes. + * ggc-callbacks.c (toplevel): Ditto. + * ggc-none.c (toplevel): Ditto. + * gcc-page.c (toplevel): Ditto. + * ggc-simple.c (toplevel): Ditto. + +Mon Oct 4 16:48:16 1999 Diego Novillo + Jonathan Larmour + + * config/mips/mips.c (mips_move_2words): Split doubles if + ISA >= 3, !TARGET_64BIT, and destination is not an FP register. + +Mon Oct 4 21:47:31 1999 Richard Henderson + + * genrecog.c (struct decision_test): New. + (struct decision): Remove test-related members, sort the rest by size. + (IS_SPLIT): Simplify. + (new_decision, new_decision_test): New. + (add_to_sequence): Use them. No special handling for args of + non-MATCH codes. + (maybe_both_true): Renamed from not_both_true; return sense changed. + (maybe_both_true_1, maybe_both_true_2): New. Broken out + of maybe_both_true and adjusted for decision_test. + (position_merit): Remove. + (nodes_identical, nodes_identical_1): New, broken out of merge_trees. + (merge_accept_insn): New, broken out of merge_trees. + (merge_trees): Use them. No special case for c_test; no node + splitting; use test type instead of position_merit. + (factor_tests): New. + (simplify_tests): New. + (break_out_subroutines): Don't write code now. + (find_afterward): New. + (write_afterward, write_switch, write_cond): New. + (write_action, is_unconditional): New. + (write_node): New. Use them. + (write_tree_1): Rewrite. Use the new functions above. + (write_tree): Remove afterward processing. + (write_subroutine): Simplify function variant emission. + (write_subroutines): New. + (same_codes, clear_codes): Remove. + (same_modes, clear_modes): Remove. + (write_header): New, broken out of main. + (make_insn_sequence): Use new_decision and new_decision_test. + (process_tree): New, broken out of main. + (main): Adjust for merge_trees interface change. + Don't #define operands in the output file. + (record_insn_name): New, broken out of make_insn_sequence. + (debug_decision_2, debug_decision_1, debug_decision_0): New. + (debug_decision): New. + +1999-10-04 21:58 -0700 Zack Weinberg + + * resource.c (find_free_register): Mark class_str argument const. + * resource.h: Update prototype to match. + + * i386.h (PREDICATE_CODES): Add entry for long_memory_operand. + * i386.md: Give all anonymous insns names. + +Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent + blocks. + +Mon Oct 4 21:01:39 1999 Richard Henderson + + * toplev.c (dbr_sched_time): Unconditional. + (peephole2_time): New. + (compile_file): Add pass numbers to all of the dump file suffixes. + Dump peephole2_time. Don't dump times for non-applicable passes. + (rest_of_compilation): Add pass numbers to dump file suffixes. + Conditionalize calls to the scheduler. + * invoke.texi: Update. + +Mon Oct 4 20:25:13 1999 Anthony Green + + * flow.c (make_edges): Fix insn iteration. + (find_basic_blocks): Assign NULL_RTX, not 0, to rtx. + (find_basic_blocks_1): Fix spelling mistake. + +Mon Oct 4 16:56:11 1999 Richard Henderson + + * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that + always have side-effects. Use memset not bzero. + (make_node): Likewise. + +Mon Oct 4 16:22:20 1999 Mark Mitchell + + * stmt.c (expand_anon_union_decl): When any of the elements of the + union is addressable, so is the entire union. + +Mon Oct 4 11:38:33 1999 Richard Henderson + + * sbitmap.c (sbitmap_ones): Don't set too many bits. + + * bitmap.h (enum bitmap_bits): Add BITMAP_XOR. + * bitmap.c (bitmap_operation): Return true iff TO changed. + (bitmap_equal_p): New. + (bitmap_bit_p): Tidy arithmetic. + (debug_bitmap_file): Likewise. + +Mon Oct 4 11:28:37 1999 Richard Henderson + + * toplev.c (rest_of_compilation): Turn on cse_not_expected + before cse2 instead of after. + +Mon Oct 4 09:55:17 1999 Stan Cox + + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large + register offsets. + +Mon Oct 4 08:54:12 1999 Alexandre Oliva + + * cppinit.c (is_idchar initializer): Loosen tests to accept + gcc 2.>6 and >2. + +Mon Oct 4 02:31:20 1999 Mark Mitchell + + * mips.md: Define conditional move patterns for floating point + operands and DI mode conditions. + +Mon Oct 4 02:12:41 1999 Mark Mitchell + + * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that + always have side-effects. + +Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) + + * mn10200.c (asm_file_start): Fix typo. + + * cppinit.c (is_idchar initializer): Tighten tests for when + to put the table into initialized memory. + + * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx, + not an array of rtunion. + * gcc-page.c (ggc_alloc_rtvec): Similarly. + * gcc-simple (ggc_free_rtvec): Similarly. + + * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead + of rtunions. + + * mbchar.h: Add missing #endif. + + * t-fr30 (LIB2FUNCS_EXTRA): Remove definition. + (FPBIT, DPBIT): Define. + +Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi + + * print-tree.c (print_node, indent_to): Remove redundant prototypes. + + * profile.c (instrument_arcs, output_gcov_string, + tablejump_entry_p): Add static prototypes. + (output_gcov_string): Constify a char*. + + * regmove.c (replacement_quality, fixup_match_2): Add static + prototypes. + + * resource.h (reg_dead_p): Add extern prototype. + + * rtl.c (trim_filename): Add static prototype. + + * scan-decls.c (skip_to_closing_brace): Likewise. + + * stmt.c (expand_decl_cleanup_no_eh): Hide definition. + (expand_end_case): Initialize variable `range'. + (emit_case_nodes): Remove unused prototype `rtx_fn'. + + * varasm.c (asm_emit_uninitialised): Add static prototype. + (asm_emit_uninitialised, assemble_variable): Mark parameter with + ATTRIBUTE_UNUSED. + +Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi + + * cpplib.c (if_directive_nameo): Add static prototype. + + * cse.c (cse_insn): Remove unused variable `p'. + + * except.c (create_rethrow_ref, push_entry, + receive_exception_label, new_eh_region_entry, find_func_region, + clear_function_eh_region, process_nestinfo): Add static prototypes. + (get_reg_for_handler): Hide definition. + (process_nestinfo): Initialize variable `extra_handlers'. + + * expr.h (expand_builtin_longjmp): Add extern prototype. + + * final.c (final_addr_vec_align, align_fuzz): Add static prototypes. + + * function.c (prepare_function_start): Likewise. + (pop_function_context_from): Mark parameter `context' with + ATTRIBUTE_UNUSED. + (push_temp_slots_for_block, flush_addressof): Hide definition. + + * gcov.c (init_arc, reverse_arcs, create_program_flow_graph, + solve_program_flow_graph, calculate_branch_probs, + function_summary, main, fancy_abort): Add prototypes. + + * gen-protos.c (add_hash, parse_fn_proto, main): Likewise. + (add_hash): Constify a char*. + + * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr, + ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr, + ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes. + + * integrate.c (expand_inline_function_eh_labelmap): Likewise. + + * lists.c (free_list, zap_lists): Likewise. + +Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi + + * alias.c (nonlocal_reference_p): Add static prototype. + + * bitmap.c (bitmap_element_allocate): Prototype args in function + pointer cast. + + * builtins.c (stabilize_va_list): Add static prototype. + (expand_builtin_va_arg): Constify a char*. + + * c-lex.c (getch, put_back, extend_token_buffer_to, + read_line_number, token_getch, token_put_back): Add static + prototypes. + + * c-parse.gperf (hash, is_reserved_word): Likewise. + + * cccp.c (is_dir_separator): Likewise. + +Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi + + * graph.h: New file to prototype functions exported by graph.c. + + * Makefile.in (graph.o, toplev.o): Depend on graph.h. + + * graph.c: Include graph.h. + + * toplev.c: Likewise. Remove redundant prototypes. + +Sat Oct 2 11:28:33 1999 Krister Walfridsson + + * invoke.texi: Removed duplicated description for -Q. + +Sat Oct 2 11:16:00 1999 Jim Kingdon + + * extend.texi: Grammar fix in __extension__ text. + +Sat Oct 2 11:06:31 1999 Richard Henderson + + * md.texi (define_peephole2): New section. + +Sat Oct 2 10:57:56 1999 Jan Hubicka + + * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0 + (mov $-1 to or peepholer): Enable for pentium when optimizing for + speed. + +Sat Oct 2 10:55:25 1999 Jan Hubicka + + * builtins.c (expand_builtin_strlen): Fix best mode searching loop. + +Sat Oct 2 10:53:22 1999 Jan Hubicka + + * i386.md (ffs expander): Emit Pentium friendly code for + TARGET_PENTIUM. + +Sat Oct 2 02:48:21 1999 Mark P. Mitchell + + * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES + for non-trees. + (build1): Likewise. + +Fri Oct 1 18:01:11 1999 Bernd Schmidt + + * i386elf.h (TARGET_DEFAULT): Use symbolic constants. + +Fri Oct 1 12:42:53 1999 Andreas Schwab + + * config/m68k/m68k.c (use_return_insn): Return false if the pic + register is in use. + +Fri Oct 1 10:56:06 1999 Bernd Schmidt + + * md.texi (No Constraints): Delete section. + * Makefile.in (genattrtab.o): Don't depend on "insn-config.h". + * final.c (final_scan_insn): We always have register constraints. + * genattrtab.c: Don't include "insn-config.h". + (write_attr_case): We always have register constraints. + * genconfig.c (register_constraint_flag): Delete. + (walk_insn_part): Don't check whether we have register constraints. + (main): Don't write out "#define REGISTER_CONSTRAINTS". + * genoutput.c (have_constraints): Delete. + (main): Don't set it. + (output_operand_data): We always have constraints. + (scan_operands): Likewise. + (compare_operands): Likewise. + * local-alloc.c (block_alloc): We always have constraints. + (requires_inout): Always compile this function. + * recog.c (extract_insn): We always have constraints. + (constrain_operands, reg_fits_class_p): Always compile these + functions. + * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS + fields. + (struct insn_operand_data): Likewise. + * regclass.c (regclass): We always have constraints. + (record_reg_classes, copy_cost, record_address_regs, + auto_inc_dec_reg_p): Always compile these functions. + * regmove.c (regmove_optimize): We always have constraints. + * reload.c (find_reloads): Likewise. + * reload1.c (reload): Likewise. + (reload_cse_simplify_operands): Likewise. + * i860.c (output_delay_insn): Likewise. + +Thu Sep 30 23:04:41 1999 Mark P. Mitchell + + * iris6.h (BUILD_VA_LIST_TYPE): Define. + +Thu Sep 30 18:44:50 1999 Franz Sirl + + * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node + for the va_list record. + +Thu Sep 30 18:34:54 1999 Jan Hubicka + + * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in + prologues. + +Thu Sep 30 18:31:36 1999 Jan Hubicka + + * alias.c: Include insn-flags.h. + * Makefile.in (alias.o): Update. + +Thu Sep 30 18:21:30 1999 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons + to LTU and GEU. Handle more cases using sbb. + +Thu Sep 30 18:18:39 1999 Jan Hubicka + + * i386.md (truncatexfdf splitters): Do not use subreg. + (fop XFmode patterns): Fix mode in operand testing. + +Thu Sep 30 18:04:13 1999 Richard Henderson + + * jump.c (jump_optimize_1): Amend last change to test only the + form of the operand, not the insn. + + * jump.c (jump_optimize_1) [conditional_move]: Use general_operand + not register_operand to determine when B may need preloading. + +Thu Sep 30 17:39:16 1999 Richard Henderson + + * alpha.md (*): Use nonimmediate not general_operand for SET_DEST. + (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC. + (call-value patterns): Move to end of file. + (*): Remove mode from label_ref in (pc) context. + (movstrqi): Use memory not general_operand for BLKmode operands. + (prologue_stack_probe_loop, builtin_longjmp): Add missing mode + to register_operand operands. + (peep2 patterns): Convert from commented-out peephole patterns. + +Thu Sep 30 14:39:17 1999 Bernd Schmidt + + * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE + to BUILT_IN_INIT_DWARF_REG_SIZES. + * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES): + Renamed from BUILT_IN_DWARF_REG_SIZE; call + expand_builtin_init_dwarf_reg_sizes. + * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size + with __builtin_init_dwarf_reg_size_table. + * dwarf2out.c (struct reg_size_range): Delete. + (expand_builtin_init_dwarf_reg_sizes): New function. + (expand_builtin_dwarf_reg_size): Delete. + * except.h (expand_builtin_init_dwarf_reg_sizes): Declare. + (expand_builtin_dwarf_reg_size): Don't declare. + * libgcc2.c (dwarf_reg_size_table_initialized): New. + (dwarf_reg_size_table): New. + (init_reg_size_table): New function. + (copy_reg): Use dwarf_reg_size_table. + (eh_context_initialize): Make sure dwarf_reg_size_table is initialized + before use. + +Thu Sep 30 05:40:34 1999 Richard Earnshaw + + * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): + Correctly build argument list to constructor and destructor functions. + +Thu Sep 30 00:13:27 1999 Dirk Zoller + + * c-tree.h (warn_float_equal): Declare. + * c-decl.c (warn_float_equal): Define. + (c_decode_option): Recognize -W[no-]float-equal. + * c-typeck.c (build_binary_op): Conditionally warn + about equality tests of floating point types. + * toplev.c (documented_lan_options): Add -W[no-]float-equal. + * invoke.texi: Add docs for -Wfloat-equal warning. + +Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com) + + * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of + generating RTL directly. + * mips.h (INIT_TARGET_OPTABS): Likewise. + * mn10200.h (INIT_TARGET_OPTABS): Likewise. + + * expr.h (init_mov_optab): Delete declaration + + * h8300.c (WORD_REG_USED): Update to avoid useless register + saves in interrupt functions and functions which never return. + + * cse.c (struct set): Delete inner_dest_loc field. + (cse_insn): Remove assignments to inner_dest_loc field. + +Wed Sep 29 16:06:20 1999 Richard Henderson + + * ggc-page.c: Don't include etc taken care of + by "system.h". Include afterward. + +Wed Sep 29 16:05:18 1999 Richard Henderson + + * rs6000.c (rs6000_encode_section_info): If ggc_p, use + ggc_alloc_string. + +Tue Sep 28 16:45:40 1999 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Add documentation. + * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not + TARGET_64BIT. Compare constant to -1, not bit pattern. + (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT. + (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix + gen_movsi typos. + +Tue Sep 28 16:43:14 1999 Nick Clifton + + * dwarf2out.c (add_abstract_origin_attribute): Abort if + origin_die is NULL. + (gen_inlined_enumeration_type_die): Do not abort if the type has + not been writeen out. + (gen_inlined_structure_type_die): Do not abort if the type has + not been writeen out. + (gen_inlined_union_type_die): Do not abort if the type has + not been writeen out. + (gen_tagged_type_instantiation_die): Do not abort if the type + has not been written out. + +Tue Sep 28 14:33:47 1999 Bernd Schmidt + + * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, + call it. + * reg-stack.c (straighten_stack): Copy hard reg set with + COPY_HARD_REG_SET. + +Tue Sep 28 01:11:05 1999 Richard Henderson + + * builtins.c (stabilize_va_list): Stabilize array type va_list + to a pointer type, not the base record type. + (expand_builtin_va_copy): Dereference the pointers explicitly; + use the correct size for the copy. + + * rs6000.c (rs6000_va_start): Dereference valist to get to the record. + (rs6000_va_arg): Likewise. + +Mon Sep 27 23:27:21 1999 Richard Henderson + + * rtl.h (struct rtx_def): Move gc_mark to align mode field. + +Mon Sep 27 23:20:29 1999 Mark Mitchell + + * tree.h (struct tree_decl): Use `bclass', not `class', in name of + field. + (DECL_BUILT_IN_CLASS): Adjust accordingly. + +Mon Sep 27 23:03:16 1999 Richard Henderson + + * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. + (init_ggc): Use it instead of a constant. + (ggc_collect): Bound allocated_last_gc by it. + +Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems + with va_list. + +Mon Sep 27 19:40:17 CEST 1999 Marc Espie + + * configure.in (mips*el-*-openbsd*): Don't duplicate default settings. + (mips*-*-openbsd*): Let big endian configuration be a fragment. + * configure: Regen. + * config/mips/openbsd.h: New, OpenBSD little endian target. + * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment. + * config/mips/xm-openbsd.h: New, OpenBSD host. + +Mon Sep 27 10:28:48 1999 Andreas Schwab + + * config/m68k/m68k.c (output_function_prologue, + output_function_epilogue): Use + current_function_uses_pic_offset_table instead of regs_ever_live + to decide whether to save/restore pic register. + (legitimize_pic_address): Don't modify regs_ever_live any more. + +Sun Sep 26 10:55:36 1999 Mark Mitchell + + * function.h (struct function): Add x_dont_save_pending_sizes_p. + * stor-layout.c (variable_size): Don't add sizes to the pending + sizes list if x_dont_save_pending_sizes_p is set. + +Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net) + + * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument + for symbolic_operand(). + * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise. + +Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi + + * combine.c (gen_rtx_combine): Add missing call to va_end(). + + * final.c (asm_fprintf): Likewise. + + * genattrtab.c (attr_rtx): Likewise. + +Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c: Update comments. + (cse_insn): When converting a conditional/computed jump into + an unconditional jump, always make sure a BARRIER immediately + follows the converted jump. Do not delete unreachable code. + (cse_basic_block): Do not delete unreachable code. + * toplev.c (rest_of_compilation): Move call to + delete_trivially_dead_insns after the conditional call to + jump_optimize. + +Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi + + * collect2.c (make_temp_file): Don't prototype. + + * gcc.c (make_temp_file): Likewise. + + * mips.c (mips_make_temp_file): Renamed from `make_temp_file'. + +Sat Sep 25 13:42:15 1999 Nick Clifton + + * varasm.c (asm_emit_uninitialised): New function: Generate + the assembler statements necessary to declare an uninitialised + variable. + (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised + variable. + (ASM_EMIT_BSS): New macro: Emit an entry in the bss section. + (ASM_EMIT_COMMON): New macro: Emit an entry in the common + section. + (assemble_variable): Use asm_emit_uninitialised to emit an + uninitialised variable. + +Fri Sep 24 17:10:56 1999 Nick Clifton + + * combine.c (simplify_comparison): Cope with downshifting a 32 bit + constant on a 64 bit host. Patch supplied by Geoffrey Keating + . + +Fri Sep 24 10:48:10 1999 Bernd Schmidt + + * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. + * c-common.h (builtin_function): Don't declare. + + * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than + DECL_BUILT_IN. + (pushdecl): Likewise. + (finish_decl): Likewise. + (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type + int. All callers changed. + Set the builtin's DECL_BUILT_IN_CLASS. + * tree.h (enum built_in_class): New. + (enum built_in_function): Delete NOT_BUILT_IN. + (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now + in a union. + (DECL_SET_FUNCTION_CODE): Likewise. + (DECL_BUILT_IN_CLASS): New macro. + (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS. + (struct tree_decl): Split builtin function code field into a + struct. + (builtin_function): Declare. + +Fri Sep 24 01:45:05 1999 Mark Mitchell + + * optabs.c (init_traps): Fix typo in last change. + +Fri Sep 24 01:10:11 1999 Mark Mitchell + + * toplev.c (rest_of_decl_compilation): Update comment. + +Fri Sep 24 11:57:06 1999 Geoffrey Keating + + * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol + in .sbss if appropriate. + (EXTRA_SECTION_FUNCTIONS): Add sbss. + (SBSS_SECTION_ASM_OP): New macro. + * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss. + (EXTRA_SECTIONS): Add in_sbss. + * config/mips/mips.h: Prototype sbss_section. + +Thu Sep 23 18:18:55 1999 Mark Mitchell + + * stmt.c (expand_start_bindings): Don't allow cleanup instructions + to disappear. + +Thu Sep 23 18:07:01 1999 Mark Mitchell + + * optabs.c (init_traps): Register trap_rtx as a GC root. + +Thu Sep 23 17:41:47 1999 Alexandre Oliva + + * config/mips/mips.c (function_arg_pass_by_reference): Define + unconditionally, since it's called unconditionally. + +Thu Sep 23 13:40:02 1999 Jason Merrill + + * toplev.c (documented_lang_options): Add -fshort-wchar. + * c-decl.c (c_decode_option): Likewise. + (init_decl_processing): If -fshort-wchar, use 'short unsigned int' + for wchar_t. + * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. + * gcc.c (default_compilers): If -fshort-wchar, + override __WCHAR_TYPE__. + * tm.texi (C Dialect Options): Add -fshort-wchar. + + * dwarf2out.c (output_aranges): Use DW_AT_location to find the + symbol for a variable. + + * cpplib.h (CPP_PREPROCESSED): New macro. + * cpplib.c (handle_directive): Don't complain about `# NUMBER' if + we're seeing this input for a second time. + +Thu Sep 23 12:54:49 1999 Alex Samuel + + * emit-rtl.c (init_emit_once): Initialize modes first. + +Sun Sep 19 01:23:23 1999 Alex Samuel + + * config/i386/i386.c (pic_label_name): Change to char pointer. + (global_offset_table): New variable. + (load_pic_register): Fill global_offset_table if it hasn't + already been done. Allocate pic_label_name dynamically. + * ggc.h (empty_string): New variable. + * ggc-simple.c (empty_string): Likewise. + (init_ggc): Allocate empty_string and add as root. + * stmt.c (digit_strings): New variable. + (init_stmt): Add last_block_end_note as root. Allocate and + initialize digit_strings. + (expand_asm_operands): Use empty_string instead of string + constant. Use digit_strings instead of string constants. + * profile.c (init_arc_profiler): Allocate string with + ggc_alloc_string instead of xmalloc. + (output_func_start_profiler): Likewise. + * c-typeck.c (digest_init): Check if init is error_mark_node. + +Thu Sep 23 12:59:14 1999 Alex Samuel + Richard Henderson + + * ggc-page.c: New file. + * Makefile.in (ggc-page.o): New. + +Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com) + + * invoke.texi: Document -fdelete-null-pointer-checks + * toplev.c (flag_delete_null_pointer_checks): New. + (f_options): Add entry for -fdelete-null-pointer-checks. + (rest_of_compilation): Conditionalize null pointer check + elimination on flag_delete_null_pointer_checks. + (main): If -O2 or greater, enable -fdelete-null-pointer-checks + +1999-09-23 10:56 -0700 Zack Weinberg + + * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add + copyright notice and special exception to GPL. + +Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi + + * abi64.h (mips_function_value): Add prototype arguments. + + * mips-protos.h: New file with mips prototypes. + + * mips.c: Include "tm_p.h". + (mktemp, lookup_name): Add prototype arguments. + (extern_list, string_constant, mips_fill_delay_slot, + mips_output_external, mips_output_external_libcall, + mips_output_filename, mips_declare_object, function_prologue, + mips_expand_prologue, function_epilogue, mips16_constant, + build_mips16_function_stub, mips_output_conditional_branch): + Constify a char*. + (mips_va_start): Remove unused variable `u'. + (mips_va_arg): Cast value to unsigned when comparing against one. + (trace): Delete. + (save_restore_insns, mips_expand_prologue): Add missing arg in + call to `large_int'. + + * mips.h: Move prototypes to mips-protos.h. + (data_section, memory_address_p, rdata_section, + readonly_data_section, simple_epilogue_p, text_section): Delete + prototypes delcared elsewhere. + (mips_epilogue_delay_slots, print_options): Delete unused decls. + (trace): Delete. + (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace. + + * mips.md: Delete extra args in call to `mips_move_2words'. + + * xm-iris6.h (alloca): Add prototype argument. + + * genpeep.c: Include "tm_p.h" in generated output file. + +Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod + + * basic-block.h (find_edge_index): Change parameters. + * flow.c (verify_edge_list): Pass basic_block parameters to + find_edge_index instead of integers. + +Thu Sep 23 15:54:12 1999 Nick Clifton + + * combine.c (simplify_comparison): Use an unsigned shift to adjust + the constant. + +Thu Sep 23 08:46:21 1999 Guy Harris + + * gcc.1: Fix a formatting error. + +Wed Sep 22 16:10:21 1999 Martin v. Löwis + + * install.texi (Configurations): Remove pyramid. Add fr30, i686, + i786, mn10200, mn10300, pdp11, v850. + +Thu Sep 23 07:37:13 1999 Dan Nicolaescu + + * libgcc2.c (num_digits): Add prototype with + __attribute__((const)). + (__terminate): Add prototype. + +Thu Sep 23 05:32:06 1999 Richard Henderson + + * builtins.c, dbxout.c, varasm.c: Include tm_p.h. + + * alpha/alpha.c (print_operand): Fix type of `code'. + (alpha_output_filename): Constify. + * alpha/alpha.h: Move all function declarations ... + * alpha/alpha-protos.h: ... here. New file. + * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function. + (SECTION_FUNCTION_TEMPLATE): Likewise. + +Thu Sep 23 11:15:36 1999 Bernd Schmidt + + * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p. + * expr.c (expand_expr): Likewise. + (do_jump): Likewise. + (do_store_flag): Pass ccp_store_flag to can_compare_p. + * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and + accessor macros. + (enum can_compare_purpose): New. + (can_compare_p): Adjust prototype. + (prepare_cmp_insn, prepare_operand): Declare. + * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab. + * optabs.c (cmp_available_p): Deleted. + (expand_abs): Pass ccp_jump to can_compare_p. + (can_compare_p): New arg PURPOSE. Check for combined optabs. + (prepare_cmp_insn): No longer static. Add arg PURPOSE. + Call can_compare_p rather than cmp_available_p. + (prepare_operand): No longer static. + (emit_cmp_and_jump_insn): Check for and use cbranch patterns. + (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn. + (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn + sequence to use emit_cmp_and_jump_insns. + (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab. + +Wed Sep 22 17:58:01 1999 Stan Cox + + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large + register offsets; let LEGITIMIZE_ADDRESS load it into a register. + (LEGITIMIZE_ADDRESS): Use plus_constant to avoid + (plus (reg) (const_int 0)) + * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls. + +Wed Sep 22 17:55:31 1999 David Edelsohn + + * rs6000.c (expand_block_move): DImode loads and stores require + word-aligned displacements. Increment address registers with + adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT. + +Wed Sep 22 17:35:55 1999 Michael Meissner + + * dwarf2out.c (base_type_die): Use the name __unknown__ if there + is no name for the base type, rather than segfault. If we are + writing out a complex integer type, use DW_ATE_lo_user. + + * expr.c (emit_move_insn_1): If we are copying a complex that fits + in one word or less (complex char, complex short, or on 64 bit + systems complex float) to/from a hard register, copy it through + memory instead of dying in gen_{real,imag}part. If we have a + short complex type, prevent inlining since it allocates stack + memory. + + * tree.c (build_complex_type): If we are writing dwarf2 output, + generate a name for complex integer types. + +Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod + + * basic-block.h (add_noreturn_fake_exit_edges): Use correct name. + * flow.c (remove_edge): Remove extra whitespace. + (remove_fake_edges): Fix comment. + (add_noreturn_fake_exit_edges): Use the correct name. + +Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell + + * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables. + (mostlyclean): Depend on INTL_MOSTLYCLEAN. + (clean): Depend on INTL_CLEAN. + (maintainer-clean): Adjust. + +Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi + + * configure.in (AC_PREREQ): Bump to 2.13. + (AC_C_STRINGIZE): Call this instead of using a custom macro. + + * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__. + + * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY. + + * acconfig.h (HAVE_CPP_STRINGIFY): Delete. + + * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete. + (HAVE_STRINGIZE): Define. + +Wed Sep 22 06:25:15 1999 Jim Kingdon + + * c-parse.in: save and restore warn_pointer_arith on __extension__ + along with pedantic. + (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added. + Set the type of extension to itype rather than $1 kludge. + * extend.texi (Alternate Keywords): Adjust documentation. + * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt. + +Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c, pa.h, pa.md: Support multiple assembler dialects in + most assembler templates. + + * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0 + FP loads and stores. + (following_call): Always return zero for the PA8000. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0 + FP loads and stores. + (LEGITIMIZE_RELOAD_ADDRESS): Similarly. + + * pa.h (BRANCH_COST): Define. + + * pa.md (return, return_internal): Use bve for PA2.0. + + * pa.md (fused multiply): Add variants which reduce height for the + fused multiply, but which still generate 2 insns. + (fnegabs): Similarly. + + * pa.md (subsi3): Turn into an expander. Create two anonymous + patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. + * pa.h (EXTRA_CONSTRAINT): Handle 'S'. + + * pa.md (floatunssisf2, floatunssidf2): Generate different RTL + for TARGET_PA_20. + (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0 + code generation. + (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise. + (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise. + + * regclass.c (init_regs): Add "top_of_stack" as a garbage + collection root. + + * flow.c (record_active_eh_regions): Terminate loop after finding + the last insn in the last basic block. + +Wed Sep 22 20:25:00 1999 Michael Hayes + + * config/c4x/c4x.md: Delete parallel instruction peepholes. + +Wed Sep 22 19:59:19 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots. + +Wed Sep 22 19:56:25 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn + splitting to not use output template. + +Wed Sep 22 19:50:12 1999 Michael Hayes + + * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start. + * config/c4x/c4x.c (c4x_va_start): New function. + +Tue Sep 21 18:40:01 1999 Jan Hubicka + + * genrecog.c (not_both_true): Handle correctly cases when called for + tests with different positions in the insn. + +Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi + + * machmode.h (HOST_PTR_PRINTF): Move from here ... + + * system.h (HOST_PTR_PRINTF): ... to here. + + * mips-tfile.c: Don't include machmode.h. + + * Makefile.in (MACHMODE_H): New variable. Update to use it. + (mips-tfile.o): Don't depend on machmode.h. + +Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi + + * haifa-sched.c (sched_analyze): Rename local variable `region' to + avoid conflicts with typedef struct `region' at the top level scope. + +Tue Sep 21 14:14:50 1999 Richard Henderson + + * basic-block.h (basic_block): Add eh_beg, eh_end. + * flow.c (entry_exit_blocks): Update. + (find_basic_blocks): Don't allocate bb_eh_end, or pass it around. + Call new functions. + (find_basic_blocks_1): Don't record eh_list at each bb. Use + lists.c functions to allocate insn lists. + (make_edges): Use eh_beg+eh_end, not the lists. Split out EH + edge creation ... + (make_eh_edge): ... here. New. + (move_stray_eh_region_notes): New. + (record_active_eh_regions): New. + (delete_unreachable_blocks): Split out block merging ... + (try_merge_blocks): ... here. New. + (merge_blocks_move_predecessor_nojumps): Remove edge arg. + Dump debugging data. + (merge_blocks_move_successor_nojumps): Likewise. + (merge_blocks): Use eh_beg+eh_end to validate block movement. + +Tue Sep 21 11:15:03 1999 Martin v. Löwis + + * extend.texi (Bound member functions): Document unbound pmf + conversion. + +Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod + + * flow.c (split_edge): Handle insertion on a fallthrough edge which + has the EXIT_BLOCK as a dest. + +Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod + + * flow.c (remove_edge): New function to remove an edge from the + flow graph. + (remove_fake_successors): New function to remove fake successor edges. + (remove_fake_edges): New function to remove all fake edges from the + flow graph. + (add_fake_exit_edges): New function to add fake edges from all blocks + with no successors to the exit block. + * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add + prototypes for new functions. + +Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod + + * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): + Use Pmode to determine whether to output .dword or .word. + +Tue Sep 21 11:04:34 1999 Alex Samuel + + * tree.c (built_in_filename): New variable. + (BUILT_IN_FILENAME): New macro. + (init_tree_codes): Allocate built_in_filename. + (make_node): Use built_in_filename instead of string constant. + +Tue Sep 21 14:13:27 1999 Nick Clifton + + * configure.in: Add fr30 target. + * configure: Regenerate. + * config/fr30: New directory. + * config/fr30/crti.asm: New file. + * config/fr30/fr30.c: New file. + * config/fr30/crtn.asm: New file. + * config/fr30/fr30.h: New file. + * config/fr30/fr30.md: New file. + * config/fr30/lib1funcs.asm: New file. + * config/fr30/t-fr30: New file. + * config/fr30/xm-fr30.h: New file. + +Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (merge_blocks_move_successor_nojumps): Delete the + BARRIER at the end of the successor, not the BARRIER before + the successor. + + * pa.c (pa_add_gc_roots): Fix thinko in last change. + +Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com) + + * stmt.c (any_pending_cleanups): Don't crash when + current_function->stmt is unset. + +Tue Sep 21 00:59:49 1999 Alexandre Oliva + + * emit-rtl.c (init_emit_once): Initialize const_int_rtx before + other initializations that may use it for relative offsets. + +Mon Sep 20 21:43:25 1999 Alexandre Oliva + + * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs. + (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas. + * config/i386/sol2dbg.h: Removed. + * config/i386/sol2gas.h: New file, to enable gas work-around. + * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas. + Don't use sol2dbg.h. + * configure: Rebuilt. + +Mon Sep 20 13:29:41 1999 Mark Mitchell + + * invoke.texi (-fthis-is-variable): Remove documentation. + +Mon Sep 20 12:59:16 1999 Richard Henderson + + * basic-block.h (compute_bb_for_insn): Declare. + * flow.c (compute_bb_for_insn): Export. Don't accept the varray + to use; set size of basic_block_for_insn directly. + (find_basic_blocks): Update. + +Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi + + * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();". + +Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi + + * crtstuff.c (ON_EXIT): Delete empty macro definition. + (__do_global_ctors_aux): Call atexit(), not ON_EXIT(). + +Mon Sep 20 15:25:35 1999 Nick Clifton + + * c-decl.c (c_decode_option): Extend comment. + +Mon Sep 20 14:43:37 1999 Nick Clifton + + * toplev.c (progname): Make 'const char *' + (flag_print_mem): Move out of main. + (version_flag): Move out of main. + (filename): Move out of main. + (debug_args): Remove g prefix from options. + (documented_lang_options): Remove cpplib specific options. + (display_help): Add g prefix to debug options. + (check_lang_option): Delete this function. + (decode_d_option): New function: Decode -d... option. + (decode_f_option): New function: Decode -f... option. + (decode_W_option): New function: Decode -W... option. + (decode_g_option): New function: Decode -g... option. + (independent_decode_option): New function: Decode a language + independent command line option. + (main): Invoke lang_decode_option and then + independent_decode_option on each command line option in + turn. + +Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com) + + Revert this change. Gavin's patch to operand_equal_p is a better fix. + * fold-const.c (fold_range_test): Do not try to fold the range + test if the rhs or lhs has side effects. + + * basic-block.h (compute_flow_dominators): Declare. + + * gcse.c (alloc_code_hoist_mem): New function. + (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. + (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. + (hoist_code, one_code_hoisting_pass): Likewise. + (gcse_main): If optimizing for size, then hoist expressions + computed in multiple dominated basic blocks. + + * gcse.c (invalid_nonnull_info): New function. + (delete_null_pointer_checks): Likewise. + * rtl.h (delete_null_pointer_checks): Declare. + * toplev.c (rest_of_compilation): Call delete_null_pointer_checks. + + * flow.c (merge_blocks_move_predecessor_nojumps): New function. + (merge-blocks_move_successor_nojumps): Likewise. + (merge_blocks): Allow merging of some blocks, even if it requires + physical movement of the blocks, but not if it requires new jumps. + + * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file. + Callers and prototype changed. + * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes. + +Mon Sep 20 06:56:32 1999 Alexandre Oliva + + * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of + -YP when both -p and -pg are present. From i386/sol2.h. + +Mon Sep 20 10:49:05 1999 Bernd Schmidt + + * Makefile.in (distclean): Delete tm_p.h. + * configure.in: Create a new file, "tm_p.h", from a list in + "tm_p_file". For ix86 systems, set up "tm_p_file" to include + "i386/i386-protos.h". + + * alias.c: Include "tm_p.h". + * c-typeck.c: Likewise. + * calls.c: Likewise. + * cse.c: Likewise. + * emit-rtl.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * final.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * gcse.c: Likewise. + * global.c: Likewise. + * haifa-sched.c: Likewise. + * integrate.c: Likewise. + * jump.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * recog.c: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * toplev.c: Likewise. + * tree.c: Likewise. + * unroll.c: Likewise. + * genattrtab.c (main): Make generated file include "tm_p.h". + * genemit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genrecog.c (main): Likewise. + + * i386.h: Delete all prototypes. + * i386.c: Include "tm_p.h". + (ix86_attr_length_default): Call constant_call_address_operand + with correct number of arguments. + * i386-protos.h: New file. + * i386.md (unnamed patterns): Call constant_call_address_operand + with correct number of arguments. + (exception_receiver): Call load_pic_register with correct number + of arguments. + +Sun Sep 19 14:18:39 1999 Richard Henderson + + * c-pragma.c (mark_align_stack): Dereference the void* properly. + +Sun Sep 19 09:03:40 1999 Mark Mitchell + + * rtl.h (insns_safe_to_move_p): New function. + * loop.c (find_and_verify_loops): Use it. + * rtlanal.c (insns_safe_to_move_p): Define it. + +Sun Sep 19 02:54:33 1999 Richard Henderson + + * c-pragma.c: Include ggc.h. + * Makefile.in (c-pragma.o): Update. + +Sat Sep 18 16:01:18 1999 Alexandre Oliva + + * config/i386/sol2.h (CPP_SPEC): Support -[p]threads + (LIB_SPEC): Likewise. + (LINK_SPEC): Do not assert -z text with -shared -mimpure-text. + Reindent -YP/-p/-pg. + Copied from config/sparc/sol2.h. + +Sat Sep 18 11:52:43 1999 Richard Henderson + + * c-pragma.c (mark_align_stack): New. + (init_pragma): New. + * c-pragma.h (init_pragma): Declare it. + * c-lex.c (init_parse): Call it. + +Sat Sep 18 15:20:38 1999 Alexandre Oliva + + * configure.in: Pick up thread library on Solaris/x86 just + like on Solaris/sparc. + * configure: Rebuilt. + +Sat Sep 18 11:15:58 1999 Alex Samuel + + * rtl.h (global_rtx_index): New enum. + (global_rtl): Change to array of rtx. + (pc_rtx, cc0_rtx): Redefine accordingly. + (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise. + (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise. + (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise. + (virtual_outgoing_args_rtx, virtual_cfa): Likewise. + (const_int_rtx): Change to array of rtx. + (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine + accordingly. + * emit-rtl.c (global_rtl): Change to array of rtx. + (const_int_rtx): Change to aray of rtx. + (gen_rtx_CONST_INT): Redefine accordingly. + (init_emit_once): Allocate and initialize global_rtl. Likewise + for const_int_rtx. Add both as GC roots. + * genattrtab.c (global_rtl): Update declaration. + +1999-09-17 Ulrich Drepper + + * Makefile (USER_H): Add iso646.h back. + +Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of + zapping the LOG_LINKS of sched_before_next_call. + + * pa.h (INSN_SETS_ARE_DELAYED): Delete. + * pa.c (insn_refs_are_delayed): Renamed from + insn_sets_and_refs_are_delayed. + +Fri Sep 17 15:19:01 1999 Mark Mitchell + + * functiion.h (struct function): Add x_whole_function_mode_p. + (retrofit_block): Declare. + * function.c (retrofit_block): New function. + (identify_blocks): Add assertions. Allow an incomplete set of + block notes if we're still generating code for the function. + * integrate.c: Include loop.h. + (expand_inline_function): Call find_loop_tree_blocks to map block + notes to blocks when in whole-function mode. Use retrofit_block + to insert new BLOCKs for the inlined function, rather than + insert_block. + * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel. + * Makefile.in (integrate.o): Depend on loop.h. + +Fri Sep 17 15:11:20 1999 Mark Mitchell + + * tree.h (warn_about_unused_variables): Declare. + * stmt.c (warn_about_unused_variables): New function, split out + from ... + (expand_end_bindings): Here. + +Fri Sep 17 15:07:37 1999 Mark Mitchell + + * stmt.c (preserve_subexpressions_p): Don't crash when + current_function->stmt is unset. + +Fri Sep 17 15:03:16 1999 Mark Mitchell + + * stmt.c (expand_start_bindings): Allow callers to pass a flag + indicating that no NOTE_INSN_BLOCK_BEG note is required. + (expand_start_target_temps): Use it. + * except.c (expand_eh_region_start_for_decl): Likewise. + * expr.c (expand_expr): Likewise. + +Fri Sep 17 15:05:27 1999 Gavin Romig-Koch + + * fold-const.c (operand_equal_p): Pay attention to side effects. + +Fri Sep 17 11:14:17 1999 Jason Merrill + + * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT. + * sparc/sunos4.h (HAVE_ON_EXIT): Remove. + + * tlink.c (scan_linker_output): Look for keywords before accepting + a mangled name in quotes. + +Thu Sep 16 16:47:08 1999 Richard Henderson + + * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero. + * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise. + +Thu Sep 16 16:35:41 1999 Richard Henderson + + * alpha.md: Revert Thu Nov 26 change that came in through the + last gcc2 merge: reinstate (plus (plus ...)) reload patterns. + Avoid earlyclobber when possible. + +Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi + + * libgcc2.c (__do_global_ctors): Call atexit with one arg. + + * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS(). + Define HAVE_ON_EXIT. + +Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi + + * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use + CTYPE_CONV in all ctype macros. + + * cccp.c (initialize_char_syntax): Use uppercase ctype macro + from system.h. + + * cexp.y (initialize_random_junk): Likewise. + + * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise. + + * i370.c (handle_pragma): Likewise. + + * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise. + + * v850.c (override_options): Likewise. + + * doprint.c (_doprnt): Likewise. + + * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files): + Likewise. + + * fixinc/server.c (load_data): Likewise. + + * fold-const.c (real_hex_to_f): Likewise. + + * genattr.c (write_upcase, gen_attr): Likewise. + + * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr, + write_upcase): Likewise. + + * genemit.c (print_code): Likewise. + + * genopinit.c (gen_insn): Likewise. + + * genpeep.c (print_code): Likewise. + + * genrecog.c (print_code): Likewise. + + * optabs.c (init_libfuncs): Likewise. + +Thu Sep 16 14:03:32 1999 Mark Mitchell + + * haifa-sched.c (sched_analyze): Keep the list of notes organized + in pairs. + (reemit_notes): Likewise. + +Thu Sep 16 11:50:52 1999 Alex Samuel + + * ggc.h (ggc_root): Move to ggc-common.c. + (roots): Remove. + (ggc_mark_rtx, ggc_mark_tree): Change to macro. + (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern. + (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise. + (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New. + * ggc-common.c (ggc_root): Move from ggc.h. + (roots): Declare, static. + (ggc_mark_rtx, ggc_mark_tree): Renamed to... + (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for + null or check/set mark bit. + (ggc_mark_roots): New. + * ggc-simple.c (ggc_collect): Call ggc_mark_roots. + +Thu Sep 16 11:37:32 1999 Richard Henderson + + * m32r.c: Include toplev.h. + (*): Add ATTRIBUTE_UNUSED as needed to arguments. + (gen_compare): Rename swap_p to must_swap to match uses. + Add default abort case. + (m32r_output_function_epilogue): Remove unused variables. + (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. + * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally + define to empty parameter list. Update all uses. + (predicate decls): Use enum machine_mode not int. + * m32r.md (movsi): Call abort, not fatal_insn. + (zero_branch_insn, rev_zero_branch_insn): Add default abort case. + +1999-09-14 Andrew Haley + + * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0, + use $0 instead of 0. + +Thu Sep 16 10:53:36 1999 Bernd Schmidt + + * reload1.c (order_regs_for_reload): Move hard_reg_n_uses + computation out of loop over hard regs. + +Wed Sep 15 21:37:06 1999 Mark Mitchell + + * function.c (identify_blocks): Don't shadow a variable in an + outer scope. + * integrate.c (integrate_decl_tree): Don't use pushlevel, + pushdecl, or poplevel to build up the new BLOCK tree. + (expand_inline_function): Likewise. + (integrate_parm_decls): Likewise. + +Wed Sep 15 21:20:38 1999 Mark Mitchell + + * c-typeck.c (qualify_type): Merge qualifiers from both types. + +1999-09-15 Brad Lucier + + * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math + * invoke.texi: Document this change. + +Wed Sep 15 17:56:00 1999 Richard Henderson + + * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT. + Free the struct. + (mark_emit_status): Renamed from mark_emit_state. + * except.c (mark_eh_status): Renamed from mark_eh_state. + Check not null before marking. + (free_eh_status): New. + * expr.c (mark_expr_status, free_expr_status): New. + * function.c (free_machine_status): New. + (free_after_parsing): New. + (free_after_compilation): Move bits to free_after_parsing; call + free_eh_status, free_expr_status; zero the marked members of the + function state. + (prepare_function_start): No can_garbage_collect. + Call init_eh_for_function. + (expand_dummy_function_end): Free up current_function state. + (mark_function_status): Renamed from mark_function_state. + (mark_function_chain): No can_garbage_collect. Call mark_expr_status. + * function.h (struct function): No can_garbage_collect. + (free_machine_status, free_after_parsing): Declare. + (free_eh_status, free_expr_status): Declare. + * ggc.h (mark_expr_status): Declare. + * stmt.c (free_stmt_status): Free the struct. + (mark_stmt_status): Renamed from mark_stmt_state. + (init_stmt): Don't call init_eh. + (init_stmt_for_function): Don't call init_eh_for_function. + * toplev.c (compile_file): Call init_eh. + (rest_of_compilation): Free basic block info before ggc_collect. + Call free_after_parsing; conditionally call free_after_compilation. + * varasm.c (mark_varasm_status): Renamed from mark_varasm_state. + Check not null before marking. + (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct. + +Wed Sep 15 17:53:16 1999 Richard Henderson + + * c-lex.c (yylex): Initialize warn. + +Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (emit_move_sequence): Properly set the mode of the scratch + register when performing secondary reloads for the SAR register. + +Wed Sep 15 15:51:52 1999 Mark Mitchell + + * rtl.h (NOTE_BLOCK_NUMBER): Replace with ... + (NOTE_BLOCK): New macro. + (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove. + * function.h (identify_blocks): Change prototype. + * function.c (identify_blocks): Simplify. + (reorder_blocks): Likewise. + * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a + NOTE_INSN_BLOCK_{BEG,END}. + * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on + the list of saved notes if the note isn't a + NOTE_INSN_BLOCK_{BEG,END}. + (move_insn1): Use NOTE_EH_HANDLER in comment, rather than + NOTE_BLOCK_NUMBER. + (reemit_notes): Adjust recreation of notes to reflect new saved + note structure. + * print-rtl.c (print_rtx): Print the address of the BLOCK when + printing a block note. + * stmt.c (block_vector): Remove. + (find_loop_tree_blocks): Simplify. + (unroll_block_trees): Likewise. + * tree.h (reorder_block): Change prototype. + +Wed Sep 15 14:39:35 1999 Jason Merrill + + * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT. + * libgcc2.c: Lose obsolete defn of WEAK_ALIAS. + (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT. + (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl. + (atexit, exit): Simplify. + * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT. + * config/lots: Remove defns of HAVE_ATEXIT. + +Wed Sep 15 10:25:12 1999 Mark Mitchell + + * calls.c (precompute_arguments): Fix typo in comment. + * expr.c (preexpand_calls): Don't preexpand the cleanup in a + TARGET_EXPR. + +Wed Sep 15 09:59:59 1999 Mark Mitchell + + * dsp16xx.c (override_options): Fix typos in GC root registration. + +Wed Sep 15 15:23:28 1999 Philip Blundell + + * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition + from config/svr4.h. + (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise. + (FUNCTION_PROFILER): Redefine appropriately for Linux. + (CC1_SPEC): Likewise. + +Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi + + * genattr.c (main): Add extern prototype. Call return, not exit. + * genattrtab.c (main): Likewise. + * gencheck.c (main): Likewise. + * gencodes.c (main): Likewise. + * genconfig.c (main): Likewise. + * genemit.c (main): Likewise. + * genextract.c (main): Likewise. + * genflags.c (main): Likewise. + * gengenrtl.c (main): Likewise. + * genopinit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genpeep.c (main): Likewise. + * genrecog.c (main): Likewise. + + * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED. + * genattrtab.c (get_insn_name): Likewise. + * gencodes.c (get_insn_name): Likewise. + * genconfig.c (get_insn_name): Likewise. + * genemit.c (get_insn_name): Likewise. + * genextract.c (get_insn_name): Likewise. + * genflags.c (get_insn_name): Likewise. + * genopinit.c (get_insn_name): Likewise. + * genpeep.c (get_insn_name): Likewise. + + * gencheck.c (usage): Add static prototype. + * genextract.c (print_path): Constify a char*. + * genopinit.c (optabs): Likewise. + * genoutput.c (operand_data, data, output_predicate_decls, + compare_operands): Likewise. + * genrecog.c (write_tree): Add default case in switch. + +Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi + + * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes. + + * print-rtl.c (get_insn_name): Remove prototype. + + * toplev.h (progname): Declare const. + + * toplev.c (init_decl_processing, init_obstacks, init_tree_codes, + init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info, + dump_sched_info, dump_local_alloc, regset_release_memory, + print_rtl, print_rtl_with_bb, rest_of_decl_compilation, + error_with_file_and_line, error_with_decl, error_for_asm, error, + fatal, warning_with_file_and_line, warning_with_decl, warning, + pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry): + Remove redundant prototypes. + + (notice, check_lang_option, report_file_and_line, vnotice, + mark_file_stack): Add static prototype. + (set_fatal_function): Add prototype. + (vnotice, report_file_and_line, set_fatal_function, + check_lang_option): Constify a char*. + (main): Prototype. Call return, not exit. + +Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi + + * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro. + + * configure.in (AC_GCC_C_LONG_DOUBLE): Call it. + + * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2. + + * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double. + +Wed Sep 15 11:04:43 1999 Bernd Schmidt + + * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it, + behave as if it's zero in all cases. + (expand_function_start): Adjust call to assign_parms. + * tree.h (assign_parms): Adjust prototype. + * objc/objc-act.c (hack_method_prototype): Adjust call to + assign_parms. + +Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to + arg_pointer_rtx fixed if the argument pointer register is + not fixed. + (NONZERO_BASE_PLUS_P): Likewise. + +Tue Sep 14 20:26:02 1999 Richard Henderson + + * rtl.def (match_insn, match_insn2): Remove match_insn; rename + match_insn2 to match_insn. + * genrecog.c (add_to_sequence): Rename MATCH_INSN2. + +Tue Sep 14 20:10:29 1999 Richard Henderson + + * Makefile.in (USER_H): Remove va-foo.h. + + * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h, + va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h, + va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h, + va-spur.h,va-v850.h}: Remove. + +Tue Sep 14 19:43:16 1999 Richard Henderson + + * sparc/sparc.md (eligible_for_return_delay): New attribute. + (in_return_delay): Use it instead of match_insn. + +Tue Sep 14 23:05:37 1999 Alexandre Oliva + + * config/alpha/va_list.h (va-alpha.h): Do not include. + (__gnuc_va_list): Typedef as in varargs.h. + +Tue Sep 14 18:14:03 1999 Richard Henderson + + * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and + DECL_LIVE_RANGE_RTL. + +Tue Sep 14 16:47:08 1999 Mark Mitchell + + * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER, + not NOTE_BLOCK_NUMBER. + (expand_eh_region_end): Likewise. + (find_exception_handler_labels): Likewise. + (scan_region): Likewise. + (exception_optimize): Likewise. + (update_rethrow_references): Likewise. + (set_insn_eh_region): Likewise. + * final.c (final_scan_insn): Likewise. + * flow.c (make_edges): Likewise. + * integrate.c (expand_inline_function): Likewise. + * print-rtl.c (print_rtx): Likewise. + +Tue Sep 14 16:30:16 1999 Richard Henderson + + * ginclude/stdarg.h, ginclude/varargs.h: Implement in + terms of builtin functions and types. + + * mips.c (mips_build_va_list): New. + (mips_va_start, mips_va_arg): New. + * mips.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. + + * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set. + (sh_build_va_list, sh_va_start, sh_va_arg): New. + * sh.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. + +Tue Sep 14 16:20:24 1999 Richard Henderson + + * recog.h (struct recog_data): Make dup_num, operand_address_p, + n_operands, n_dups, n_alternatives `char' instead of `unsigned char'. + (struct insn_data): Likewise with n_operands, n_dups, + n_alternatives, output_format. + * regclass.c (scan_one_insn): Cast n_operands to int before + arithmetic inside comparison. + +Tue Sep 14 15:13:36 1999 Richard Henderson + + * toplev.c (compile_function): Unconditionally emit nop. + +Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi + + * haifa-sched.c (actual_hazard): Move declaration of variable + `this_cost' into the scope where it is used. + +Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi + + * c-pragma.c (handle_pragma_token): Wrap variables `name' and + `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in + HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP. + + * genrecog.c (make_insn_sequence): Call memset, not bzero. + + * jump.c (find_insert_position): Don't declare or define unless + !HAVE_conditional_arithmetic. + (returnjump_p_1, delete_prior_computation): Add static prototypes. + + * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes. + + * recog.c (offsettable_address_p): Prototype function pointer. + (preprocess_constraints): Call memset, not bzero. + + * tree.c (tree_node_kind_names): Constify a char*. Make static. + (gcc_obstack_init): Don't declare. + (fix_sizetype): Add static prototype. + (gcc_obstack_init): Use prototype casts in call to _obstack_begin. + (tree_cons): Call memset, not bzero. + + * varasm.c (remove_from_pending_weak_list): Wrap declaration and + definition in macro ASM_WEAKEN_LABEL. + (mark_const_hash_entry): Add static prototype. + +Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi + + * c-lex.c (handle_generic_pragma): Remove unused variable `c'. + + * unroll.c (find_common_reg_term, subtract_reg_term, + loop_find_equiv_value): Add static prototypes. + (unroll_loop): Wrap variable `prev' in macro HAVE_cc0. + (copy_loop_body): Remove unreachable break statement. + + * sparc.c (sparc_va_arg): Remove unused variable `tmp'. + + * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes. + +Tue Sep 14 15:28:00 1999 Bernd Schmidt + + Undo some changes from the gcc2 merge: + * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code. + * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null + pointers. + + Undo this change: + Sat Oct 3 07:20:28 1998 Stephen L Moshier + * emit-rtl.c (gen_lowpart_common): Disable optimization of + initialized float-int union if the value is a NaN. + +Tue Sep 14 04:03:44 1999 Mumit Khan + + * gthr-win32.h: New file. + + * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize + shared as a valid attribute. + * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute. + * extend.texi: Document `shared' variable attribute. + +Tue Sep 14 04:01:46 1999 Loren Rittle + + * configure.in: Handle --enable-threads on FreeBSD. + * configure: Rebuit. + +Tue Sep 14 03:58:44 1999 Andreas Jaeger + + * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add + thread support. + * configure: Rebuilt. + +Tue Sep 14 03:47:23 1999 Joel Sherrill + Charles-Antoine Gauthier + Rosimildo DaSilva + + * configure.in (m68k-*-rtemscoff*): Added. + * configure.in (mips64orion-*-rtems*): Converted to ELF. + * configure.in (sparc-*-rtemsaout*): Added as alias for old + sparc-rtems configuration. + * configure.in (sparc-*-rtemself*): Added. + * configure.in (sparc-*-rtems*): Now ELF not a.out. + * config/i386/rtems.h: Added comment. + * config/sparc/rtemself.h: New file. + + * configure.in (m68k-rtemself): Added. + * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO + and DWARF_DEBUGGING_INFO. + * config/m68k/crti.s: New file. + * config/m68k/crtn.s: New file. + * config/m68k/t-crtstuff: New file. + * config/m68k/rtemself.h: New file. + + * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for + global ctor/dtor and C++ exception handling. + * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o) + for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for + ENDFILE_SPEC. + * config/i386/t-rtems-i386: New File. + +Tue Sep 14 09:47:41 1999 Andreas Schwab + + * stmt.c (expand_end_case): Return right away if the case stack is + empty. + +Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (version.c): Remove rule incorrectly brought in from + the gcc2 merge. + +Tue Sep 14 01:42:27 1999 Marc Espie + + * Makefile.in: Prepend $(SHELL) to move-if-change calls. + * msdos/top.sed: Take into account a prepended $(SHELL) to + move-if-change. + * winnt/config-nt.sed: Likewise. Kill bogus substitution. + + * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls. + +Tue Sep 14 01:38:52 1999 J"orn Rennecke + + * regmove.c (fixup_match_1): Don't change an unchanging register. + (stable_but_for_p): Renamed to: + (stable_and_no_regs_but_for_p). Reject unchanging registers too. + Changed all callers. + +Tue Sep 14 01:33:15 1999 Andreas Schwab + + * loop.c (strength_reduce): Don't call reg_used_between_p if the + insn from BL2 is after the insn from BL. + +Mon Sep 13 21:06:01 1999 Richard Henderson + + * recog.h (INSN_OUTPUT_FORMAT_*): New. + (struct insn_data): Merge `template' and `outfun' into `output'. + Add `output_format'. + * genoutput.c (INSN_OUTPUT_FORMAT_*): New. + (struct data): Remove `outfun'; add `output_format'. + (name_for_index): Remove declaration. + (output_insn_data): Handle output formats. + (process_template): Emit the bare array for @. + (gen_expand, gen_split): Set output_format to NONE. + * output.h (get_insn_template): Declare. + * final.c (get_insn_template): New. + (final_scan_insn): Use it. + * toplev.c (compile_file): Likewise. + + * c4x/c4x.c (c4x_process_after_reload): Likewise. + * i860/i860.c (output_delayed_branch): Likewise. + (output_delay_insn): Likewise. + +1999-09-13 Alexandre Oliva + + * rtl.c (obstack_alloc_rtx): Removed. + +1999-09-13 17:03 -0700 Zack Weinberg + + * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern. + +Mon Sep 13 15:21:46 1999 Richard Henderson + + * i386.c (call_insn_operand): Reject const_int. + (expander_call_insn_operand): Use call_insn_operand. + +Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi + + * gcc.c (getrusage): Wrap prototype arguments in PROTO(). + +1999-09-13 12:18 -0700 Zack Weinberg + + * config/i370/i370.md (mulsi, divsi, modsi anonymous insns): + Use DImode operation. + +1999-09-13 12:13 -0700 Zack Weinberg + + * gcc.c: Include sys/resource.h. + (report_times): New flag. + (execute): If report_times is set, calculate and report the + CPU time consumed by each subprocess. + + (rus, prus): New globals. + (option_map): Add --time. + (display_help): Document -time. + (process_command): Set report_times if -time is given. + Turn off -pipe if -time is given. + + * invoke.texi: Document new option -time. + + * configure.in: Check for getrusage. Check if we have to + prototype getrusage. + * acconfig.h: Add NEED_DECLARATION_GETRUSAGE. + * configure: Regenerate. + * config.in: Regenerate. + +Mon Sep 13 12:57:06 1999 Dave Brolley + + * cppinit.c (append_include_chain): Initialize 'next' and 'alloc' + fields. + +Mon Sep 13 10:01:33 1999 Nick Clifton + + * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as + appropriate) if FINE_GRAINED_LIBRARIES is not defined. + (nan): Return _thenan_sf or _thenan_df as appropriate. + (L_thenan_sf): Define _thenan_sf. + (L_thenan_df): Define _thenan_df. + + * Makefile.in (FPBIT_FUNCS): Add _thenan_sf. + (DPBIT_FUNCS): Add _thenan_df. + +Mon Sep 13 09:38:53 1999 Andreas Schwab + + * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and + TYPE_SIZE_UNIT. + +Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi + + * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h. + + * gcc.h: New file. + (lang_specific_driver): Don't take a function pointer parameter. + All callers changed. + + * gcc.c: Include gcc.h. + (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link, + lang_specific_extra_outfiles, fatal): Don't declare. + (multilib_defaults_raw): Constify. + (read_specs): Call memset, rather than bzero. + (main): Call return, not exit. + (lookup_compiler): Call memcpy, not bcopy. + (fatal): Make extern. + + * cppspec.c: Include gcc.h. + (lang_specific_driver): Initialize variable `quote'. Constify a + char*. All calls to the function pointer parameter now + explicitly call `fatal'. + + * gccspec.c (lang_specific_driver): Include gcc.h. + +Sun Sep 12 19:52:10 1999 Richard Earnshaw + + * arm.c (note_invalid_constants): Use recog_data.operand_type + for recog_op_type. + +Sun Sep 12 15:53:20 1999 Bernd Schmidt + + * tree.h (build_common_tree_nodes, build_common_tree_nodes_2): + Declare. + + * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg, + reload_reg_class, reload_inmode, reload_outmode, reload_optional, + reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, + reload_secondary_in_reload, reload_secondary_out_reload, + reload_secondary_in_icode, reload_secondary_out_icode, + reload_reg_rtx, reload_when_needed): Delete declarations. + (struct reload): New structure. + (rld): Declare new array. + * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg, + reload_reg_class, reload_inmode, reload_outmode, reload_optional, + reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, + reload_secondary_in_reload, reload_secondary_out_reload, + reload_secondary_in_icode, reload_secondary_out_icode, + reload_reg_rtx, reload_when_needed): Delete definitions. + (rld): New array. + (whole file): Replace uses of the deleted arrays with uses of rld. + * reload1.c (whole file): Replace uses of the deleted arrays with + uses of rld. + (choose_reload_regs): Copy in/out of save_reload_reg_rtx with + explicit loops, not with bcopy. + +Sun Sep 12 05:00:24 1999 Richard Henderson + + * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups, + insn_n_alternatives, insn_operand_constraint, insn_operand_address_p, + insn_operand_mode, insn_operand_strict_low, insn_operand_predicate, + insn_name): Delete and consolidate into new structures. + (insn_operand_predicate_fn): New. + (insn_output_fn): New. + (insn_gen_fn): New. + (struct insn_operand_data): New. + (struct insn_data): New. + (insn_data): New. + (OUT_FCN): Update for insn_data change. + * builtins.c (expand_builtin_strlen): Likewise. + (expand_builtin_memcmp): Likewise. + * combine.c (make_extraction, simplify_comparison): Likewise. + * cse.c (canon_reg, cse_insn): Likewise. + * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. + * expmed.c (store_bit_field, extract_bit_field): Likewise. + (emit_store_flag): Likewise. + * expr.c (convert_move, emit_block_move): Likewise. + (clear_storage, emit_push_insn, expand_increment): Likewise. + (do_store_flag): Likewise. + * expr.h (GEN_FCN): Likewise. + (insn_gen_function): Die. + * final.c (final_scan_insn): Update for insn_data change. + (output_asm_name): Likewise. + * function.c (fixup_var_refs_1): Likewise. + * loop.c (check_dbra_loop): Likewise. + * optabs.c (expand_binop, expand_twoval_binop): Likewise. + (expand_unop, expand_complex_abs, emit_unop_insn): Likewise. + (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise. + (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise. + * recog.c (validate_replace_rtx_1, extract_insn): Likewise. + * regmove.c (gen_add3_insn): Likewise. + * reload.c (push_secondary_reload, combine_reloads): Likewise. + (find_reloads, find_reloads_address_1): Likewise. + (debug_reload_to_stream): Likewise. + * reload1.c (emit_reload_insns, gen_reload): Likewise. + * stmt.c (expand_end_case): Likewise. + * toplev.c (compile_file): Likewise. + + * c4x/c4x.c (c4x_process_after_reload): Likewise. + * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. + + * print-rtl.c (insn_name_ptr): Remove declaration. + (get_insn_name): Declare. + (print_rtx): Use it. + * genoutput.c (insn_name_ptr): Remove. + (next_operand_number): New. + (struct operand_data): New. + (null_operand, odata, odata_end): New. + (struct data): Use struct operand_data. + (idata, idata_end): Renamed from insn_data and end_of_insn_data. + (get_insn_name): Renamed from name_for_index. + (output_prologue): Define NO_MD_PROTOTYPES. + (output_predicate_decls): Break out from output_epilogue. + Iterate over the operands list. + (output_operand_data): Break out from output_epilogue. Emit + just the operands list. + (output_insn_data): Break out from output_epilogue. Emit just + the insn data. + (output_epilogue): Remove. + (output_get_insn_name): New. + (constraints, op_n_alternatives, predicates, address_p): Die. + (modes, strict_low, seen): Die. + (scan_operands): Take new param `d' instead of writing to + seven global variables. + (compare_operands): New. + (place_operands): New. + (validate_insn_alternatives): Update for struct data change. + (gen_insn): Don't zero or copy 7 global arrays. Update for + scan_operands; call place_operands. + (gen_peephole, gen_expand, gen_split): Likewise. + (main): Update for new output routines. + + * genattr.c (insn_name_ptr): Remove. + (get_insn_name): New function. + * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise. + * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise. + * genrecog.c: Likewise. + + * alpha.md (adddi3): Make `pattern' array static. + +Sun Sep 12 22:05:21 1999 Michael Hayes + + * config/c4x/c4x.h (c4x_rpts_cycles_string, + c4x_cpu_version_string): Constify char *. + * config/c4x/c4x.c (c4x_rpts_cycles_string, + c4x_cpu_version_string): Likewise. + +Sat Sep 11 23:28:33 1999 Richard Henderson + + * tree.c (save_tree_status): Revert 10 Sep change. + (restore_tree_status): Likewise. Call obstack_free with NULL + before freeing the obstack proper. + +Sat Sep 11 23:23:46 1999 Richard Henderson + + * cse.c (cse_main): If gc'ing, collect around cse_basic_block. + + * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into + surrounding context. + +Sat Sep 11 19:52:43 1999 Mark Mitchell + + * tree.c (type_hash_canon): Put all types in the hash-table, when + GC'ing. + +Sat Sep 11 18:37:04 1999 Richard Henderson + + * recog.h (struct recog_data, recog_data): New. + (recog_foo variables): Kill. + * recog.c (recog_operand, recog_operand_loc): Kill. + (recog_dup_loc, recog_dup_num, recog_n_operands): Kill. + (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill. + (recog_constraints, recog_op_type, recog_operand_address_p): Kill. + (recog_data): Define. + (extract_insn): Update all recog_foo references to use recog_data. + (preprocess_constraints, constrain_operands): Likewise. + * final.c (final_scan_insn, cleanup_subreg_operands): Likewise. + * genattrtab.c (main): Likewise. + * genextract.c (main): Likewise. + * genoutput.c: Likewise. + * genrecog.c (write_subroutine, main): Likewise. + * local-alloc.c (block_alloc): Likewise. + * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise. + * regclass.c (scan_one_insn, record_reg_classes): Likewise. + * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise. + * reload.c (find_reloads, find_reloads_toplev): Likewise. + * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise. + (reload_cse_simplify_operands): Likewise. + + * arc/arc.c (arc_final_prescan_insn): Likewise. + * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise. + * h8300/h8300.c (notice_update_cc): Likewise. + * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise. + * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. + * mn10200/mn10200.c (notice_update_cc): Likewise. + * mn10300/mn10300.c (notice_update_cc): Likewise. + * romp/romp.c (update_cc): Likewise. + * sparc/sparc.c (check_pic): Likewise. + * v850/v850.c (notice_update_cc): Likewise. + + * genemit.c (main): Don't declare recog_operand. + +Sat Sep 11 12:41:55 1999 Alex Samuel + + * ggc.h (rtvec_def): Forward declare. + (tree_node): Likewise. + (ggc_root): Define. + (roots): Declare. + (ggc_set_mark_rtx): Add prototype. + (ggc_set_mark_rtvec): Likewise. + (ggc_set_mark_tree): Likewise. + * ggc-simple.c (ggc_root): Don't define. + (roots): Don't declare. + (ggc_mark_rtx): Remove. + (ggc_mark_rtvec): Likewise. + (ggc_mark_tree): Likewise. + (ggc_mark_varray): Likewise. + (ggc_mark_tree_hash_table_entry): Likewise. + (ggc_mark_tree_hash_table): Likewise. + (ggc_set_mart_rtx): New function. + (ggc_set_mark_rtvec): Likewise. + (ggc_set_mark_tree): Likewise. + (ggc_add_root): Remove. + (ggc_add_rtx_root): Likewise. + (ggc_remove_tree_root): Likewise. + (ggc_add_string_root): Likewise. + (ggc_add_tree_varray_root): Likewise. + (ggc_add_tree_hash_table_root): Likewise. + (ggc_del_root): Likewise. + (ggc_mark_rtx_ptr): Likewise. + (ggc_mark_tree_ptr): Likewise. + (ggc_mark_string_ptr): Likewise. + (ggc_mark_tree_varray_ptr): Likewise. + (ggc_mark_tree_hash_table_ptr): Likewise. + * ggc-common.c: New file. + * Makefile.in (OBJS): Add ggc-common.o. + (ggc-common.o): List dependencies. + +1999-09-10 22:37 -0700 Zack Weinberg + + * cppalloc.c (xstrdup): Use memcpy. + * cpperror.c (cpp_print_containing_files): Don't use + cpp_notice. + * cpplib.c (conditional_skip): Set temp->lineno. + (do_endif): Make error message less obscure. + (if_directive_name): New function. + (cpp_get_token [case EOF]): Unwind the if stack and generate + error messages for each unterminated conditional in this file. + (parse_string): Do not behave differently if -traditional. + +Fri Sep 10 14:04:07 1999 Richard Henderson + + * builtins.c (expand_builtin_va_arg): Cope with an array-type + va_list decomposing to pointer-type. + * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields. + (rs6000_va_arg): Likewise. + +Fri Sep 10 13:21:21 1999 Jim Wilson + + * except.c (start_dynamic_handler): Compute size using + STACK_SAVEAREA_MODE. + +Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi + + * protoize.c: Remove various __STDC__ and POSIX hacks. Don't + include directory headers. Don't define strrchr. Don't provide + my_* replacement functions. Prefer PTR over `pointer_type'. + Don't prototype system functions. Don't redefine getopt. + + (shortpath, fancy_abort, notice, savestring, dupnstr, substr, + safe_read, safe_write, save_pointers, restore_pointers, + is_id_char, in_system_include_dir, directory_specified_p, + file_excluded_p, unexpand_if_needed, abspath, check_aux_info, + find_corresponding_lparen, referenced_file_is_newer, + save_def_or_dec, munge_compile_params, gen_aux_info_file, + process_aux_info_file, identify_lineno, check_source, + seek_to_line, forward_to_next_token_char, output_bytes, + output_string, output_up_to, other_variable_style_function, + find_rightmost_formals_list, do_cleaning, careful_find_l_paren, + do_processing, is_syscalls_file, rename_c_file, find_extern_def, + find_static_definition, connect_defs_and_decs, add_local_decl, + add_global_decls, needs_to_be_converted, visit_each_hash_node, + add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list, + edit_fn_declaration, edit_formals_lists, edit_fn_definition, + scan_for_missed_items, edit_file, string_list_cons): Add static + prototypes. + (standard_exec_prefix, target_machine, target_version, + default_syscalls_dir, string_list, string_list_cons, find_file, + do_cleaning): Constify a char*. + (safe_read, safe_write): Use PTR, not a char*. + (is_id_char): Take an int, not a char. + (main): Add prototype. Call return, not exit. + +Fri Sep 10 16:48:26 1999 Andrew Haley + + * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields + when comparing types. + +Fri Sep 10 08:43:32 1999 Richard Henderson + + * loop.c (basic_induction_var): Typo NULL_RTX -> NULL. + (strength_reduce): Release the varrays from the no-bivs early exit. + + * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before + the loop over the registers. + + * tree.c (save_tree_status): Set maybepermanent_firstobj NULL + for a new obstack. + (restore_tree_status): Check that instead when freeing the obstack. + +Wed Sep 8 16:12:04 1999 Andrew Haley + + * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used + as pointers. + +Fri Sep 10 11:58:55 1999 Bernd Schmidt + + * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some + operand size modifiers. + +Fri Sep 10 10:32:32 1999 Bernd Schmidt + + * c-common.c (c_common_nodes_and_builtins): Don't build + va_list_type_node. + * c-common.h (enum c_tree_index and related accesor macros): Remove + everything now declared in tree.h. + * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, + LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults. + (error_mark_node, void_type_node, char_type_node, integer_type_node, + unsigned_type_node, ptr_type_node, va_list_type_node, + integer_zero_node, null_pointer_node, integer_one_node): Delete. + (init_decl_processing): Call build_common_tree_nodes and + build_common_tree_nodes_2 instead of building their nodes here. + Don't add roots for these nodes. + * stor-layout.c (size_zero_node, size_one_node): Delete. + (set_sizetype): Make a new node for bitsizetype each time. + * tree.c (global_trees): New variable. + (init_obstacks): Add a gc root for it. + (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, + LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults. + (build_common_tree_nodes): New function. + (fix_sizetype): New function. + (build_common_tree_nodes_2): New function. + * tree.h (enum tree_index): New. + (global_trees): Declare. + Add accessor macros for all nodes now moved to global_trees. + Delete their declarations. + +Thu Sep 9 20:15:46 1999 Richard Henderson + + * c-decl.c (finish_function): When processing a nested function, + push and pop GC context around rest_of_compilation. + +Thu Sep 9 16:42:06 1999 Richard Henderson + + * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases. + Default ix86_arch to PROCESSOR_I386. + * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo. + (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete. + (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__. + (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide + __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__. + (EXTRA_SPECS): Remove deleted specs. + +Thu Sep 9 16:03:06 1999 Richard Henderson + + * function.c (assign_stack_local_1): Allocate from + function->x_frame_offset, not frame_offset. + +Thu Sep 9 14:36:31 1999 Mark Mitchell + + * ggc.h (lang_cleanup_tree): Remove. + * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree. + * ggc-callbacks.c (lang_cleanup_tree): Remove. + + * c-decl.c (finish_struct): Use ggc_alloc to allocate + TYPE_LANG_SPECIFIC when garbage collecting. + (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. + (lang_cleanup_tree): Remove. + +Thu Sep 9 14:23:02 1999 Jason Merrill + + * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here. + * crtstuff.c: Not here. + * dwarf2out.c: Or here. + * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame + info. + +Thu Sep 9 09:40:58 1999 Mark Mitchell + + * function.h (free_after_compilation): Remove decl parameter. + (free_varasm_status0: Likewise. + (free_emit_status): Likewise. + (free_stmt_status): Likewise. + (free_after_compilation): Likewise. + (init_lang_status): New variable. + (free_lang_status): Likewise. + * emit-rtl.c (free_emit_status): Make decl parameter implicit. + * function.c (init_lang_status): New variable. + (free_lang_status): Likewise. + (push_function_context_to): Don't set function::decl here. + (free_after_copmilation): Make decl parameter implicit. Call + free_lang_status if defined. + (prepare_function_start): Call init_lang_status if defined. + (init_function_start): Set function::decl here. + * profile.c (output_func_start_profiler): Don't call pushdecl + until we've actually started the function. + * stmt.c (free_stmt_status): Make decl parameter implicit. + * toplev.c (rest_of_compilation): Don't pass decl to + free_after_compilation. + * varasm.c (free_varasm_status): Likewise. + +Thu Sep 9 17:23:19 1999 Bernd Schmidt + + * except.c (call_get_eh_context): Add root when allocating static + tree variable. + +Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw + + * arm.c: Include "ggc.h". + (arm_add_gc_roots): New function. + (arm_override_options): Call it. + (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated. + + * arm.md (define_asm_attributes): Add a pool_range attribute. + +Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell + + * extend.texi (Volatiles): New node. + +Thu Sep 9 03:37:31 1999 Richard Henderson + + * ggc-simple.c (IS_MARKED, IGNORE_MARK): New. + (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New. + (struct ggc_any): Replace `mark' with `magic_mark'. + (ggc_alloc_string): Use memcpy, not bcopy. + (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc. + (ggc_free_{rtx,rtvec,tree,string}): Mark inline. + (ggc_free_any): New. + (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string. + (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match. + (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK. + Use IS_MARKED. Use ggc_free_any. + +1999-09-09 Scott Bambrough + + * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C + +Thu Sep 9 01:55:21 1999 Richard Henderson + + * toplev.c (main): Always init_ggc. + +Wed Sep 8 23:53:22 1999 Richard Henderson + + * except.c (find_all_handler_type_matches): Free the list if + we found no matches. + + * combine.c (SUBST): Break out to a real function do_SUBST. + (SUBST_INT): Likewise. + * gcse.c (free_pre_mem): Free `temp_bitmap'. + (pre_insert): Free `inserted'. + * loop.c (basic_induction_var): Always set `location'. + + * function.c (expand_function_end): Add initial_trampoline as a root. + * rtl.h (init_varasm_once): Declare. + * toplev.c (compile_file): Call it. + * ggc-simple.c (ggc_mark_string_ptr): New. + (ggc_add_string_root): New. + (ggc_collect): Disable collection avoidance temporarily. + * ggc.h (ggc_add_string_root): Declare. + * except.c (create_rethrow_ref): Use ggc_alloc_string. + * optabs.c (init_libfuncs): Likewise. + * varasm.c (named_section): Use ggc_alloc_string. + (make_function_rtl): Likewise. + (make_decl_rtl): Likewise. + (assemble_static_space): Likewise. + (assemble_trampoline_template): Likewise. + (output_constant_def): Likewise. + (force_const_mem): Likewise. + (mark_const_hash_entry): New. + (mark_pool_sym_hash_table): New. + (mark_varasm_state): Use it. + (init_varasm_once): New. + + * expr.h (init_one_libfunc): Declare. + * optabs.c (init_one_libfunc): New. + (init_optabs): Use it. + * config/gofast.h: Likewise. + * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise. + * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise. + +Thu Sep 9 13:46:06 1999 Geoffrey Keating + + * Makefile.in (cppexp.o): Depend on cpphash.h. + * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx. + Include cpphash.h. + * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx. + * cpplib.c (do_define): Generalise to handle poisoned definitions, + redefining poisoned identifiers, etc. + (do_undef): Don't allow poisoned identifiers to be undefined. + (do_pragma): Add #pragma poison. + (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. + + * cccp.c: Add T_POISON node type. + (special_symbol): Handle `defined(xxx)' and plain `xxx' for + poisoned xxx. + (do_define): Generalise to handle poisoned definitions, + redefining poisoned identifiers, etc. + (do_undef): Don't allow poisoned identifiers to be undefined. + (do_pragma): Add #pragma poison. + (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. + + * c-pragma.c (handle_pragma_token): Ignore #pragma poison. + * c-pragma.h: Add ps_poison state. We now always have generic + pragmas. + +Wed Sep 8 20:30:42 1999 Mark Mitchell + + * ggc.h (ggc_alloc): New function. + (ggc_mark): Likewise. + * ggc-simple.c (ggc_any): New structure. + (ggc_status): Add anys. + (n_anys_collected): New variable. + (ggc_alloc): Define. + (ggc_mark): Likewise. + (ggc_collect): Collect the anys. + +Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi + + * c-decl.c (mark_binding_level): Make static to match prototype. + +Wed Sep 8 16:41:27 1999 Richard Henderson + + * flow.c (new_insn_dead_notes): Don't early out for preexisting regs. + +Wed Sep 8 16:07:52 1999 Richard Henderson + + * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC + will use into account. Expand the max width to 5. + * rtl.c: Likewise. + +Wed Sep 8 16:01:14 1999 Richard Henderson + + * ggc-simple.c (ggc_free_rtx): Poison the correct amount + for the rtx length. + +Wed Sep 8 15:23:54 1999 Richard Henderson + + * alpha.md (call value patterns): Remove the result predicates. + +Wed Sep 8 13:35:38 1999 Richard Henderson + + * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from + last change. + +Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi + + * system.h (sbrk, malloc, calloc, realloc): Backup prototypes + changed from extern char *, to extern PTR. Also fix typo in + NEED_DECLARATION_REALLOC test. + + * mips-tdump.c (malloc, calloc, realloc): Don't prototype. + +Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi + + * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL, + ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF, + ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3, + ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete. + + * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR. + + * cccp.c (pcfinclude): Likewise. + + * global.c (allocno_compare): Likewise. + + * haifa-sched.c (rank_for_schedule): Likewise. + + * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise. + + * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise. + + * stupid.c (stupid_reg_compare): Likewise. + + * tree.c (_obstack_allocated_p): Likewise. + + * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise. + +1999-09-08 Bruce Korb autogen@linuxbox.com + + * Makefile.in: Give the hapless gperf user a hint about + why "gperf -F" fails. + +Wed Sep 8 04:43:22 1999 Richard Henderson + + * lists.c: Include ggc.h. + (zap_lists): New. + (init_EXPR_INSN_LIST_cache): Install it. + + * ggc-simple.c (init_ggc): Absorb the old init. + (ggc_push_context): Use xcalloc. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise. + (ggc_collect): Add [rvts] tags to the collection stats. + +Wed Sep 8 11:14:25 1999 Andreas Schwab + + * cccp.c (main): Fix handling of -include and -imacros options. + +Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com) + + * cpplib.c (cpp_push_buffer): Fix order of arguments. + +Wed Sep 8 04:44:09 1999 Alexandre Oliva + + * rtl.h (obstack_alloc_rtx): Removed, it's now static in + genrtl.c. + +Wed Sep 8 00:33:43 1999 Alasdair Baird + + * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG. + * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG + and SET_DEST. Update comment. + +Wed Sep 8 18:55:17 1999 Michael Hayes + + * config/c4x/c4x.c: Include ggc.h. + (c4x_add_gc_roots): New function. + (c4x_override_options): Call c4x_add_gc_roots. + +Wed Sep 8 00:00:16 1999 Richard Henderson + + * defaults.h (TARGET_ESC): Move ... + * system.h: ... here, where Linas had it in the first place. Silly me. + +Tue Sep 7 23:46:35 1999 Linas Vepstas + + * c-common.c: Use ISGRAPH, ISLOWER, toupper. + * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c, + genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise. + * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC. + * defaults.h (TARGET_ESC): Add default. + +Tue Sep 7 23:36:59 1999 Linas Vepstas + + * configure.in: add i370-*-openedition, i370-*-mvs and + i370-*-linux targets + +Tue Sep 7 23:31:53 1999 Mark Mitchell + + * dsp16xxx.c: Include ggc.h + (override_options): Mark GC roots. + * mn10200.c: Include ggc.h. + (asm_file_start): Mark GC roots. + * tahoe.c: Include ggc.h. + (extensible_operand): Mark GC roots. + +Tue Sep 7 23:23:15 1999 Linas Vepstas + + * README: Add section discussing status of ELF ABI. + * i370.c: Fix misc spelling mistakes. + (i370_label_scan): Updated notes, exception handling. + (i370_function_prolog): Simplify ELF stack handling. + * i370.h: (FIXED_REGISTERS): Free up r12 for ELF. + (STACK_GROWS_DOWNWARD): ELF stack grows down. + (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size. + * i370.md: (movdi): Add notes. + (floatsidf2): Use stack not rtca for scratch float area. + (iorsi3): Correct operand constraints. + * x-oe: Restore TAROUTOPTS which are used by pax. + +Tue Sep 7 22:39:18 1999 Mark Mitchell + + * rs6000.c: Include ggc.h. + (rs6000_add_gc_roots): New function. + (override_options): Call it. + +Tue Sep 7 22:09:03 1999 Richard Henderson + + * alpha.h (alpha_compare): New. + (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove. + * alpha.c: Likewise for the definitions. + (alpha_emit_conditional_branch): Update for alpha_compare. + (alpha_emit_conditional_move): Likewise. + * alpha.md (cmpdf, cmpdi): Likewise. + (setcc patterns): Likewise. Zero alpha_compare after use. + (sne): Optimize (x != 0) into (0U < x). + +Tue Sep 7 21:55:02 1999 Richard Henderson + + * alpha.h (alpha_eh_epilogue_sp_ofs): Remove. + (struct machine_function): Declare; add eh_epilogue_sp_ofs. + (INIT_EXPANDERS): Remove. + * alpha.c: Include ggc.h. + (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove. + (alpha_init_machine_status, alpha_mark_machine_status): New. + (override_options): Install them. + (struct machine_function): Moved to alpha.h. + (alpha_save_machine_status, alpha_restore_machine_status): Remove. + (alpha_init_expanders): Remove. + (alpha_return_addr): Adjust to use current_function->machine. + (alpha_ra_ever_killed): Likewise. + (alpha_expand_epilogue): Likewise. + * alpha.md (eh_epilogue): Likewise. + +Wed Sep 8 14:34:42 1999 Ian Piumarta + Melissa O'Neill + Geoffrey Keating + + * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or + call-used registers (call-saved registers must still be contiguous + and end with r31, of course). + +Tue Sep 7 21:41:38 1999 Richard Henderson + + * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to. + (self_promoting_type_p): Delete. + (self_promoting_args_p): Move ... + * c-common.c: ... here. + (c_common_nodes_and_builtins): Initialize lang_type_promotes_to. + (simple_type_promotes_to): New. + * builtins.c (lang_type_promotes_to): New. + (expand_builtin_va_arg): Use it to give diagnostic for illegal types. + * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ... + * c-common.h: ... here. + (self_promoting_args_p, simple_type_promotes_to): Declare. + * c-decl.c (duplicate_decls): Use simple_type_promotes_to. + (grokdeclarator): Likewise. + * tree.h (lang_type_promotes_to): Declare. + +Tue Sep 7 17:15:21 1999 Mark Mitchell + + Add some machine-dependent GC roots. + * sparc.c: Include ggc.h. + (sparc_add_gc_roots): New function. + (mark_ultrasparc_pipeline_state): Likewise. + (override_options): Call sparc_add_gc_roots. + * pa.c: Include ggc.h. + (pa_add_gc_roots): New function. + (mark_deferred_plabels): Likewise. + (override_options): Call pa_add_gc_roots. + * mips.c: Include ggc.h. + (mips_add_gc_roots): New function. + (override_options): Use it. + +Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi + + * cpperror.c (cpp_file_line_for_message): Constify a char*. + + * cppexp.c (parse_number, parse_charconst, cpp_lex, + cpp_parse_expr): Add static prototypes. + (parse_charconst): Don't cast away const-ness. + (token): Constify a char*. + + * cppfiles.c (file_name_list, include_hash, find_include_file, + finclude, initialize_input_buffer): Constify a char*. + (file_cleanup, find_position): Add static prototypes. + + * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol, + collect_expansion): Add static prototypes. + (cpp_install, create_definition, monthnames): Constify a char*. + + * cpphash.h (cpp_install): Likewise. + + * cppinit.c (known_suffixes, default_include, + dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise. + (base_name, dump_special_to_buffer, initialize_dependency_output): + Add static prototypes. + + * cpplib.c (my_strerror): Constify a char*. + (null_underflow, null_cleanup, skip_comment, copy_comment, + copy_rest_of_line, handle_directive, pass_thru_directive, + get_directive_token, read_line_number, cpp_print_file_and_line, + v_cpp_error, v_cpp_warning, v_cpp_error_with_line, + v_cpp_warning_with_line, detect_if_not_defined, + consider_directive_while_skipping): Add static prototypes. + (pass_thru_directive, check_macro_name, cpp_expand_to_buffer, + cpp_pedwarn_with_file_and_line): Constify a char*. + + * cpplib.h (cpp_options, include_hash, progname, definition, + cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer, + check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message, + find_include_file, deps_output, include_hash): Constify a char*. + + * cppmain.c (progname): Constify. + (main): Add prototype. Use return, not exit. + + * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac, + recognized_macro, check_macro_names, read_scan_file, write_rbrac, + inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident, + check_protection): Add static prototype. + (xfree): Remove. + (progname, recognized_macrom, recognized_extern): Constify a char*. + (main): Add prototype. + + * gen-protos.c (progname): Constify a char*. + +Tue Sep 7 00:47:52 1999 Mark Mitchell + + * emit-rtl.c (free_emit_status): Take decl as a parameter. + (init_emit_once): Add more GC roots. + * except.c (mark_func_eh_entry): New function. + (mark_eh_node): Mark false_label and rethrow_label. + (init_eh): Add more GC roots. + * function.c (free_after_compilation): Take decl as a paramter. + Call free_stmt_status. + (mark_function_state): Don't assume x_parm_reg_stack_loc is + non-NULL. + * function.h (free_after_compilation): Change prototype. + (free_varasm_status): Likewise. + (free_emit_status): Likewise. + (free_stmt_status): New function. + * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc): + Remove, replacing with ... + (ggc_status): New structure. + (ggc_chain): New variable. + (init_gcc): Define. + (ggc_push_context): New function. + (ggc_pop_context): Likewise. + (ggc_alloc_rtx): Adjust for use of ggc_chain. + (ggc_alloc_rtvec): Likewise. + (ggc_alloc_tree): Likewise. + (ggc_alloc_string): Likewise. + (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO. + (ggc_mark_tree): Give language-dependent code a chance to mark + `x' nodes. + (ggc_mark_tree_varray): Handle empty arrays. + (ggc_collect): Adjust for use of ggc_chain. Clear + bytes_alloced_since_last_gc. + * ggc.h (ggc_pop_context): New function. + (ggc_push_context): Likewise. + * print-tree.c (print_node): Don't print obstacks when GC'ing. + * stmt.c (free_stmt_status): New function. + (init_stmt_for_function): Clear last_expr_value. + * toplev.c (rest_of_compilation): Always call free_after_compilation. + Conditionalize call to ggc_collect. + (main): Call init_ggc. + * tree.c (push_obstacks): Do the push, even when GC'ing. + (push_obstacks_nochange): Likewise. + (pop_obstacks): Liekwise. + * varasm.c (free_varasm_status): Take decl as a parameter. + +Tue Sep 7 08:15:49 1999 Gavin Romig-Koch + + * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro. + (MULTILIB_ENDIAN_DEFAULT) : Use the new macro. + * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro. + * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro. + +Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com) + + * pa/x-pa-mpeix: New file for the MPE port. + + * pa/quadlib.asm: New file for long double support. + + * configure.in: Add hppa1.0-*-mpeix for MPE port. + * configure: Rebuilt. + +Tue Sep 7 10:08:40 1999 Andreas Schwab + + * final.c (shorten_branches): Fix last change. + +Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete. + +Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com) + + * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for + details. + +Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi + + * c-aux-info.c (concat): Don't define. + + * cccp.c (my_strerror): Likewise. All callers changed to use + xstrerror instead. + (do_include): Call xstrdup, not xmalloc/strcpy. + (grow_outbuf): Don't check if xrealloc returns NULL, it can't. + (xmalloc, xrealloc, xcalloc, xstrdup): Don't define. + + * collect2.c (my_strsignal): Likewise. All callers changed to use + strsignal instead. + (locatelib): Call xstrdup, not xmalloc/strcpy. + + * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc. + + * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy. + + * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc. + + * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy. + + * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero. + + * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/... + + * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not + malloc/realloc. + (find_all_handler_type_matches): Likewise. Don't check return + value. + (get_new_handler, init_insn_eh_region, process_nestinfo): Call + xmalloc, not malloc. + (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero. + + * gcc.c (xstrerror, xmalloc, xrealloc): Don't define. + (init_spec): Call xcalloc, not xmalloc/bzero. + (set_spec): Call xstrdup, not save_string. + (record_temp_file): Call xstrdup, not xmalloc/strcpy. + (find_a_file): Call xstrdup, not xmalloc/strcpy. + (process_command): Call xstrdup, not save_string. + (main): Call xcalloc, not xmalloc/bzero. + + * gcov.c (xmalloc): Don't define. + (create_program_flow_graph): Call xcalloc, not xmalloc/bzero. + (scan_for_source_files): Call xstrdup, not xmalloc/strcpy. + (output_data): Call xcalloc, not xmalloc/bzero. + + * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero. + + * mips-tdump.c (xmalloc): Don't define. + (print_symbol): Call xmalloc, not malloc. + (read_tfile): Call xcalloc, not calloc. + + * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc): + Don't define. All callers of xfree/my_strsignal changed to use + free/strsignal instead. + (allocate_cluster): Call xcalloc, not calloc. + + * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/... + Fix memory leak, free allocated memory. + + * prefix.c (translate_name): Call xstrdup, not save_string. + (update_path): Likewise. + + * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy. + + * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2): + Don't define. Callers of xfree/savestring2 changed to use + free/concat instead. + + * reload1.c (reload): Call xcalloc, not xmalloc/bzero. + (init_elim_table): Likewise. + + * resource.c (init_resource_info): Likewise. + + * stupid.c (stupid_life_analysis): Likewise. + + * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define. + (open_dump_file): Call concat, not xmalloc/strcpy/... + (clean_dump_file): Likewise. + (compile_file): Call xstrdup, not xmalloc/strcpy. + +Mon Sep 6 15:04:55 1999 Richard Henderson + + * v850.h (EXPAND_BUILTIN_VA_ARG): New. + * v850.c (v850_va_arg): New. + +Tue Sep 7 09:36:01 1999 Michael Hayes + + * haifa-sched.c: Tidy comments. + +Mon Sep 6 14:30:13 1999 Bernd Schmidt + + * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o. + (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o, + $(out_object_file)): Depend on ggc.h. + * c-common.c: Include "ggc.h". + (combine_strings): If doing GC, use ggc_alloc_string. + * c-decl.c: Include "ggc.h". + (ggc_p): Define with value 0. + (mark_binding_level): New function. + (init_decl_processing): Add GC roots. + (mark_c_function_context): New function. + (lang_mark_false_label_stack): New function. + (lang_mark_tree): New function. + (lang_cleanup_tree): New function. + * c-lang.c: Include "ggc.h". + (lang_init): Call c_parse_init. + * c-lex.c: Include "ggc.h". + (check_linenum): If doing GC, don't copy filenames to permanent + obstack. + * c-parse.in: Include "ggc.h". + (c_parse_init): New function. + * c-tree.h (c_parse_init, mark_c_function_context): Declare. + * objc/Make-lang.in (objc-parse.o): Depend on ggc.h. + + * except.c (mark_eh_state): Mark more state. + * function.c (mark_function_state): Likewise. + * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version. + (ggc_alloc_string) [GGC_DUMP]: Fix typo. + * toplev.c (mark_file_stack): New function. + (compile_file): If doing GC, use ggc_alloc_string on input filename. + (main): Add root for input_file_stack. + + * i386.c: Include "ggc.h". + (ix86_mark_machine_status): New function. + (override_options): Set mark_machine_status. + +Mon Sep 6 15:26:23 1999 Bernd Schmidt + + * tree.c (copy_node): Copy node contents also if doing GC. + +Mon Sep 6 08:42:06 1999 Alexandre Oliva + + * collect2.c (scan_libraries): Fix double-thinko :-). + +Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com) + + * collect2.c (scan_libraries): Fix thinko. + + * cse.c (delete_trivially_dead_insns): Do not skip the last + insn if it is a real insn. + +Sun Sep 5 18:57:42 1999 Mark Mitchell + + * Makefile.in (ggc-simple.o): Depend on hash.h. + * ggc.h (ggc_add_tree_hash_table_root): Declare. + (ggc_mark_tree_varray): Likewise. + (ggc_mark_tree_hash_table): Likewise. + * ggc-simple.c: Include hash.h. + (ggc_mark_tree_hash_table_ptr): New function. + (ggc_mark_tree_hash_table_entry): Likewise. + (ggc_mark_tree_hash_table): Likewise. + (ggc_add_tree_hash_table_root): Likewise. + * varray.h (const_equiv_data): Use struct rtx_def *, rather than + rtx, when defining fields. + +Sun Sep 5 18:57:42 1999 Bernd Schmidt + + * profile.c (output_func_start_profiler): Remove apparently + nonsensical call to start_sequence. + +Sun Sep 5 17:34:33 1999 Richard Henderson + + * clipper/clipper.c (clipper_va_start): Fix typos. + + * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs. + * spur/spur.c (spur_build_va_list, spur_va_start): New stubs. + (spur_va_arg): New stub. + + * configure.in: Comment out pyramid. + +Sun Sep 5 19:11:01 1999 Michael Meissner + + * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these + don't conflict with the bits that win32, cygwin, and dgux + defines. + +Sun Sep 5 09:31:56 1999 Richard Henderson + Bernd Schmidt + + * integrate.c (function_cannot_inline_p): Do not inline + functions with forced labels. + +Sun Sep 5 00:35:17 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (ggc-simple.o): Depend on varray.h. + (rtl.o): Depend on ggc.h. + (genattrtab.o): Depend on ggc.h. + (print-tree.o): Likewise. + (fold-const.o): Likewise. + * emit-rtl.c (sequence_element_free_list): Remove, and all references. + (make_insn_raw): Don't cache insns when GC'ing. + (emit_insn_before): Likewise. + (emit_insn_after): Likewise. + (emit_insn): Likewise. + (start_sequence): Use xmalloc to allocate the sequence_stack. + (end_sequence): Add free to free it. + (gen_sequence): Don't cache insns when GC'ing. + (clear_emit_caches): Don't use sequence_element_free_list. + (init_emit): Use xcalloc, not xmalloc+bzero. + * fold-const.c (size_int_wide): Kill the cache, when GC'ing. + * function.c (pop_function_context_from): Use free to free the + fixup_var_refs_queue. + (put_reg_into_stack): Allocate it with xmalloc. + * genattrtab.c: Include ggc.h. + (operate_exp): Don't use obstack_free when GC'ing. + (simplify_cond): Likewise. + (simplify_text_exp): Likewise. + (optimize_attrs): Likewise. + * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when + GC'ing. + (gencode): Generate a #include for ggc.h. + * ggc-callbacks.c (ggc_p): Define it to zero. + * ggc-none.c (ggc_p): Likewise. + * ggc-simple.c: Include varray.h. + (ggc_mark_tree_varray): New function. + (ggc_add_tree_varray_root): Likewise. + (ggc_mark_tree_varray_ptr): Likewise. + * ggc.h (ggc_p): Declare. + (varray_head_tag): Likewise. + (ggc_add_tree_varray_root): Declare. + * print-tree.c (print_node): Don't check for TREE_PERMANENT + inconsistencies when GC'ing. + * rtl.c: Include ggc.h. + (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing. + (rtx_alloc): Use ggc_alloc_rtx when GC'ing. + (rtx_free): Don't call obstack_free when GC'ing. + * toplev.c (rest_of_compilation): Call ggc_collect after every + pass, if GC'ing. + * tree.c (push_obstacks): Do nothing, if GC'ing. + (pop_obstacks_nochange): Likewise. + (pop_obstacks): Likewise. + (make_node): Use ggc_alloc_tree when GC'ing. + (copy_node): Likewise. + (get_identifier): Use ggc_alloc_string when GC'ing. + (build_string): Likewise. + (make_tree_vec): Use ggc_alloc_tree when GC'ing. + (tree_cons): Likewise. + (build1): Likewise. + (type_hash_canon): Don't call obstack_free when GC'ing. + +Sat Sep 4 21:52:32 1999 Richard Henderson + + * haifa-sched.c (schedule_block): Use next_nonnote_insn instead + of NEXT_INSN when examining speculative insns for SCHED_GROUP_P. + +Sat Sep 4 20:40:19 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (stor-layout.o): Depend on ggc.h. + (expr.o): Depend on ggc.h. + (profile.o): Depend on ggc.h. + (stor-layout.o): Depend on ggc.h. + * emit-rtl.c (init_emit_once): Add gc roots. + * expr.c: Include ggc.h. + (emit_block_move): Add gc roots. + (clear_storage): Likewise. + * expr.h (init_stor_layout_once): New function. + * profile.c: Include ggc.h. + (init_arc_profiler): profiler_label is a root. + * scan.c (make_sstring_space): Trust xrealloc to function + correctly with first parameter NULL. + * stor-layout.c: Include ggc.h. + (set_sizetype): Add gc root. + (init_stor_layout_once): New function. + * toplev.c (compile_file): Call it. + +Sat Sep 4 19:26:25 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (tree.o): Depend on ggc.h. + (varasm.o): Likewise. + (function.o): Likewise. + (stmt.o): Likewise. + (except.o): Likewise. + (optabs.o): Likewise. + (emit-rtl.o): Likewise. + * emit-rtl.c: Include ggc.h. + (sequence_element_free_list): Remove, and all references. + (mark_sequence): New functions. + (mark_emit_state): New function. + * except.c: Include ggc.h. + (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions. + (mark_tree_label_node): New functions. + (mark_eh_state): New function. + * function.c: Include ggc.h. + (mark_temp_slot, mark_function_chain): New functions. + (mark_function_state): New function. + (init_function_once): New function. + * function.h (init_function_once): New function. + * ggc-callbacks.c (lang_mark_false_label_stack): New function. + * ggc.h (label_node): Declare. + (eh_status, emit_status, stmt_status, varasm_status): Likewise. + (lang_mark_false_label_stack): New function. + (mark_temp_slot): Remove declaration. + (mark_function_chain): Likewise. + (mark_eh_state): Adjust prototype. + (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab): + Likewise. + * optabs.c: Include ggc.h. + (mark_optab): New function. + (init_optabs): Add gc roots. + * stmt.c: Include ggc.h. + (mark_cond_nesting, mark_loop_nesting): New functions. + (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise. + (mark_stmt_state): New function. + * toplev.c (compile_file): Call init_function_once. + * tree.c: Include ggc.h. + (type_hash): Move declaration earlier in file. + (TYPE_HASH_SIZE, type_hash_table): Likewise. + (init_obstacks): Add gc roots. + (mark_type_hash): New function. + * varasm.c: Include ggc.h. + (mark_pool_constant): New function. + (mark_varasm_state): New function. + +Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi + + * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO. + +Sat Sep 4 18:01:45 1999 Bernd Schmidt + + * c-decl.c (struct language_function): Renamed from struct c_function. + Delete elt NEXT. + (c_function_chain): Delete. + (push_c_function_context): New arg F. Don't warn about nested + functions here. Fill LANGUAGE elt of F. Delete code to update + c_function_chain. Don't call push_function_context. + (pop_c_function_context): New arg F. Restore from there instead of + from c_function_chain. Don't call pop_function_context. Clear out + LANGUAGE field of F when done. + * c-lang.c: Include "function.h" + (lang_init): Initialize save_lang_status and restore_lang_status. + * c-parse.in (nested_function, nested_function_notype): Warn about + nested functions. Call push_function_context/pop_function_context + instead of the _c_ variants. + * c-tree.h (push_c_function_context, pop_c_function_context): Update + prototype. + * Makefile.in (c-lang.o): Update dependencies. + + * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx, + regno_pointer_flag, regno_pointer_align. + (gen_reg_rtx): Use xrealloc to enlarge them. + (free_emit_status): New function. + * function.c (mark_machine_status, mark_lang_status): New variables. + (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge + in some bits from assign_stack_local. All callers changed to use new + name. + (assign_stack_local): Just call assign_stack_local_1. + (free_after_compilation): New function. + (put_reg_into_stack): Simplify to always call assign_stack_local_1. + (trampoline_address): Likewise. + (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc. + (prepare_function_start): Explicitly clear some more variables. + * function.h (struct function): New elt can_garbage_collect. + (mark_machine_status, mark_lang_status): Declare variables. + (free_after_compilation, free_emit_status, free_varasm_status, + init_varasm_status): Declare functions. + * toplev.c (rest_of_compilation): Call free_after_compilation when + done with the current function. + * varasm.c (free_varasm_status): New function. + +Sat Sep 4 17:15:13 1999 Richard Henderson + + * sparc.h (EXPAND_BUILTIN_VA_START): Define. + (EXPAND_BUILTIN_VA_ARG): Define. + * sparc.c (sparc_va_start): New. + (sparc_va_arg): New. + +Sun Sep 5 11:11:59 1999 Michael Hayes + + * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs. + +Sun Sep 5 10:13:19 1999 Michael Hayes + + * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable. + +Sat Sep 4 13:44:01 1999 Mark Mitchell + + * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o. + (OBJS): Add $(GGC). + (ggc-callbacks.o): New target. + * ggc-callbacks.c: New file. + +Sat Sep 4 22:53:13 1999 Bernd Schmidt + + * expr.h: Collapse individual optab and libfunc vars to arrays. + (optab_index, libfunc_index): New enumerations. + (optab_table, libfunc_table): New arrays. + Add accessor macros for both. + + * optabs.c (optab_table, libfunc_table): New. + Delete declarations for individual optab and libfunc vars. + +Sat Sep 4 12:57:17 1999 Richard Henderson + + * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args. + +Sat Sep 4 11:19:52 1999 Richard Henderson + + * Makefile.in (GGC, GGC_LIB): New. + (HOST_RTL): Include ggc-none.o. + (ggc-simple.o): New target. + (ggc-none.o): Likewise. + * tree.h (tree_common): Add gc_mark. + * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark. + (struct rtvec_def): Add gc_mark. + * emit-rtl.c (global_rtl): Update static initializers to contain + enough initializers. + * ggc.h, ggc-none.c, ggc-simple.c: New files. + * toplev.c (gc_time): New variable. + (all_time): New variable. + (compile_file): Print gc time. + (print_time): Calculate percentage of the whole. + +Sat Sep 4 13:11:01 1999 Bernd Schmidt + + Change obstack memory management and varasm constant pool handling so + that nested functions are treated like any other functions. + * function.c (init_machine_status): New variable. + (push_function_context_to): Set contains_functions for the outer + function. Don't call save_varasm_status. + (pop_function_context_from): Don't call restore_varasm_status. Don't + set current_function_contains_functions. + (prepare_function_start): Call init_varasm_status rather than + init_const_rtx_hash_table. Call (*init_machine_status) if the pointer + is non-null. + * function.h (struct function) Add field varasm. Delete fields + inline_obstacks, inl_emit, const_rtx_hash_table, first_pool, + last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain. + (init_machine_status): Declare. + (save_varasm_status, restore_varasm_status): Delete declarations. + (save_tree_status, restore_tree_status): Delete last argument. + * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying + code. All callers changed. + (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline, + save_constants_in_decl_trees, restore_constants, save_constants, + save_for_inline_eh_labelmap, save_for_inline_copying): Delete + functions. + (inlining): New variable. + (reg_map, label_map, insn_map, orig_asm_operands_vector, + copy_asm_operands_vector, copy_asm_constraints_vector): Delete + variables. + (save_for_inline_nocopy): Don't save constants. + Don't set inl_emit field in current_function. + (expand_inline_function): Use emit field, not inl_emit, of the inlined + function. Set new variable inlining before + calling copy_rtx_and_substitute. + (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle + constant pool references if inlining is nonzero. + Delete ADDRESS and (most of the) CONST cases. + (output_inline_function): Save and restore current_function/ + current_function_decl. Delete restore_constants code. Don't call + init_const_rtx_hash_table. + * output.h (init_const_rtx_hash_table): Don't declare. + * rtl.h (struct function): Declare. + (get_pool_constant_for_function, get_pool_mode_for_function): Declare. + * toplev.c (rest_of_compilation): Don't treat nested functions or + functions containing them specially. Delete all code to deal with + save_for_inline_copying. + * tree.c (toplev_inline_obstacks, extra_inline_obstacks, + inline_obstacks): Delete variables. + (save_tree_status): Lose arg CONTEXT. All callers changed. + Simply allocate a new function_maybepermanent_obstack for the new + function, delete all the special cases. + Don't save inline_obstacks. + (restore_tree_status): Lose arg CONTEXT. All callers changed. + Delete special handling for function_maybepermanent_obstack; simply + free it if empty. + Don't restore inline_obstacks. + (permanent_allocation): Delete code that frees inline_obstacks. + (print_inline_obstack_statistics): Delete function. + (dump_tree_statistics): Don't call it. + * varasm.c (struct varasm_status): New. + (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool, + last_pool, pool_offset, const_double_chain): Delete global + variables, replace with accessor macros. + (immed_double_const): Don't walk const_double_chain outside a + function, but don't treat nested functions specially anymore. + (immed_real_const_1): Likewise. + (clear_const_double_mem): Don't treat nested functions specially. + (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status. + (save_varasm_status, restore_varasm_status): Delete functions. + (init_varasm_status): New function. + (force_const_mem): Don't treat nested functions specially. + (find_pool_constant): Accept new arg F, search for constants in + that function's pool rather than the current one. All callers + changed. + (get_pool_constant_for_function, get_pool_mode_for_function): New + functions. + + * i386.c (init_386_machine_status): New function, mostly from + clear_386_stack_locals. + (struct machine_functions): Rename element names to avoid name + clashes. + (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor + macros, replacing global variables. + (clear_386_stack_locals, save_386_machine_status, + restore_386_machine_status): Delete functions. + (override_options): Initialize init_machine_status. + * i386.h (INIT_EXPANDERS): Delete macro. + (save_386_machine_status, restore_386_machine_status, + clear_386_stack_locals): Delete declarations. + +Sat Sep 4 16:56:28 1999 Michael Hayes + + * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init. + (doloop_begin): Simplify pattern and use emit_jump_insn. + (doloop_end): Simplify pattern, switch operand order, + and use emit_jump_insn. + +Fri Sep 3 19:02:38 1999 Bernd Schmidt + + * function.h (struct function): Add new element LANGUAGE. + (save_lang_status): Declare new variable. + (restore_lang_status): Likewise. + * function.c (save_lang_status): Define. + (restore_lang_status): Likewise. + (push_function_context_to): Call language-specific save function. + (pop_function_context_from): Call language-specific restore function. + +Fri Sep 3 01:16:18 1999 Alasdair Baird + + * i386.md (movsf_1): Check REG_P before use of REGNO. + (movdf_1): Likewise. + (movxf_1): Likewise. + (extendsfdf2): Likewise. + (extendsfxf2): Likewise. + (extenddfxf2): Likewise. + +Sat Sep 4 11:37:15 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large + constants into memory. + (c4x_shiftable_constant): New function. + * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT. + (c4x_shiftable_constant): Declare. + * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant, + ashlqi3_noclobber): Add new patterns and associated splitters. + +Fri Sep 3 16:22:17 1999 Richard Henderson + + * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero. + * dwarf2out.c (dwarf2out_frame_init): Likewise. + * final.c (shorten_branches): Likewise. + * global.c (global_alloc): Likewise. + * haifa-sched.c (build_control_flow): Likewise. + * stmt.c (check_for_full_enumeration_handling): Likewise. + (estimate_case_costs): Likewise. + +Fri Sep 3 15:49:56 1999 Mark Mitchell + + * rtl.h (RTL_CHECKC2): Fix typo in last change. + +Fri Sep 3 15:13:34 1999 Richard Henderson + + * flow.c (propagate_block): Use XEXP not SET_DEST for a USE. + (recompute_reg_usage): Likewise. + * rtlanal.c (find_regno_fusage): Likewise. + + * rtl.c (rtl_check_failed_code1): New function. + (rtl_check_failed_code2): New. + * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args. + (RTL_CHECKC1, RTL_CHECKC2): New. + (XC*): New accessor macros. + (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them. + (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise. + (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise. + (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise. + (TRAP_*, RANGE_INFO_*): Likewise. + +Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi + + * Makefile.in (tlink.o): Don't depend on toplev.h. + + * collect2.c (c_file, o_file, export_file, import_file, ldout, + output_file, nm_file_name, ldd_file_name, strip_file_name, + c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file, + add_prefix, prefix_from_env, prefix_from_string, do_wait, + fork_execute, maybe_unlink, add_to_list, + extract_init_priority, write_list, dump_list, + dump_prefix_list, write_list_with_asm, write_c_file, + write_c_file_stat, write_c_file_glob, scan_prog_file, + scan_libraries, is_in_list, resolve_lib_name, use_import_list, + ignore_library, extract_string, notice, dump_file, target_machine, + collect_wait, collect_execute, libname, locatelib, aix_std_libs, + read_file, print_load_command): Constify a char*. + (fdopen, error, fatal, fatal_perror): Don't prototype. + (my_strerror): Remove. All callers use xstrerror instead. + (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions. + (main): Add prototype. Constify lots of char* ptrs. Change calls + to xcalloc/strcpy/strcat/... to one call to concat. + (main, scan_prog_file, scan_libraries): Use an intermediate + `const char **' to build an argv array. + (mapfile, libselect, libcompare, locatelib): Add prototypes. + + * collect2.h (collect_execute, collect_wait, dump_file, + file_exists): Constify a char*. + (ldout, c_file_name, temporary_obstack, permanent_obstack, + temporary_firstobj, vflag, debug): Add extern declarations. + (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes. + + * tlink.c: Don't include toplev.h. + (vflag, debug, ldout, c_file_name, temporary_obstack, + permanent_obstack, temporary_firstobj): Don't declare. + (tlink_execute, frob_extension, symbol_hash_lookup, + file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym, + recompile_files, read_repo_files, demangle_new_symbols, + scan_linker_output): Constify a char*. + (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc, + do_tlink): Mark parameters with ATTRIBUTE_UNUSED. + +Fri Sep 3 18:09:24 1999 Andrew Haley + + * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr + (relative) rather than jsr (absolute) subroutine call insns. + * config/m68k/m68k-coff.h: Ditto. + +Fri Sep 3 17:24:31 1999 Richard Earnshaw + + * arm.c (note_invalid_constants): No need to ignore ASMs, we can + now rework these too. + (arm_reorg): If an insn can't reach the end of the current pool, + ensure that we emit that pool before the insn. + +Fri Sep 3 09:14:32 1999 Marc Espie + + * tlink.c (scan_linker_output): Skip the initial underscore in + a mangled name if appropriate. + +Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi + + * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, + objc_tree_code_name, synth_id_with_class_suffix, warn_with_method, + error_with_ivar, gen_declarator, create_builtin_decl, + my_build_string, generate_descriptor_table, generate_ivars_list, + generate_dispatch_table, check_protocols, TAG_GETCLASS, + TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS, + dump_base_name, lang_decode_option, build_encode_expr, + start_class, finish_class, encode_pointer, really_start_method, + gen_declaration, dump_interface, handle_class_ref, handle_impent): + Constify. + (objc_demangle, objc_printable_name, generate_struct_by_value_array): + Add static prototypes. + (build_objc_string_decl, build_selector_reference_decl, + encode_bitfield, build_class_reference_decl): Remove unused + parameter, all callers changed. + (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED. + (objc_printable_name): Likewise. Change second parameter to type int. + (init_objc): Use memcpy, not bcopy, to avoid casts. + +Thu Sep 2 21:49:52 1999 Richard Henderson + + * reload1.c (eliminate_regs_in_insn): Avoid eliminating the + reg notes on a deleted insn. + * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE. + +Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_attr_length_default): Handle TYPE_FXCH. + +Thu Sep 2 22:00:08 1999 J"orn Rennecke + + * stmt.c (expand_asm_operands): Fix index into inout_mode when + reading it. + +Thu Sep 2 13:00:48 1999 Richard Henderson + + * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present. + * tm.texi (MD_ASM_CLOBBERS): Document it. + +Thu Sep 2 10:22:40 1999 Richard Henderson + + * dwarf2out.c (dwarf2out_line): Constify `lastfile'. + * except.c (expand_rethrow): Remove unused variable. + * expr.c (do_jump_by_parts_greater_rtx): Likewise. + * flow.c (replace_insns): Likewise. + (create_edge_list, verify_edge_list): Likewise. + * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0. + + * genemit.c (gen_expand): Only emit `operands[N]' decl if there + is special code to run. + (main): Don't define operands to emit_operand. + * genrecog.c (main): Don't emit an empty peephole2_insn function. + + * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF. + + * alpha/alpha.h (normal_memory_operand): Declare. + (reg_no_subreg_operand): Declare. + * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. + +Thu Sep 2 10:19:20 1999 Richard Henderson + + * c-parse.in (compstmt_primary_start): New, broken out of first + part of compstmt handling in primary. + (primary): Use it. Add an error clause. + (compstmt_nostart): Renamed from compstmt; remove all + initial invocations of compstmt_start. + (compstmt): New. + +Thu Sep 2 01:35:50 1999 Marc Espie + + * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if + needed. + +Thu Sep 2 00:43:59 1999 Finn Hakansson + + * combine.c (simplify_shift_const): Remove extra semicolon. + * dwarf2out.c (remove_AT): Likewise. + * expmed.c (expand_mult): Likewise. + * gcov.c (create_program_flow_graph): Likewise. + * reorg.c (mostly_true_jump): Likewise. + +Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold_range_test): Do not try to fold the range + test if the rhs or lhs has side effects. + + * combine.c (simplify_rtx): Recognize another case of a synthesized + sign extension. + + * varasm.c (mark_constant_pool): When marking indirect references, + only look at SYMBOL_REFs. + + * except.c (expand_fixup_region_end): Do not peek at + INSN_UID (node->entry->outer_context) for flag_new_exceptions. + +Thu Sep 2 13:52:53 1999 Geoffrey Keating + + * flags.h: New variables align_loops, align_loops_log, + align_jumps, align_jumps_log, align_labels, align_labels_log, + align_functions, align_functions_log. + * toplev.c: Define them. + (f_options): Handle -falign-* when they have no argument. + (main): Add logic to set variables for -falign-functions, + -falign-jumps, -falign-labels, -falign-loops. + Make it -fsched-verbose= and -finline-limit=. + (display_help): Change help to match options. + * final.c (LABEL_ALIGN): Default to align_labels_log. + (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1. + (LOOP_ALIGN): Default to align_loops_log. + (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1. + (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log. + (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1. + * varasm.c (assemble_start_function): Handle align_functions. + + * config/sparc/sparc.h: Don't declare sparc_align_*. + Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN. + (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into + sparc.c. + (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request, + it's a promise. + * config/sparc/sparc.c: Delete sparc_align_loops, + sparc_align_jumps, sparc_align_funcs and the corresponding string + variables. + (sparc_override_options): Default align_functions on ultrasparc. + Delete -malign-* handling. + + * config/mips/mips.c (override_options): On 64-bit targets, + try to align code to 64-bit boundaries. + (print_operand): New substitution, %~, + which aligns labels to align_labels_log. + * config/mips/mips.md (div_trap_normal): Use %~. + (div_trap_mips16): Likewise. + (abssi): Likewise. + (absdi2): Likewise. + (ffssi2): Likewise. + (ffsdi2): Likewise. + (ashldi3_internal): Likewise. + (ashrdi3_internal): Likewise. + (lshrdi3_internal): Likewise. + (casesi_internal): Likewise. + +Wed Sep 1 21:13:48 1999 Richard Henderson + + Merge new ia32 backend from the branch! + + * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes. + See ChangeLog.P2 on new_ia32_branch for details. + + * rtl.h (stack_regs_mentioned_p): Delete prototype. + * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl. + * i386/win32.h (SUBTARGET_PROLOGUE): Likewise. + * i386/gas.h (ASM_FILE_START): Define. + * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update + for name change of ix86_valid_decl_attribute_p. + (i386_pe_valid_type_attribute_p): Similarly. + +Wed Sep 1 18:21:23 1999 Richard Henderson + + * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE + to step through CC modes. + +Wed Sep 1 20:18:06 1999 J"orn Rennecke + + * regmove.c (fixup_match_1): Don't move INSN in front of P if + it would end up in the shadow of a live flags regsiter. + +Wed Sep 1 11:32:00 1999 Bernd Schmidt + + * reload1.c: Fix many indentation problems. + * reload.c: Likewise. + +Tue Aug 31 22:08:03 1999 Marc Espie + + * alias.c (non_local_reference_p): Constify fmt. + +Tue Aug 31 23:19:35 1999 Michael Meissner + + * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define. + +Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (delete_trivially_dead_insns): Do not delete stores to + the internal_arg_pointer. + +Tue Aug 31 13:35:42 1999 Richard Henderson + + Merge peephole2 from new_ia32_branch: + * Makefile.in (STAGESTUFF): Add *.peephole2. + (mostlyclean): Likewise. + (recog.o): Depend on resource.h. + + * final.c (peephole): Conditionalize decl on HAVE_peephole. + (final_scan_insn): Likewise for the invocation of peephole. + * genconfig.c (main): Look for peephole and peephole2 patterns. + Emit HAVE_peephole* accordingly. + * genpeep.c (main): Conditionalize entire output on HAVE_peephole. + * flags.h (flag_peephole2): Declare. + * toplev.c: New pass peephole2. New flag -fpeephole2. + + * genattrtab.c (main): Count DEFINE_PEEPHOLE2. + * gencodes.c (main): Likewise. + * genextract.c (main): Likewise. + * genoutput.c (main): Likewise. + * genemit.c (max_operand_1): Look for the max scratch operand. + (gen_rtx_scratch): New. + (gen_exp): Use it, and pass on new arg subroutine_type. + (gen_expand): Take max scratch into account. + (gen_split): Emit peephole2 functions. + (output_peephole2_scratch): New. + (main): Include hard-reg-set.h and resource.h. Handle peephole2. + * genrecog.c (routine_type): Add PEEPHOLE2. + (IS_SPLIT): New. + (make_insn_sequence): Match outer parallel for peep2. Discard + top level scratches and dups. + (add_to_sequence): New args insn_type and top. Update all callers. + Handle toplevel peep2 matching insns. + (write_subroutine): Handle peep2. + (write_tree_1): Likewise. + (write_tree): Likewise. + (main): Likewise. + (change_state): New arg afterward. Update all callers. + Handle matching separate insns. + * recog.c (recog_next_insn): New. + (peephole2_optimize): New. + * rtl.def (DEFINE_PEEPHOLE2): New. + * resource.c (find_free_register): New argument last_insn. Use it + to find a register available through the entire span. + * resource.h (find_free_register): Update prototype. + +Tue Aug 31 11:51:06 1999 Jim Kingdon + + * i386.c (output_strlen_unroll): Don't write xops[7] + label if it wasn't set. + +1999-08-31 12:44 -0700 Zack Weinberg + + * cpplib.c (struct directive): Const-ify name pointer and + function pointer prototype. + (validate_else, do_define, do_line, do_include, do_undef, + do_error, do_pragma, do_ident, do_if, do_xifdef, do_else, + do_elif, do_endif, do_sccs, do_assert, do_unassert, + do_warning): Const-ify second arg. + (directive_table): Mark const. Reorder entries by frequency + of usage, record statistics. + +1999-08-31 12:20 -0700 Zack Weinberg + + * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and + bounds- check RTL accesses if --enable-checking. + (RTVEC_ELT): Bounds check if --enable-checking. + (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, + XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate. + (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and + GET_NUM_ELEM. + (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, + X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes. + + (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS. + (NOTE_SOURCE_FILE): Use X0STR. + (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES, + MEM_ALIAS_SET): Use X0INT. + (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK, + JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN): + Use X0EXP. + * real.h (CONST_DOUBLE_CHAIN): Use X0EXP. + * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT. + (rtl_check_failed_bounds, rtl_check_failed_type1, + rtl_check_failed_type2, rtvec_check_failed_bounds): New + functions. + (fancy_abort): Fix comment. + + * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT. + (cse_insn): Decrement LABEL_NUSES for jump target before + deleting jump insn. + * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1. + * final.c (alter_subreg): Compute regno before changing x to + REG; set REGNO(x) after changing it. + * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION + notes containing CONST_INTs. + (delete_eh_regions): Use NOTE_EH_HANDLER. + * function.c (put_reg_into_stack): Make reg a MEM before + initializing it. + (fixup_var_refs_insns): Save REG_NOTES (insn) in case we + delete insn. + (gen_mem_addressof): Make reg a MEM before initializing it. + * integrate.c (copy_rtx_and_substitute): Copy '0' slots with + X0WINT. + * local-alloc.c (update_equiv_regs): Zap REG_NOTES before + deleting an insn, not after. + (block_alloc): Only look at PATTERN(insn) if we have to, and + only if it's format class 'i'. + * loop.c (check_dbra_loop): Check bl->biv->add_val is a + CONST_INT before using its INTVAL. + * print-rtl.c (print_rtx): Use X0STR. + * regmove.c (fixup_match_1): Don't look at PATTERN of + non-class-'i' insn chain elements. + * reload.c (loc_mentioned_in_p): Take address of + in->fld[1].rtx directly. + * reload1.c (reload): Change reg to a MEM before initializing + it. + * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which + have no names. + * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo. + +Fri Aug 20 13:43:41 1999 Andrew Haley + + * config/mips/mips.c (machine_dependent_reorg): Force a + barrier to output the local constant pool if a barrier hasn't + been found at a natural point in the instruction stream. + +Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi + + * c-parse.in (language_string): Constify. + + * dwarf2out.c (language_string): Remove declaration. + + * dwarfout.c (language_string): Likewise. + + * toplev.c (language_string, init_parse, finish_parse): Likewise. + + * tree.h (language_string, init_parse, finish_parse): Declare. + + * i386/sun386.h (language_string): Remove declaration. + + * mips.h (language_string): Likewise. + + * nextstep.h (language_string): Likewise. + + * nextstep21.h (language_string): Likewise. + + * rs6000.c (language_string): Likewise. + +Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi + + * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o. + (getpwd.o): Remove target. + + * getpwd.c: Delete file. Its in libiberty now. + + * dbxout.c (getpwd): Don't prototype. + * dwarf2out.c (getpwd): Likewise + * dwarfout.c (getpwd): Likewise + * final.c (getpwd): Likewise. + * protoize.c (getpwd): Likewise. + +Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi + + * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift. + +Mon Aug 30 16:07:49 1999 Richard Henderson + + * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not + mark_set_resources. + +Mon Aug 30 12:23:53 1999 Jim Wilson + + * fixinc/Makefile.in (subdir): New. + (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP). + (Makefile): New. + +Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (copy_rtx_if_shared): A MEM which references + virtual_stack_vars_rtx or virtual_incoming_args_rtx can not + be shared. + + * invoke.texi: Fix typo. + + * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers + changed. Handle autoincrement addressing modes. + + * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer + just like we would the virtual incoming args register when + integrating. + +Sun Aug 29 23:17:54 1999 David Edelsohn + + * rs6000.h (ASM_FILE_START): Specify complete filename, including + path, in .file directive. + +Sun Aug 29 05:06:43 1999 Russ Allbery + + * gcc.texi (External Bugs): Remove obsolete note about Perl on + SunOS. + +1999-08-29 08:38 -0700 Zack Weinberg + + * stdbool.h: Make the typedef name _Bool, with bool a #defined + alias. + +Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi + + * tree.c (tree_code_name): Constify a char*. + + * tree.h (tree_code_name, decl_printable_name): Likewise. + + * function.h (struct function): Likewise. + + * toplev.c (decl_name, decl_printable_name): Likewise. + + * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise. + + * objc/objc-act.c (decl_printable_name): Remove redundant prototype. + (init_objc): Remove function pointer cast. + +Sun Aug 29 05:01:17 1999 John David Anglin + + * pa.md (interspace_jump): New pattern. + (builtin_longjmp): New expander. + +1999-08-29 Bernd Schmidt + + * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2, + _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate, + sf_to_df, df_to_sf): Fix potential problem with alias analysis. + +Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com) + + * jump.c (delete_prior_computation): Also check calls + to constant functions. Don't bother checking for a + REG_UNUSED note before adding it. + (delete_computation): Handle multi-word hard registers + when synthesizing missing REG_DEAD notes for a register + which is both set and used by an insn. + +1999-08-29 Michael Hayes + + * loop.c (this_loop_info): New variable. + (loop_has_call, loop_has_volatile, loop_has_tablejump, + loop_continue, loops_enclosed): Replace with fields in this_loop_info. + All uses updated. + (prescan_loop, strength_reduce): New argument loop_info. All callers + updated. + (scan_loop): New variable loop_info, initialise to address of + this_loop_info. + (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP. + Delete variable loop_has_multiple_exit targets and replace with + field in this_loop_info. + (find_and_verify_loops): Rename this_loop to this_loop_num. + (strength_reduce): Delete loop_iteration_info. Replace variable + loop_info with function argument of same name. + (insert_bct): Rework test for loop being completely unrolled. + + * loop.h (struct loop_info): New fields num, loops_enclosed, + has_call, has_volatile, has_tablejump, has_multiple_exit_targets, + has_indirect_jump, and cont. Redefine use of unroll_number. + (loop_unroll_number): Delete. + + * unroll.c (unroll_loop): Store loop unroll count in unroll_number + field of loop_info. + (loop_iterations): Delete variable vtop and instead use + loop_info->vtop computed in prescan_loop. + +Sun Aug 29 03:27:23 1999 Scott Weikart + + * fix-header.c (main): Do not pass a null pointer to strcmp. + +Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net) + + * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate + filenames. + * configure: Rebuilt. + +Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): Do not delete assignments to + internal_arg_pointer. + * cse.c (delete_trivially_dead_insns): Always consider a set of + the internal_arg_pointer live. + +Sat Aug 28 16:24:31 1999 Richard Henderson + + * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain. + (update_life_info) [REG_WAS_0]: Search the original insns rather + than the new insns for the note. Fix typos finding note_dest. + If no dest found, discard the note rather than abort. + [REG_NOALIAS]: Handle as REG_NO_CONFLICT. + (replace_insns): Remove the old insn list after update_life_info + not before. + +Sat Aug 28 16:20:12 1999 Richard Henderson + + * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling + sched_analyze_insn. + (sched_analyze_1): Let add_dependence care for not adding dups. + (sched_analyze_2): Likewise. + (add_branch_dependences): Likewise. + +Sat Aug 28 15:58:16 1999 Mumit Khan + + * i386/winnt.c (export_list): New type. + (exports_head): Rename to + (export_head): this. + (i386_pe_record_exported_symbol): Add is_data flag. + (i386_pe_asm_file_end): Emit directive for exported variables. + * i386/cygwin.h (i386_pe_record_exported_symbol): Update + prototype. + * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + +Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. + + * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an + operand. + +Fri Aug 27 14:01:19 1999 Marc Espie + + * config/openbsd.h: Define SET_ASM_OP. + * tm.texi: cross-reference SET_ASM_OP in the index. + +1999-08-27 13:27 -0700 Zack Weinberg + + * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format + for a CONST_DOUBLE, at compile time. Initialize rtx_length + and class_narrowest_mode at compile time. Kill init_rtl. + Mark rtx_length, mode_class, mode_size, mode_unit_size, + mode_wider_mode, mode_mask_array, class_narrowest_mode, and + rtx_format as const. Kill all references to EXTRA_CC_MODES or + EXTRA_CC_NAMES. + * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for + format. + * rtl.h: Declare rtx_length and rtx_format as const. + * machmode.def: Define CC(). Use CC() to define CCmode. If + EXTRA_CC_MODES is defined, expand it here. + * machmode.h: Declare mode_class, mode_size, mode_unit_size, + mode_wider_mode, mode_mask_array, and class_narrowest_mode as + const. Kill all references to EXTRA_CC_MODES. + + * toplev.c: Don't prototype or call init_rtl. + * optabs.c: Don't call init_mov_optab. + * genemit.c: Don't generate init_mov_optab. Don't call + init_rtl. + * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT + here. + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, + genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, + genrecog.c: Don't call init_rtl. + + * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h, + rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in + definition of EXTRA_CC_MODES. + + * md.texi: Kill ref to EXTRA_CC_NAMES. + * tm.texi: Document new way to define EXTRA_CC_MODES. + + * genrecog.c: Do not look up the name of a define_split. + (Unrelated bugfix.) + +Fri Aug 27 17:03:42 1999 Nick Clifton + + * config/v850/v850.md: Fix typo introduced by previous delta. + +Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi + + * gcc.c (fatal): Make definition static to match prototype. + +Fri Aug 27 10:33:35 1999 Bernd Schmidt + + * combine.c (get_last_value): Don't look for earlier sets if the last + known set is somewhere in between the insns being combined. + +Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell + + * configure.in: Don't use shell ! to negate exit codes + * configure: Regenerate + +Fri Aug 27 09:36:17 1999 Andreas Schwab + + * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for + the fact that ALIGN is measured in bits, not bytes. + +1999-08-27 00:27 -0700 Zack Weinberg + + * errors.c: New file; defines functions error, warning, and + fatal, variables have_error and progname. + * errors.h: New file; prototypes and decls for stuff in errors.c. + + * Makefile: Add rules to build errors.o and + $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit, + genopinit, genrecog, genextract, genpeep, genattr, and + genoutput with errors.o. Add errors.h to deps of genconfig.o, + gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o, + genpeep.o, genattr.o, and genoutput.o. + + * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c, + genextract.c, genpeep.c, genattr.c: Include errors.h. Don't + define or prototype fatal. Set progname at beginning of main. + * genoutput.c: Likewise, and don't define or prototype error + either. + + * c-typeck.c (c_expand_start_case): Return immediately if exp + is an ERROR_MARK. + * fold-const.c (operand_equal_p): Return immediately if arg1 + or arg0 are ERROR_MARKs. + * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore + fields of type ERROR_MARK when calculating if the record can + go in a register. + +Fri Aug 27 01:03:48 1999 Jim Kingdon + with much help from Jeffrey A Law and Richard Henderson + + * i386.md: In the 6 insns which call output_fix_trunc, + earlyclobber operands[0]. + +Fri Aug 27 01:01:51 1999 Philip Blundell + + * jump.c (duplicate_loop_exit_test): Call reg_scan_update after + creating new registers. + +1999-08-26 23:09 -0700 Zack Weinberg + + * i386.h: Declare ix86_cpu_string, ix86_arch_string, + i386_reg_alloc_order, i386_regparm_string, + i386_align_loops_string, i386_align_jumps_string, + i386_align_funcs_string, i386_preferred_stack_boundary_string, + and i386_branch_cost_string as type "const char *". + * i386.c: Define all above strings as type "const char *". + +Thu Aug 26 20:36:30 1999 Jim Wilson + + * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE + when emitting alignment padding. Emit padding byte of 0 instead of 4. + +Thu Aug 26 18:11:20 1999 Mark Mitchell + + * tree.c (array_type_nelts): Don't create RTL_EXPRs from + SAVE_EXPRs unless the SAVE_EXPRs have already been expanded. + +Thu Aug 26 19:33:23 1999 Jim Wilson + + * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition. + (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support. + (dwarf2out_line, dwarf2out_finish): Likewise. + * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation. + +Thu Aug 26 16:10:56 1999 Gavin Romig-Koch + + * tree.c (lang_unsave_expr_now) : Correct return type. + * tree.h (lang_unsave_expr_now) : Same. + +Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros + instead of duplicating code. + +Thu Aug 26 18:32:32 1999 Bernd Schmidt + + * gcse.c (hash_scan_insn): Don't scan obvious no-ops. + +1999-08-26 09:42 -0700 Zack Weinberg + + * tree.h: fancy_abort always takes three args. + * resource.c: Move include of system.h before toplev.h. + +Thu Aug 26 09:46:16 1999 Nick Clifton + + * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well + as SYMBOL_REFs. + +1999-08-25 22:10 -0700 Zack Weinberg + + * system.h: Don't redefine abort or trim_filename. + * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0) + or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on + whether or not __FUNCTION__ is available. + * tree.h: Duplicate rtl.h's definition of abort, for files + that don't include rtl.h. Delete all code to perform type + checking with a compiler other than GCC. + * varray.h: Delete all code to perform type checking with a + compiler other than GCC. Make VARRAY_CHECK() always evaluate + its arguments exactly once, using a statement expression. + Adjust the VARRAY_ accessor macros to match. + * toplev.h (fatal_insn, fatal_insn_not_found): Kill. + (_fatal_insn, _fatal_insn_not_found): New fns, take info on + caller's location. Define fatal_insn and fatal_insn_not_found + as macros that use _fatal_insn and _fatal_insn_not_found. + (fancy_abort, trim_filename): Kill prototypes. + + * rtl.c (trim_filename): Move here from toplev.c. + (fancy_abort): New function. + (DIR_SEPARATOR): Provide default definition. + * tree.c (tree_check_failed, tree_class_check_failed): Go + through fancy_abort. + (tree_check, tree_class_check, cst_or_constructor_check, + expr_check): Delete. + * varray.c (varray_check_failed): New function. + * toplev.c (fatal_insn, fatal_insn_not_found): Replace with + _fatal_insn and _fatal_insn_not_found. Go through + fancy_abort. + (trim_filename, fancy_abort): Delete. + + * builtins.c (expand_builtin_args_info): Report ICE with abort. + * except.c (start_catch_handler): Report ICE with error/abort + combo. + * final.c (output_operand_lossage): Likewise. + * flow.c (verify_flow_info): Likewise. + + * gcc.c: Prototype fatal. + * gengenrtl.c: Undef abort after including rtl.h not system.h. + * genattr.c, genattrtab.c, genemit.c, genextract.c, + genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c: + Don't define fancy_abort. + +Wed Aug 25 17:56:59 1999 Richard Henderson + + * optabs.c (emit_cmp_and_jump_insns): Be more thorough in + canonization. + +Wed Aug 25 15:35:55 1999 Richard Henderson + + * m88k.h (VERSION_INFO2): Kill. + (VERSION_STRING): Kill. + (TM_RCS_ID): Kill. + (VERSION_INFO1): Tidy. + (TARGET_VERSION): Update. + * m88k/dgux.h (VERSION_INFO2): Kill. + (ASM_FIRST_LINE): Adjust for death of VERSION_STRING. + * m88k/luna.h (VERSION_INFO1): Tidy. + * m88k/sysv4.h (VERSION_INFO1): Likewise. + * m88k.c (out_rcs_id, tm_rcs_id): Kill. + (output_file_start): Adjust for death of VERSION_STRING. + +1999-08-25 13:51 -0700 Jim Meyering + + * cpplib.c (detect_if_not_defined): New function. + (do_if): Use it to detect potential once-only headers. + +Wed Aug 25 14:00:18 1999 Jason Merrill + + * c-common.c (combine_strings): Always set TREE_CONSTANT. + +Wed Aug 25 15:27:22 1999 Gavin Romig-Koch + + * combine.c (nonzero_bits) : Allow single-ly set registers to be + anywere in the function only if they are pseudos and set before + being used (not live at the start of the function). + (num_sign_bit_copies) : Same. + (get_last_value_validate) : Same. + (get_last_value) : Same. + +Wed Aug 25 11:13:29 1999 Richard Henderson + + * loop.c (express_from): Try harder to unify (* c N) and (* c M) + where N and M are constant and N is an integer multiple of M. + +Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod + + * sbitmap.h (sbitmap_intersection_of_succs): Add prototype. + (sbitmap_intersection_of_preds, sbitmap_union_of_succs, + sbitmap_union_of_preds): Add prototypes. + * sbitmap.c (sbitmap_intersection_of_succs): New function to compute + the intersection of successors with the new flow graph structures. + (sbitmap_intersection_of_preds): New function to compute the + intersection of predecessors with the new flow graph structures. + (sbitmap_union_of_succs): New function to compute the union of + successors with the new flow graph structures. + (sbitmap_union_of_preds): New function to compute the union of + predecessors with the new flow graph structures. + * gcse.c (compute_rdm, compute_available): Use new sbitmap routines. + (expr_reaches_here_p): Use edge and basic_block structures instead + of s_preds and s_succs. + (compute_cprop_avinout): Use new sbitmap routines. + (pre_expr_reaches_here_p): Use edge and basic_block structures instead + of s_preds and s_succs. + * flow.c (compute_flow_dominators): Compute dominators using + edges and basic blocks instead of s_preds and s_succs. + +Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod + + * lists.c (unused_insn_list, unused_expr_list): New file for + maintaining various types of lists. New statics for maintaining a + cache of available INSN_LIST and EXPR_LIST nodes. + (free_list): Static function for freeing a list of INSN/EXPR nodes. + (alloc_INSN_LIST): Function to get a free INSN_LIST node. + (alloc_EXPR_LIST): Function to get a free EXPR_LIST node. + (init_EXPR_INSN_LIST_cache): Initialize the cache lists. + (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes. + (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes. + (free_EXPR_LIST_node): Free an individual EXPR_LIST node. + (free_INSN_LIST_node): Free an individual INSN_LIST node. + * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c + (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c + (remove_dependence, free_pending_lists): Use new global routines. + (flush_pending_lists, sched_analyze_insn): Use new global routines. + (sched_analyze, compute_block_backward_dependences): Use new routines. + (sched_analyze_1, sched_analyze_2): Use new routines. + (schedule_insns): Use new global routines. + * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function + prototypes. + (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes. + (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function + prototypes. + * toplev.c (rest_of_compilation): Initialize node cache. + * Makefile.in (OBJS): Add lists.o to list of object files. + (lists.o): Add dependancies. + +Wed Aug 25 17:31:56 1999 Nick Clifton + + * config/v850/v850.md: Fix compile time warning messages. + * config/v850/v850.c: Fix compile time warning messages. + * config/v850/v850.h: Fix compile time warning messages. + +Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi + + * genattr.c (gen_attr): Add prototype arguments for get_attr_*(). + Remove unused prototype for `init_lengths'. + +Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi + + * calls.c (emit_call_1): Mark parameter `stack_size' with + ATTRIBUTE_UNUSED. + (expand_call): Initialize variable `insn'. + (emit_library_call): Likewise for variable `high_to_save'. + (emit_library_call_value): Likewise. + (store_one_arg): Likewise for variables `lower_bound' and + `upper_bound'. + + * combine.c (try_combine): Likewise for variables `i2_code_number' + and `other_code_number'. + (find_split_point): Likewise for variables `pos', `unsignedp' and + `inner'. + (simplify_if_then_else): Likewise for variables `op' and `c1'. + (simplify_and_const_int): Remove unused variable `width'. + (merge_outer_ops): Likewise. + + * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned + HOST_WIDE_INT' when comparing against one. + (simplify_relational_operation): Likewise. + (cse_insn): Initialize variables `src_eqv_volatile', + `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'. + + * final.c (init_final): Constify parameter `filename'. + (final_start_function): Mark parameter `optimize' with + ATTRIBUTE_UNUSED. + (profile_function): Likewise for parameters `first' and `optimize'. + (output_source_line): Likewise for parameter `file'. + + * integrate.c (subst_constants): Cast a value to `size_t' when + comparing against one. + (mark_stores): Initialize variable `mode'. Cast a value to + `size_t' when comparing against one. + + * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise. + + * loop.c (move_movables): Initialize variable `first'. + (strength_reduce): Likewise for variable `increment'. + (check_dbra_loop): Likewise for variable `comparison_val'. Cast a + value to `size_t' when comparing against one. + (load_mems): Initialize variable `end_label'. + + * output.h (init_final): Constify parameter. + + * reload.c (decompose): Initialize variable `base'. + + * reload1.c (reload): Likewise for variable `is_scalar'. + (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED. + (choose_reload_regs): Initialize variable `mode'. + (emit_reload_insns): Likewise for variable `store_insn'. + (reload_cse_noop_set_p): Mark parameter `insn' with + ATTRIBUTE_UNUSED. + (reload_combine): Initialize variable `set'. + + * unroll.c (unroll_loop): Likewise for variable `local_label'. + (copy_loop_body): Cast a value to `size_t' when comparing against + one. + + * varasm.c (assemble_variable): Initialize variable `size_tree'. + (const_hash): Add an `else abort()' in an if-else-if-else sequence. + (remove_from_pending_weak_list): Mark parameter `name' with + ATTRIBUTE_UNUSED. + +Wed Aug 25 11:18:39 1999 Bernd Schmidt + + * toplev.c (rest_of_compilation): Use decl_printable_name when opening + gcse dump file. + +Wed Aug 25 10:57:12 1999 Nick Clifton + + * config/arm/telf.h (ASM_WEAKEN_LABEL): Define. + (ASM_DECLARE_FUNCTION_NAME): Define. + (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT, + ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME, + ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if + not already defined. + +Wed Aug 25 01:36:11 1999 John David Anglin + + * calls.c (emit_call_1): Use call_pop/call_value_pop for all values + of n_popped when call/call_value are not defined. + +Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com) + + * tm.texi: GNU CC -> GCC conversion. + (CC1_SPEC): Indicate it is used for all language front ends. + +Tue Aug 24 23:43:03 1999 Mark Mitchell + + * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and + NOTE_INSN_EH_REGION_END correctly. + +Tue Aug 24 23:26:44 1999 Michael Tiemann + Jeff Law + + * loop.c (strength_reduce): Automatically unroll loops if the + unrolled loop size is smaller than the rolled loop size. + + * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab + and delete comment that code should be rewritten. + +Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (find_rgns): Mark a block found during the DFS search + as reachable. + + * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error. + +Tue Aug 24 22:41:06 1999 Mumit Khan + + * fixinc/mkfixinc.sh: Don't fix uwin headers. + * i386/uwin.h (MD_STARTFILE_PREFIX): Define. + (LINK_SPEC): Add -u _main when building executables. + (ASM_DECLARE_FUNCTION): Update from Cygwin. + (ASM_FILE_END): Use the default for ix86-pe. + * i386/xm-uwin.h (HAVE_BCOPY): Undefine. + +Tue Aug 24 20:49:47 1999 Art Haas + + * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN + and ASM_CLOSE_PAREN are empty strings. + +Wed Aug 25 12:46:22 1999 Fred Fish + Geoffrey Keating + + * Makefile.in (PREPROCESSOR_DEFINES): New macro. + (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES. + (unprotoize.o): Ditto. + (test-protoize-simple): Don't define STD_PROTO_DIR. + * protoize.c: Use PARAMS rather than PROTO. Minor whitespace + changes to make 'test-protoize-simple' pass. + (STD_PROTO_DIR): Remove define. + (STANDARD_EXEC_PREFIX): Supply default define. + (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX. + (target_machine): New variable, init to DEFAULT_TARGET_MACHINE. + (target_version): New variable, init to DEFAULT_TARGET_VERSION. + (GET_ENV_PATH_LIST): New macro. + (default_syscalls_dir): No longer initialized to STD_PROTO_DIR. + (do_processing): Initialize default_syscalls_dir using new + macros. Use it to initialize syscalls_absolute_filename. + +Tue Aug 24 16:58:15 1999 Richard Henderson + + * jump.c (jump_optimize_1): Do cmov opt on any single-set; force + B into a register before emit_conditional_move. + +Tue Aug 24 15:37:03 1999 Richard Henderson + + * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e)) + as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two + multiplicand out of (+ (* a b) (* c d)). + +Tue Aug 24 11:46:10 1999 Bob Manson + Richard Henderson + + * haifa-sched.c (split_hard_reg_notes): Move to flow.c + (new_insn_dead_notes): Likewise. + (update_n_sets): Likewise. + (update_flow_info): Move to flow.c, renamed to update_life_info; + extend to handle multiple source insns. + * flow.c: Include resource.h + (unlink_insn_chain): New. + (split_hard_reg_notes): New. + (maybe_add_dead_note): New. + (maybe_add_dead_note_use): New. + (find_insn_with_note): New. + (new_insn_dead_notes): New. + (update_n_sets): New. + (sets_reg_or_subreg_1, sets_reg_or_subreg): New. + (maybe_remove_dead_notes): New. + (update_life_info): New. + (prepend_reg_notes): New. + (replace_insns): New. + * output.h (update_life_info): Declare. + * recog.c (split_block_insns): Use update_life_info. + * resource.c (find_free_register): Use reg_alloc_order, don't use + fixed regs, make sure the mode is supported, don't use new regs. + (reg_dead_p): New. + * rtl.h (replace_insns): Declare. + +Tue Aug 24 13:48:39 1999 Nathan Sidwell + + * expr.c (expand_expr): Cope with COND_EXPRs with one + non-returning branch. + +Mon Aug 23 22:28:16 1999 Mark Mitchell + + * expr.c (store_expr): Always pass down the target, even when not + doing CSE. + +1999-08-24 Nick Clifton + + * configure.in: Define target_cpu_default for v850 targets. + * configure: Regenerate + + * config/v850/v850.h (TARGET_CPU_generic): Define. + (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant + addresses are 4 byte aligned. + + * config/v850/v850.c (print_operand): Cope with 'R' format DFmode + addresses. + +Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi + + * genattr.c (function_unit_desc): Constify a char*. Add prototype. + (main): Add prototypes. + + * genattrtab.c (substitute_address, write_const_num_delay_slots, + attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype. + (write_attr_get): Emit prototypes along with function definition. + (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED. + (write_complex_function): Emit static prototype along with + function definition. + + * genemit.c (gen_split): Emit prototypes along with function + definition. + + * genoutput.c (output_epilogue): Add prototype to `insn_outfun'. + Likewise for predicates and `insn_operand_predicate'. + (process_template): Emit static prototype along with function + definition. + + * genrecog.c (make_insn_sequence): Constify a char*. Add + prototypes for get_split_*(). + (write_subroutine): Emit prototypes along with function + definition. + +Tue Aug 24 12:35:20 1999 Bernd Schmidt + + * gcse.c (find_avail_set): Follow chains of register-register copies. + Use oprs_not_set_p to guarantee that the returned value can be + substituted. + (cprop_insn): Don't verify the return value of find_avail_set with + oprs_not_set_p. + + * gcse.c (cprop_jump): New function, broken out of cprop_insn. + (cprop_cc0_jump): New function. + (cprop_insn): Break out new function cprop_jump and use it. + Also use cprop_cc0_jump for machines with CC0. + (cprop): Don't crash if cprop_insn turned the insn into a NOTE. + + * tree.h (current_function_calls_setjmp, + current_function_calls_longjmp): Delete declarations. + * dsp16xx.c: Include "function.h". + * elxsi.c: Likewise. + * gmicro.c: Likewise. + * h8300.c: Likewise. + * i370.c: Likewise. + * m32r.c: Likewise. + * mn10200.c: Likewise. + * mn10300.c: Likewise. + * ns32k.c: Likewise. + * spur.c: Likewise. + * v850.c: Likewise. + + * rtl.h (rtx_equal_function_value_matters): Declare. + * toplev.c (rtx_equal_function_value_matters): Don't declare. + * cse.c: Likewise. + * function.c: Likewise. + * emit-rtl.c: Likewise. + +Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION + call. + +1999-08-24 Herman A.J. ten Brugge + + * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn + exactly. + +Mon Aug 23 23:35:52 1999 Matthias Klose + + * cpp.texi: Add a node documenting macro varargs (copied + from extend.texi). + +1999-08-23 22:23 -0700 Zack Weinberg + + * cppspec.c: Put a null pointer at the end of the new argv. + +Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in: Remove code to select/de-select the haifa + scheduler. Every scheduled port gets haifa now. + * configure: Rebuilt. + * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs. + * sched.c Deleted. + * Makefile.in: Corresponding changes. + +Mon Aug 23 16:04:13 1999 Bernd Schmidt + + * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer. + All callers changed. + (prepare_float_lib_cmp): Likewise. + Use FLOAT_LIB_COMPARE_RETURNS_BOOL. + * expr.h (emit_float_lib_cmp): Delete declaration. + * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document. + * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define. + * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons + specially. + (cmptf): Now conditional on TARGET_HARD_QUAD. + +Fri Aug 20 17:52:27 1999 Jim Wilson + + * resource.c (mark_target_live_regs): Use + PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. + +Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi + + * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify. + + * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise. + + * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'. + +Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi + + * rtl.h (rtx_format): Constify a char*. + + * rtl.c (rtx_format): Likewise. + (copy_rtx, copy_most_rtx, read_rtx): Likewise. + (init_rtl): Use accessor macro, not `rtx_format'. + + * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a + char*. + + * caller-save.c (mark_referenced_regs): Likewise. + + * combine.c (subst, make_compound_operation, known_cond, + gen_rtx_combine, update_table_tick, get_last_value_validate, + use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise. + + * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p, + refers_to_p, canon_reg, fold_rtx, cse_process_notes, + count_reg_usage): Likewise. + + * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags): + Likewise. + + * final.c (leaf_renumber_regs_insn): Likewise. + + * flow.c (mark_used_regs, find_use_as_address, dump_flow_info, + dump_edge_info, count_reg_references): Likewise. + + * function.c (fixup_var_refs_1, walk_fixup_memory_subreg, + fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1): + Likewise. + + * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p, + oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs, + add_label_notes): Likewise. + + * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask, + clear_struct_flag, count_sub_rtxs, count_alternatives, + compares_alternatives_p, contained_in_p, walk_attr_value, + write_expr_attr_cache): Likewise. + + * genconfig.c (walk_insn_part): Likewise. + + * genemit.c (max_operand_1, gen_exp): Likewise. + + * genextract.c (walk_rtx): Likewise. + + * genflags.c (num_operands): Likewise. + + * genoutput.c (scan_operands): Likewise. + + * genpeep.c (match_rtx): Likewise. + + * genrecog.c (add_to_sequence): Likewise. + + * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths): + Likewise. + + * integrate.c (save_constants, copy_for_inline, + copy_rtx_and_substitute, subst_constants, restore_constants): + Likewise. + + * jump.c (mark_jump_label, invert_exp, redirect_exp, + rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. + + * local-alloc.c (contains_replace_regs, memref_referenced_p): + Likewise. + + * loop.c (record_excess_regs, rtx_equal_for_loop_p, + add_label_notes, replace_call_address, count_nonfixed_reads, + invariant_p, find_single_use_in_loop, find_mem_givs, + find_life_end, maybe_eliminate_biv_1, update_reg_last_use): + Likewise. + + * print-rtl.c (reg_names, print_rtx): Likewise. + + * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. + + * reg-stack.c (stack_regs_mentioned_p, record_label_references, + record_reg_life_pat, swap_rtx_condition, goto_block_pat, + print_blocks): Likewise. + + * regclass.c (fix_register, record_address_regs, + reg_scan_mark_refs): Likewise. + + * regmove.c (stable_but_for_p): Likewise. + + * reload.c (loc_mentioned_in_p, operands_match_p, + find_reloads_toplevsubst_reg_equivs, find_reloads_address_1, + copy_replacements, refers_to_regno_for_reload_p, + refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p, + reload_when_needed_name, reg_class_names, debug_reload_to_stream): + Likewise. + + * reload1.c (eliminate_regs, scan_paradoxical_subregs, + delete_address_reloads_1, count_occurrences, + reload_cse_mem_conflict_p, reload_combine_note_use, + add_auto_inc_notes): Likewise. + + * resource.c (mark_referenced_resources, mark_set_resources): + Likewise. + + * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p, + reg_mentioned_p, regs_set_between_p, modified_between_p, + modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p, + rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p, + may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs, + jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise. + + * sched.c (sched_analyze_2, attach_deaths): Likewise. + + * stupid.c (stupid_mark_refs): Likewise. + + * unroll.c (remap_split_bivs): Likewise. + + * varasm.c (mark_constants): Likewise. + + * a29k/a29k.c (uses_local_reg_p): Likewise. + + * alpha/alpha.c (summarize_insn): Likewise. + + * arm/arm.c (symbol_mentioned_p, label_mentioned_p, + eliminate_lr2ip): Likewise. + + * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise. + + * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx, + reg_mentioned_in_mem): Likewise. + + * ns32k/ns32k.c (global_symbolic_reference_mentioned_p, + symbolic_reference_mentioned_p): Likewise. + + * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise. + + * sh/sh.c (regs_used, mark_use): Likewise. + + * vax/vax.c (vax_rtx_cost): Likewise. + +Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi + + * machmode.h (mode_name): Constify a char*. + + * rtl.c (mode_name): Likewise. + + * genopinit.c (gen_insn): Use accessor macro, not `mode_name'. + + * optabs.c (init_libfuncs): Constify a char*. + + * print-tree.c (mode_name): Remove redundant declaration. + (print_node): Use accessor macro, not `mode_name'. + + * reload1.c (dump_needs): Constify a char*. Use accessor macro, + not `mode_name'. + (new_spill_reg): Constify a char*. + + * tree.c (mode_name): Remove redundant declaration. + +Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi + + * rtl.c (rtx_name): Constify a char*. + + * rtl.h (rtx_name, fix_sched_param): Likewise. + + * gmicro/gmicro.c (rtx_name): Remove redundant declaration. + (mypr): Use accessor macro, not `rtx_name'. + + * genemit.c (print_code): Constify a char*. + + * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'. + + * genpeep.c (print_code): Constify a char*. + + * genrecog.c (print_code): Likewise. + + * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct, + end_bb): Add static prototype. + (draw_edge): Constify a char*. + (end_bb): Remove unused parameter. + + * haifa-sched.c (fix_sched_param, safe_concat, print_exp + print_block_visualization): Constify a char*. + +Fri Aug 20 15:02:10 1999 Mark Mitchell + + * c-common.c (c_get_alias_set): Update comment. + +1999-08-20 Andreas Jaeger + + * linux.h (LIB_SPEC): Added. + +Fri Aug 20 22:32:17 1999 Michael Hayes + + * config/c4x/c4x.h (STARTFILE_SPEC): Don't def. + +1999-08-19 18:43 -0700 Zack Weinberg + + * tree.c (expr_check): Fix typo in last change. + +1999-08-19 14:44 -0700 Zack Weinberg + + * rtl.def (NOTE): Change format to "iuu0n". + (ADDR_DIFF_VEC): Change format to "eEee0". + (ADDRESSOF): Change format to "eit". + + * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion. + (RTVEC_ELT): Change to match. + (XVECEXP): Use XVEC and RTVEC_ELT. + (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER, + ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT. + (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES, + CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST, + TRAP_CONDITION, TRAP_CODE): Use XEXP. + (INTVAL): Use XWINT. + (ADDRESSOF_DECL): Use XTREE. + (SET_ADDRESSOF_DECL): Delete. + (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL, + NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been + ifdefed out since 2.6 at least. + (gen_rtvec_vv): Delete prototype. + + * rtl.h (rtvec_alloc): rt->elem is now an array of rtx, + not rtunion. + (copy_most_rtx): Handle 't' format letter. + * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx. + (gen_rtvec_vv): Delete function. All callers changed to use + gen_rtvec_v instead. + * print-rtl.c (print_rtx): Move special casing of NOTEs to + the '0' format letter. + + * function.c (gen_mem_addressof): Don't use + SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF + instead. + * integrate.c (copy_rtx_and_substitute): Likewise. + Copy 't' slots with XTREE. + (subst_constants): Treat 't' slots like '[swi]' slots. + * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots. + * jump.c (rtx_equal_for_thread_p): Likewise. + * rtlanal.c (rtx_equal_p): Likewise. + * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes + only four arguments. + * gengenrtl.c (type_from_format): Provide correct types for + 'b' and 't' slots. + + + * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK): + If a recent gcc is in use (always in stage2 and beyond), use + statement expressions, so we don't make a function call unless + the check fails. Evaluate arguments exactly once. + (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1, + TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1): + Delete. + (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that + they evaluate their arguments exactly once, irrespective of + the compiler in use. + + * tree.c [ENABLE_CHECKING]: Define whichever set of functions + is used by the currently-enabled check macros. This is: + (tree_check_failed, tree_class_check_failed): For gcc. + (tree_check, tree_class_check, cst_or_constructor_check, + expr_check): For other compilers. + + * gencheck.c: Do not define any *_CHECK1 macros. + +Thu Aug 19 14:42:38 1999 Mike Stump + Mark Mitchell + + * c-common.c (c_get_alias_set): Fix support for poitners and + references. + +Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com) + + * alias.c: Include tree.h. + (nonlocal_reference_p, mark_constant_function): New functions. + * flow.c (life_analysis): Call mark_constant_function. + * rtl.h (mark_constant_function): Declare it. + +Thu Aug 19 15:02:01 1999 Nick Clifton + + * config/rs6000/rs6000.c (rs6000_override_options): Fix test for + unrecognisable switches. + +Wed Aug 18 23:31:57 1999 J"orn Rennecke + + * loop.c (recombine_givs): Set ix field after sorting. + (recombine_givs): Remove bogus index / giv lockstep looping. + +Wed Aug 18 18:20:40 1999 Bernd Schmidt + + * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition + on CODE. + (emit_store_flag_force): Use do_compare_rtx_and_jump. + (do_cmp_and_jump): Formatting fixes. + * expr.c (do_compare_and_jump): Renamed from compare; changed to call + do_compare_rtx_and_jump instead of compare_from_rtx. + (do_compare_rtx_and_jump): New function; mostly copied from + compare_from_rtx. + (do_jump_for_compare): Delete. + (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and + MIN_EXPR. + (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead + of compare/do_jump_for_compare pairs. + (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx. + (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of + compare_from_rtx/do_jump_for_compare pairs. + (do_jump_by_parts_equality): Likewise. + (do_jump_by_parts_equality_rtx): Likewise. + * expr.h (do_compare_rtx_and_jump): Declare. + * optabs.c (prepare_cmp_insn): New function, contains most of the code + that used to be in emit_cmp_insn. + (cmp_available_p): New function. + (prepare_operand): New function. + (emit_cmp_and_jump_insn_1): New function, contains some code that used + to be in emit_cmp_insn. + (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some + parameters to be pointers; don't emit final compare but modify some of + the values pointed to by the args so the caller can perform the + correct comparison. + (expand_binop): Call emit_store_flag_force with signed forms of + comparison code. + (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/ + emit_jump_insn pair. + (emit_cmp_and_jump_insn): Use prepare_cmp_insn and + emit_cmp_and_jump_insn_1. Call emit_queue. + (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL + arg. + * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a + jump sets cc0 before deleting it. + * integrate.c (expand_inline_function): Likewise. + * unroll.c (unroll_loop): Similar changes in several places. + (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0 + before deleting it. + +Wed Aug 18 06:37:44 1999 Bernd Schmidt + + * Makefile.in (insn-recog.o): Update dependencies. + * genrecog.c (main): Make generated file include "function.h". + +Sat Aug 14 00:54:57 1999 Geoffrey Keating + + * cse.c (cse_insn): Call never_reached_warning when a jump is + changed to be unconditional. + * flags.h: Declare warn_notreached. + * flow.c (delete_block): Call never_reached_warning when + a block is deleted. + * jump.c (delete_barrier_successors): Call never_reached_warning + when we delete everything after a BARRIER. + (never_reached_warning): New function. + * rtl.h: Declare never_reached_warning. + * toplev.c (warn_notreached): New variable. + (lang_independent_options): Set warn_notreached + when -Wunreachable-code. + (compile_file): We need line numbers for -Wunreachable-code. + +Tue Aug 17 22:06:11 1999 Jan Hubicka + + * haifa-sched.c (insn_unit): Fix typo on out of range test. + * sched.c (insn_unit): Likewise. + +Tue Aug 17 21:57:23 1999 Andreas Schwab + + * combine.c (distribute_notes): Handle REG_EH_RETHROW. + +Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod + + * flow.c (create_edge_list): Use xmalloc, not malloc. + +Tue Aug 17 01:40:54 1999 Loren Rittle + + * fixinc/inclhack.def (no_double_slash): Do not trash single-line + C-style comments. Do not lose the character before double slash. + +Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod + + * basic-block.h (struct edge_list): Stucture to maintain a vector + of edges. + (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, + INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list. + (create_edge_list, free_edge-List, print_edge_list, verify_edge_list): + New function prototypes. + * flow.c (create_edge_list): Function to create an edge list. + (free_edge_list): Discards memory used by an edge list. + (print_edge_list): Debug output showing an edge list. + (verify_edge_list): Internal consistency check for an edge list. + (find_edge_index): Function to find an edge index for a pred and succ. + +Mon Aug 16 11:56:36 1999 Mark Mitchell + + * tree.c (type_hash_add): Use permalloc to allocate nodes in the + hashtable. + +Mon Aug 16 17:04:15 1999 Jorn Rennecke + + * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define. + +Fri Aug 13 15:20:43 1999 Gerald Pfeifer + + * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +Fri Aug 13 10:21:28 1999 Nick Clifton + + * toplev.c (rest_of_compilation): Allow machine dependent + reorganisation pass to place information into the RTL dump + file if it so wishes. + +Sun Aug 15 12:41:21 1999 Jim Wilson + + * explow.c (hard_function_value): Use VOIDmode instead of + MAX_MACHINE_MODE. + * stmt.c (expand_return): Likewise. + * stor-layout.c (get_best_mode): Likewise. + + * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output + emit call instead of emit_insn call. + +Sat Aug 14 15:04:06 1999 Mumit Khan + + * configure.in: Handle --disable/enable-win32-registry. + * install.texi: Document --disable/enable-win32-registry. + * acconfig.h (ENABLE_WIN32_REGISTRY): New macro. + (WIN32_REGISTRY_KEY): New macro. + * prefix.c: Use to enable/disable win32-specific code. + (lookup_key): Use versioned key. + * configure: Regenerate. + * config.in: Likewise. + +Fri Aug 13 17:41:55 1999 Jason Merrill + + * cpplib.c (read_line_number): New fn, split out of... + (do_line): Here. + +Fri Aug 13 14:18:27 1999 Gavin Romig-Koch + + tree.c (lang_unsave_expr_now) : New. + (unsave_expr_now): Call lang_unsave_expr_now. + tree.h (lang_unsave_expr_now) : New. + +Fri Aug 13 00:49:46 1999 Jason Merrill + + * toplev.c (flag_new_exceptions): On by default. + +1999-08-13 Michael Meissner + + * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B. + +Fri Aug 13 01:29:57 1999 Alexandre Oliva + + * dwarfout.c (fundamental_type_code): Return FT_boolean for + INTEGER_TYPE with precision==1, it's __java_boolean. + +Thu Aug 12 23:51:04 1999 J"orn Rennecke + + * global.c (prune_preferences): Move some invariants out of the + inner loop. + +Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com) + + * configure.in (alpha*-dec-osf*): Add osf5. + +Sun Aug 1 22:24:03 1999 Philip Blundell + + * configure.in: Rework handling of ARM GNU/Linux slightly. + (arm*-*-linux-gnuoldld): New target. + * configure: Regenerate. + * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and + arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete. + * config/arm/linux-oldld.h: New file. + * config/arm/linux-elf26.h: Don't include linux-elf.h. + (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC): + Don't define. + * config/arm/linux-elf.h (ASM_SPEC): Define. + (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC, + SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions + for 26-bit APCS and old linker. + (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or + `arm_elf'. + (FP_DEFAULT): Define to FP_SOFT3 for all machines. + * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__'; + don't define `arm' or `arm_elf'. + * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS, + MULTILIB_DIRNAMES): Define. Fix typo in comment. + +Thu Aug 12 10:14:47 1999 Andreas Schwab + + * rtl.texi: Fix typo. + +Wed Aug 11 23:50:57 1999 Jason Merrill + + * invoke.texi (C++ Dialect Options): Add -fms-extensions. + +Wed Aug 11 12:59:37 1999 Mark Mitchell + + * extend.texi (C++ Signatures): Remove node. + * invoke.texi: Remove discussion of -fhandle-signatures, + signature, sigof, __signature__, and __sigof__. + +Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (JAVAGC): Removed. + +Wed Aug 11 02:13:26 1999 Mumit Khan + + * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define. + +1999-08-11 Mark Elbrecht + + * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define. + +1999-08-11 Richard Earnshaw (rearnsha@arm.com) + + * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of + a register that is already known to be a pointer. + +1999-08-11 Bruce Korb + + * fixinc/inclhack.tpl: Only install assert.h conditionally. + * fixinc/inclhack.sh: Regenerated. + * fixinc/fixincl.sh: Regenerated. + +Wed Aug 11 00:34:22 1999 Joe Buck + + * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi. + Fix documentation of -ansi flag to describe its C++ behavior. + Remove bogus reference to GCC 2.9. + +Tue Aug 10 17:19:02 1999 Jim Wilson + + * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on + note if it is non-NULL. + +Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod + + * except.h (eh_nesting_info): Add new structure defintion. + (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes. + (reachable_handlers, update_rethrow_references): Add function + prototypes. + * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes + a rethrow symbol instead of an integer exception region number. + * flow.c (Make_edges): Use new exception nesting routines to determine + which handlers are reachable from a CALL or asynchronous insn. + Dont add an edge for calls with a REG_EH_REGION of -1 to non-local + goto receivers. + (delete_eh_regions): Update rethrow labels, and don't delete + regions which are the target of a rethrow. + * except.c (struct func_eh_entry): Add rethrow_ref field, now we can + avoid overloading the SYMBOL_REF_USED flag. + (rethrow_symbol_map): Use new rethrow_ref field. + (rethrow_used): Use new rethrow_ref field. + (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead + of an integer. Fix formatting. + (output_exception_table_entry): Use new rethrow_ref field. + (can_throw): Check for EH_REGION_NOTE before deciding + whether a CALL can throw or not. + (scan_region): Call rethrow_used() instead of accessing data structure. + (update_rethrow_references): New function to make sure only regions + which are still targets of a rethrow are flagged as such. + (process_nestinfo): New static function to initialize a handler + list for a specific region. + (init_eh_nesting_info): New function to allocate and initialize + the list of all EH handlers reachable from all regions. + (reachable_handlers): New function to retrieve the list of handlers + reachable from a specific region and insn. + (free_eh_nesting_info): New function to dispose of a list of + reachable handlers. + +Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod + + * flow.c (split_edge): Set JUMP_LABEL field. + (commit_one_edge_insertion): Set head correctly for insert_before. + When inserting insns, update insn block numbers if allocated. + +Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi + + * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type, + retry_incomplete_types): Add static prototype. + (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING, + dwarf_tag_name, dwarf_attr_name, dwarf_form_name, + dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string, + dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line, + dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef): + Constify a char*. + + * dwarf2out.h (dwarf2out_define, dwarf2out_undef, + dwarf2out_start_source_file, dwarf2out_line): Likewise. + +Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi + + * output.h (assemble_name): Constify a char*. + + * varasm.c (UNIQUE_SECTION, assemble_start_function, + assemble_variable, assemble_name): Likewise. + + * dwarf2out.c (ASM_NAME_TO_STRING): Likewise. + + * arm/pe.c (arm_pe_unique_section): Likewise. + + * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise. + + * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise. + + * i386/interix.c (i386_pe_unique_section): Likewise. + + * i386/win32.h (STRIP_NAME_ENCODING): Likewise. + + * i386/winnt.c (i386_pe_unique_section): Likewise. + + * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. + + * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise. + + * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise. + + * pa/pa.c (output_call): Likewise. + + * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise. + + * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc): + Likewise. + + * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING): + Likewise. + + * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + + * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT, + STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise. + + * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise. + +Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi + + * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy. + +Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi + + * tree.h (lang_identify): Constify a char*. + (print_error_function): Add extern prototype. Constify a char*. + + * c-lang.c (lang_identify): Constify a char*. + + * objc/objc-act.c (lang_identify): Constify a char*. + +Mon Aug 9 16:21:53 1999 Bernd Schmidt + + * genpeep.c (main): Make generated file include "function.h". + * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case. + +Mon Aug 9 10:08:50 1999 Bernd Schmidt + + * Makefile.in: Update dependencies. + * alias.c: Include "function.h" + * c-decl.c: Likewise. + * caller-save.c: Likewise. + * calls.c: Likewise. + * combine.c: Likewise. + * cse.c: Likewise. + * explow.c: Likewise. + * final.c: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * profile.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * sched.c: Likewise. + * stupid.c: Likewise. + * config/1750a/1750a.c: Likewise. + * config/a29k/a29k.c: Likewise. + * config/arc/arc.c: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/thumb.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/clipper/clipper.c: Likewise. + * config/convex/convex.c: Likewise. + * config/fx80/fx80.c: Likewise. + * config/i860/i860.c: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m88k/m88k.c: Likewise. + * config/mips/mips.c: Likewise. + * config/pdp11/pdp11.c: Likewise. + * config/pyr/pyr.c: Likewise. + * config/romp/romp.c: Likewise. + * config/sh/sh.c: Likewise. + * config/tahoe/tahoe.c: Likewise. + * config/vax/vax.c: Likewise. + * config/we32k/we32k.c: Likewise. + * config/sparc/sparc.c: Include "function.h". + (mem_min_alignment): Test current_function rather than + regno_pointer_align. + * config/pa/pa.c: Likewise. + (compute_frame_size): Delete declaration of + current_function_outgoing_args_size. + * config/arc/arc.h (current_function_varargs): Delete declaration. + * config/elxsi/elxsi.h (current_function_calls_alloca): Delete + declaration. + * config/i370/i370.h (current_function_outgoing_args_size): Delete + declaration. + * config/i386/i386.h (FINALIZE_PIC): Delete declaration of + current_function_uses_pic_offset_table. + * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration + of current_function_returns_pointer. + * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m88k/m88k.c: Include "function.h" + (call_used_regs, current_function_pretend_args_size, + current_function_outgoing_args_size, frame_pointer_needed): Delete + declarations. + * config/m88k/m88k.h (current_function_pretend_args_size): Delete + declaration. + * config/mips/mips.h (current_function_calls_alloca): Delete + declaration. + * config/mn10200/mn10200.h (current_function_needs_context, + rtx_equal_function_value_matters): Delete declarations. + * config/ns32k/ns32k (current_function_uses_pic_offset_table, + flag_pic): Delete declarations. + * config/pa/pa.h (current_function_pretend_args_size, + current_function_decl): Delete declarations. + * config/pa/som.h (current_function_varargs): Delete declaration. + * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete + declaration. + * config/pyr/pyr.h (current_function_pretend_args_size, + current_function_args_size, current_function_calls_alloca): Delete + declarations. + * config/sh/sh.h (current_function_varargs): Delete declaration. + * config/sparc/sparc.h (current_function_outgoing_args_size, + current_function_calls_alloca, current_function_decl): Delete + declarations. + * config/spur/spur.h (current_function_pretend_args_size, + current_function_calls_alloca): Delete declarations. + * config/v850/v850.c (current_function_outgoing_args_size): Delete + declaration. + * config/vax/vms.h (current_function_name): Delete declaration. + * gcse.c: Include "function.h". + (current_function_name, current_function_calls_setjmp): Delete + declarations. + * haifa-sched.c: Include "function.h". + (forced_labels): Delete declaration. + * jump.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * genemit.c (main): Make generated file include function.h. + * genoutput.c (output_prologue): Likewise. + + * builtins.c (saveregs_value, apply_args_value): Delete variables. + * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn, + sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename, + regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align, + regno_reg_rtx, sequence_stack): Delete variables. Add accessor + macros for some of them. + (emit_filename, emit_lineno): Delete declarations. + (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access + regno_pointer_* variables through current_function. + (gen_inline_header_rtx): Delete function. + (save_emit_status): Delete function. + (set_new_last_label_num): New function. + (clear_emit_caches): New function. + (restore_emit_status): Just clear last_labelnum and call + clear_emit_caches. + (get_last_insn_anywhere): Variable sequence_stack is now accessed + through macro seq_stack. + (add_insn_after): Likewise. + (add_insn_before): Likewise. + (remove_insn): Likewise. + (pop_topmost_sequence): Likewise. + (in_sequence_p): Likewise. + (start_sequence_for_rtl_expr): Likewise. + (start_sequence): Likewise, and likewise for + sequence_rtl_expr/seq_rtl_expr. + (push_topmost_sequence): Likewise. + (end_sequence): Likewise. + (init_virtual_regs): Now takes a "struct emit_status *" argument. + All callers changed. Store into that pointer instead of globals. + (init_emit): Allocate emit elt of current_function. + Changes for sequence_rtl_expr/sequence_stack renaming. + Call clear_emit_caches instead of doing it in-line. + Access regno_pointer_* variables through current_function. + (init_emit_once) Don't clear sequence_stack. + + * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain): + Delete variables. + (arg_pointer_save_area): Delete declaration. + (finish_expr_for_function): Renamed from init_queue; no longer static. + (init_expr): Don't call init_queue. + (save_expr_status, restore_expr_status): Delete functions. + (expand_expr): Changes to reflect new layout of struct function. + Don't access current_function_check_memory_usage when current_function + is 0. + * expr.h (forced_labels, save_expr_regs, saveregs_value, + apply_args_value, current_function_calls_alloca, inhibit_defer_pop, + current_function_outgoing_args_size, current_function_arg_offset_rtx, + current_function_uses_const_pool, function_call_count, + current_function_uses_pic_offset_table, nonlocal_labels, + current_function_internal_arg_pointer, nonlocal_goto_stack_level, + current_function_check_memory_usage, nonlocal_goto_handler_slots, + pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete + declarations. + (finish_expr_for_function): Declare. + * flags.h (current_function_has_nonlocal_label, + current_function_has_nonlocal_goto, current_function_is_thunk, + current_function_has_computed_jump): Delete declarations. + * flow.c (forced_labels): Delete declaration. + * function.c (current_function_pops_args, + current_function_returns_struct, current_function_returns_pcc_struct, + current_function_needs_context, current_function_calls_setjmp, + current_function_calls_longjmp, current_function_has_nonlocal_label, + current_function_has_nonlocal_goto, current_function_is_thunk, + current_function_has_computed_jump, current_function_calls_alloca, + current_function_contains_functions, current_function_returns_pointer, + current_function_epilogue_delay_list, current_function_args_size, + current_function_pretend_args_size, current_function_arg_offset_rtx, + current_function_outgoing_args_size, current_function_varargs, + current_function_stdarg, current_function_args_info, cleanup_label, + current_function_name, current_function_uses_const_pool, + current_function_instrument_entry_exit, current_function_return_rtx, + current_function_uses_pic_offset_table, nonlocal_labels, + current_function_internal_arg_pointer, current_function_cannot_inline, + current_function_check_memory_usage, function_call_count, + nonlocal_goto_handler_slots, nonlocal_goto_handler_labels, + nonlocal_goto_stack_level, return_label, save_expr_regs, + stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots, + tail_recursion_reentry, arg_pointer_save_area, frame_offset, + context_display, trampoline_list, parm_birth_insn, invalid_stack_slot, + last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr, + temp_slot_level, var_temp_slot_level, target_temp_slot_level): + Delete variables. + (push_function_context_to): Don't save them. Don't call + save_storage_status, save_emit_status or save_expr_status. + (pop_function_context_from): Don't restore them. Don't call + restore_storage_status or restore_expr_status. + (get_func_frame_size): New function. + (get_frame_size): Use it. + (assign_outer_stack_local): Reflect some member name changes in struct + function. + (put_reg_into_stack): Likewise. + (assign_stack_temp_for_type): sequence_rtl_expr was renamed to + seq_rtl_expr. + (fixup_var_refs): Likewise. + (fix_lexical_addr): Likewise. + (trampoline_address): Likewise. + (prepare_function_start): Clear field inlinable of current_function. + (init_function_for_compilation): New function. + (expand_dummy_function_end): New function. + (expand_function_end): Call finish_expr_for_function. + * function.h (struct emit_status): New; fields moved here from struct + function and from global variables. Add accessor macros for some of + the fields. + (struct expr_status): Likewise. + (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h. + (struct function): Add fields expr and emit, inlinable, inl_emit, + original_arg_vector, original_decl_initial, inl_last_parm_insn, + inl_max_label_num. Add many comments. + Add accessor macros for all elts of struct function that no longer + have a global variable. + (cleanup_label, return_label, frame_offset, tail_recursion_label, + tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain, + stack_slot_list): Delete declarations. + (get_func_frame_size): Declare. + (save_expr_status, restore_expr_status, save_emit_status, + save_storage_status, restore_storage_status): Delete declarations. + (init_virtual_regs): Declare. + * output.h (current_function_pops_args, + current_function_returns_struct, current_function_returns_pcc_struct, + current_function_needs_context, current_function_calls_setjmp, + current_function_calls_longjmp, current_function_calls_alloca, + current_function_has_nonlocal_label, current_function_varargs, + current_function_has_computed_jump, current_function_returns_pointer, + current_function_contains_functions, current_function_args_size, + current_function_pretend_args_size, current_function_stdarg, + current_function_outgoing_args_size, current_function_args_info, + current_function_name, current_function_return_rtx, + current_function_epilogue_delay_list, + current_function_uses_const_pool, current_function_cannot_inline): + Delete declarations. + * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length, + regno_reg_rtx): Delete declaration. + (REGNO_POINTER_FLAG): Delete macro. + * stmt.c (expand_goto): Changes to reflect that some fields in struct + function were renamed. + * stor-layout.c (save_storage_status, restore_storage_status): Delete + functions. + * toplev.c: Include "function.h". + (current_function_decl): Delete declaration. + (compile_file): Call init_dummy_function_start and + expand_dummy_function_end around some initializations that need to + emit rtl. + (rest_of_compilation): Use DECL_SAVED_INSNS properly. + Call init_function_for_compilation. + * unroll.c: Include "function.h" + (unroll_loop): Access regno_pointer_* variables through + current_function. + + * tree.h (struct tree_decl): Add elt f to saved_insns member. + (DECL_SAVED_INSNS): use it. + (expand_dummy_function_end): Declare. + (init_function_for_compilation): Declare. + * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now + that it's no longer an INLINE_HEADER. + (expand_call): Likewise. + * integrate.c (finish_inline): Delete function. + (max_parm_reg, parm_reg_stack_loc): Delete declarations. + (initialize_for_inline): Delete min_labelno, max_labelno and max_reg + args. Don't generate an INLINE_HEADER rtx, just return the arg + vector. All callers changed. + (save_for_inline_copying): Create a duplicate struct emit_status to + hold the emit state for compiling the current function. Use this and + the other new fields in struct function that are for integration + instead of an INLINE_HEADER. + Use memcpy instead of bcopy. + Store the current struct function in DECL_SAVED_INSNS of fndecl. + (save_for_inline_nocopy): Similar changes, except no new emit_status + is needed here. + (expand_inline_function): Get information from function structure, + not from an inline header rtx. + (output_inline_function): Lose code to extract the necessary + information from an inline header; simply put back the function + structure into current_function. Clear its inlinable elt. + * rtl.def (INLINE_HEADER): Delete. + * rtl.h: Delete all accessors for an INLINE_HEADER. + (gen_inline_header_rtx): Delete declaration. + (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels): + Delete declarations. + (REGNO_POINTER_ALIGN): Delete. + (clear_emit_caches): Declare. + (set_new_last_label_num): Declare. + +Mon Aug 9 01:52:24 1999 Jason Merrill + + * print-tree.c (print_node): Print base for OFFSET_TYPEs. + + * except.c (expand_eh_region_start_for_decl): Always start a new block. + * stmt.c (is_eh_region): Make sure current_function is present, too. + +Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when + for 64bit PA targets. + + * pa.h (SELECT_SECTION): Define. + * som.h (SELECT_SECTION): Delete. + +Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi + + * alias.c (init_alias_analysis): Wrap call to + `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue. + +1999-08-07 Bruce Korb + + * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's + contains an asm comment with an apostrophe + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +Sat Aug 7 19:37:07 1999 Richard Henderson + + * function.c (init_function_start): Clear prologue & epilogue. + (prologue_epilogue_contains): New function. + * alias.c (init_alias_analysis): Use it. + * rtl.h (prologue_epilogue_contains): Declare it. + +Sat Aug 7 19:32:16 1999 Richard Henderson + + * jump.c (onlyjump_p): New function. + * rtl.h: Declare it. + * flow.c (delete_unreachable_blocks): Use onlyjump_p instead + of condjump_p in calling tidy_fallthru_edge and merge_blocks. + +Sat Aug 7 17:09:36 1999 Richard Henderson + + * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET + to invert loops. Simplify block scanning. + +Sat Aug 7 02:11:13 1999 Bernd Schmidt + + * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs. + (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. + +1999-08-07 Jonathan Larmour + + * config/sparc/liteelf.h: New file to support sparclite-elf target + * config/sparc/t-sp86x: New file to support sparc86x targets + * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target + * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target + * configure.in: Support above target triplets + * configure: Regenerated + +Sat Aug 7 01:39:27 1999 Philippe De Muyter + + * fixinc/server.c (server_setup): Do not prefix function used as + parameter with `&'. + +Sat Aug 7 00:21:20 1999 Richard Henderson + + * alpha.md (movhi and movqi patterns): Correct predicate for !BWX. + Remove fp reg alternatives. + +Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com) + + * Makefiin (TAROUTOPTS): Kill. + (install-headers-tar): Use "xpf" for tar headerfile extraction + * i370/x-oe (TAROUTOPTS): Delete. + * m68k/x-apollo68 (TAROUTOPTS): Delete. + * m68k/x-hp320 (TAROUTOPTS): Delete. + * m68k/x-hp320g (TAROUTOPTS): Delete. + * gcc.texi: Update bug reporting text. + +1999-08-6 Herman A.J. ten Brugge + + * reg-stack.c (change_stack) Fixed problem with negative array index. + +Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com) + + * extend.texi, install.texi: Fix spelling mistakes. + + * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete. + (s-attrtab); No longer try to use pre-made insn-attrtab file. + * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and + PREMADE_ATTRTAB_MD. + * mips/t-ecoff: Likewise. + * mips/t-elf: Likewise. + * mips/t-mips: Likewise. + * mips/t-osfrose: Likewise. + * mips/t-r3900: Likewise. + * mips/t-svr3: Likewise. + * mips/t-svr4: Likewise. + * mips/t-ultrix: Likewise. + + * gcc.texi: Document recommend means to provide software floating + point libraries in libgcc.a + +1999-08-06 Jason Merrill + + * c-lex.c (yylex): We can have a number with no digits. + +Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com) + + * jump.c (delete_prior_computation): New function, broken + out of delete_computation. Check for side effects with + side_effects_p instead of FIND_REG_INC_NOTE. Handle + multi-word hard registers. + (delete_computation): Use it. Check for side effects with + side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a + missing REG_DEAD note for a register which is both set and + used by an insn. + +Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com) + + * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete. + (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise. + (ASM_FILE_START): Import _mcount with the right type. + (ASM_DECLARE_FUNCTION_NAME): Define. + (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. + * pa.c (output_function_prologue): Always emit the function's label + here. + * pa.h (TEXT_SPACE_P): Define. + (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. + (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise. + * som.h (TEXT_SPACE_P): Delete. + (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. + (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise. + +Thu Aug 5 19:29:39 1999 Jim Wilson + + * expr.c (emit_group_load): Allow src to be a CONCAT. + +Thu Aug 5 22:27:15 1999 J"orn Rennecke + + * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop. + (___mulsi3): Use '!' comment character. + +Thu Aug 5 13:34:14 1999 Bernd Schmidt + + * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *". + +Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) + + * gcc.c: Update URLs and mail addresses. + * gcc.texi: Likewise. + +Thu Aug 5 01:14:13 1999 Daniel Jacobowitz + + * rs6000.c (current_file_function_operand): Return zero for + weak functions. + (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for + weak symbols. + * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG + for weak symbols. + +Thu Aug 5 00:56:30 1999 Geoffrey Keating + + * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always + allocate space in the stack frame for the PIC register. + +Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.md (xordi3, anddi3): These patterns are not available on + the coldfire. + +Wed Aug 4 23:39:20 1999 Mark Mitchell + + * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules. + (PUT_REAL): Likewise. + +Wed Aug 4 20:45:04 1999 J"orn Rennecke + + * final.c (shorten_branches): Don't add an alignment for loops + that have no label inside. + +Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap + prototypes in macro HAVE_cmpstrsi. + + * cpplib.c (cpp_get_token): Remove unused label `op3'. + + * emit-rtl.c (operand_subword): Remove unused variable + `bits_per_word'. + + * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'. + + * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING. + +Wed Aug 4 13:29:23 1999 Zack Weinberg + + * cpphash.c (macroexpand): Delete leading whitespace when arg + is concatenated before. + (unsafe_chars): Correct test for whether + and - can extend a + token. + + * cppinit.c (cpp_start_read): Do dependencies for + -include/-imacros files also. + + * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother + tokenizing non-directive lines. + (cpp_expand_to_buffer): Temporarily disable no-output mode. + * cppmain.c: In no-output mode, just call cpp_scan_buffer for + the input file. + +Wed Aug 4 12:53:44 1999 Jason Merrill + + * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too. + + * c-lex.c: Sync with C++ frontend. + (linemode): New variable. + (parse_float): imag, conversion_errno, and type are output only. + (yylex): Adjust. Move initial '.' case into main switch. + Use linemode. + (handle_generic_pragma): Just deal with tokens. + (readescape): Use ISXDIGIT and ISGRAPH. + * c-parse.in: Add END_OF_LINE token. + + * c-lex.c (lang_init): Generalize. + (nextchar): Remove. Replace uses with UNGETC. + (skip_white_space): Handle linemode here. Optimize for cpplib. + (skip_white_space_on_line): Remove. + (extend_token_buffer_to): New fn. + (extend_token_buffer): Use it. + (read_line_number, check_newline): Just deal with tokens. + (token_getch, token_put_back): New fns. + (yylex): Use them. More cpplib optimizations. Simplify. + +Wed Aug 4 12:53:44 1999 Michael Tiemann + Jason Merrill + + * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE. + (consume_string): Make this smart about USE_CPPLIB. + (check_newline): Rewrite to be intelligent about USE_CPPLIB. + (yylex): Rewrite to be intelligent about USE_CPPLIB. + Also, clean up cases where we redundantly set token_buffer[0]. + (read_line_number): New fn. + (ignore_escape_flag): New variable. + +Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com) + + * a29k/t-a29kbare: Fix some comments. + (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c + (FPBIT, DPBIT): Define. + * a29k/t-vx29k: Likewise. + * arc/t-arc: Likewise. + * arm/t-arm-elf: Likewise. + * arm/t-bare: Likewise. + * arm/t-pe: Likewise. + * arm/t-pe-thumb: Likewise. + * arm/t-semi: Likewise. + * arm/t-thumb: Likewise. + * arm/t-thumb-elf: Likewise. + * arm/t-thumb-linux: Likewise. + * h8300/t-h8300: Likewise. + * i960/t-i960: Likewise. + * i960/t-vxworks960: Likewise. + * m32r/t-m32r: Likewise. + * mips/t-ecoff: Likewise. + * mips/t-elf: Likewise. + * mips/t-r3900: Likewise. + * pa/t-pro: Likewise. + * rs6000/t-aix43: Likewise. + * rs6000/t-beos: Likewise. + * rs6000/t-newas: Likewise. + * rs6000/t-ppccomm: Likewise. + * rs6000/t-rs6000: Likewise. + * rs6000/t-winnt: Likewise. + * rs6000/t-xnewas: Likewise. + * rs6000/t-xrs6000: Likewise. + * sh/t-sh: Likewise. + * sparc/t-elf: Likewise. + * sparc/t-sparcbare: Likewise. + * sparc/t-sparclite: Likewise. + * sparc/t-splet: Likewise. + * v850/t-v850: Likewise. + * mn10200/t-mn10200: Fix comments. + * mn10300/t-mn10300: Likewise. + + * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new + dummy operand. Allocate a new pseudo for the dummy operand. + (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes. + + * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass. + +Wed Aug 4 11:53:55 1999 Tom Tromey + + * configure: Rebuilt. + * configure.in: Removed --enable-java-gc option and JAVAGC subst. + +Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com) + + * recog.c (preproces_constraints): Zero recog_op_alt before + processing the constraints. + + * arm.c (typedef minipool_node): Renamed from pool_node. + (minipool_vector, minipool_size, minipool_vector_label): Similarly. + (add_minipool_constant): New function. + (dump_minipool): New function. + (find_barrier): Remove special case for getting the insn size of + an insn that references the constant pool. + (minipool_fixup): New structure. + (push_minipool_barrier): New function. + (push_minipool_fix): New function. + (note_invalid_constants): New function. + (add_pool_constant, dump_table, fixit, broken_move): Delete. + (arm_reorg): Rewrite code to fix up the constant pool into a + series of mini-pools embedded in the insn stream. + (arm_output_epilogue): New function, made mainly from the body + of output_func_epilogue. + (output_func_epilogue): Move insn generation part of epilogue code + to arm_output_epilogue. + * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete. + * arm.md (pool_range): New attribute. + (zero_extendqidi2): Add attribute pool_range. + (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn, + extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr, + pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend, + movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn, + movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise. + (epilogue): New expand. + (epilogue_insn): New insn. Call arm_output_epilogue. + + * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up. + * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT. + +Mon Aug 2 19:18:44 1999 Jason Merrill + + * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +1999-08-04 Mark Elbrecht + + * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define. + +Wed Aug 4 02:15:32 1999 Richard Henderson + + * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump. + +Wed Aug 4 01:48:08 1999 Jim Kingdon + + * global.c: Fix comment. + +Wed Aug 4 01:43:01 1999 Ian Lance Taylor + + * gcc.c (access_check): New static function. + (find_a_file): Use it when searching a directory list. + * collect2.c (find_a_file): Don't accept directories found when + searching a directory list. + +Wed Aug 4 01:40:43 1999 Philippe De Muyter + + * tlink.c (symbol_hash_lookup): Do not prefix functions used as + function parameters with `&'. + (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto. + +Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (delete_unreachable_blocks): Do not call merge_blocks + or tidy_fallthru_edge if the last insn in the block is not + an unconditional jump or a simple conditional jump. + +Tue Aug 3 20:21:20 1999 J"orn Rennecke + + * Makefile.in (c-decl.o): Depends on defaults.h. + +Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for + PA1.1 and above. + (CLASS_MAX_NREGS): Likewise. + +Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Fix dumb thinko in last change. + +Tue Aug 3 10:36:13 1999 Bernd Schmidt + + * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as + "const char *". + +Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson + + * dwarf2out.c (add_location_or_const_value_attribute): Correct + test for sizes of passed and declared parameter types. + +Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi + + * fixincludes: Fix the return type of bsearch, char* -> void*. + + * fixinc/inclhack.def: Likewise. + +Mon Aug 2 18:29:32 1999 Mark Mitchell + + * invoke.texi (-fdump-translation-unit): New option. + +Mon Aug 2 17:54:19 1999 Richard Henderson + + * expr.h (PROMOTE_PROTOTYPES): Move ... + * defaults.h: ... to here. + * c-decl.c: Include defaults.h instead of expr.h. + * c-typeck.c: Include defaults.h. + +Mon Aug 2 17:10:24 1999 Mark Mitchell + + * toplev.h (errorcount): Declare. + (warningcount): Likewise. + (sorrycount): Likewise. + * c-lex.c (errorcount): Don't declare. + * dwarf2out.c (errorcount): Don't declare. + +Mon Aug 2 17:02:08 1999 Jason Merrill + + * config/libgloss.h: Add a note discouraging use with ELF. + * configure.in: Don't use libgloss.h for ELF targets. + Always use_collect2 on a.out targets. + +Mon Aug 2 16:27:42 1999 Jim Wilson + + * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt. + (force_to_mode, case ASHIFTRT): Add shiftrt label. + +Tue Aug 3 00:45:02 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + +1999-08-02 Jakub Jelinek + + * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad. + +1999-08-02 Jakub Jelinek + + * c-decl.c (get_parm_info, store_parm_decls): Change all uses of + PROMOTE_PROTOTYPES, so that it tests it as a C expression. + Ensure expr.h is included. + * c-typecheck.c (convert_arguments): Ditto. + + * expr.h: Supply default for PROMOTE_PROTOTYPES (0). + + * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1. + * config/convex/convex.h: Ditto. + * config/dsp16xx/dsp16xx.h: Ditto. + * config/fx80/fx80.h: Ditto. + * config/gmicro/gmicro.h: Ditto. + * config/i370/i370.h: Ditto. + * config/i386/i386.h: Ditto. + * config/m32r/m32r.h: Ditto. + * config/m68k/m68k.h: Ditto. + * config/m88k/m88k.h: Ditto. + * config/mips/mips.h: Ditto. + * config/pa/pa.h: Ditto. + * config/pyr/pyr.h: Ditto. + * config/tahoe/tahoe.h: Ditto. + * config/we32k/we32k.h: Ditto. + + * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES + based on arch size. + + * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0. + + * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES + from comment. + + * tm.texi: Document new usage of PROMOTE_PROTOTYPES. + +1999-08-02 Richard Henderson + + * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set + for the register spill block. + (m32r_va_arg): New. + * m32r.h (EXPAND_BUILTIN_VA_ARG): New. + (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code. + + * m32r.h (INT8_P): Don't short-cut test with (unsigned). + (INT16_P, CMP_INT16_P, UINT16_P): Likewise. + (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise. + +1999-08-02 Jakub Jelinek + + * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef + MAX_WCHAR_TYPE defined in sparc.h. + * config/sparc/linuxaout.h: Likewise. + * config/sparc/linux64.h: Likewise. + Also default to -mvis if CPU is UltraSPARC. + +1999-08-02 Jakub Jelinek + + * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro. + (RTX_OK_FOR_OLO10): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable + %lo(), allow it in addresses... + (PRINT_OPERAND_ADDRESS): ... and print it appropriately. + * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo() + does not make sense. + * config/sparc/sparc.c (sparc_hard_reg_printed): New array. + (sparc_output_scratch_registers): New function. + (output_function_prologue, sparc_flat_output_function_prologue): Use + it. + * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if + defined. + * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it. + * configure.in: Add check for .register pseudo-op support in as and + check for offsetable %lo(). + * acconfig.h: Add templates for the above checks. + * configure: Regenerate. + +1999-08-02 Richard Henderson + + * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS. + * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise. + * sparc/sol2.h (TARGET_DEFAULT): Likewise. + +Mon Aug 2 23:46:45 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + +1999-08-02 Jakub Jelinek + + * config/float-sparc.h: New file. + * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1, + sparc-*-linux-gnu and sparc64-*-linux*. + +1999-08-02 Franz Sirl + + * rs6000.c (rs6000_va_list): Type is an array. + (rs6000_va_start): Don't doubly adjust for varargs. + (rs6000_va_arg): Evaluate long long GPR adjustment. + +Mon Aug 2 16:15:57 1999 David Edelsohn + + * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of + -maix64 and -maix32. + (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC, + LINK_SPEC): Change appropriately. + * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P. + (u_short_cint_operand): Likewise. + * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support + for 64-bit hosts. + * rs6000/t-aix43 (MULTILIB): Change to -m64. + + * invoke.texi (RS/6000 Submodel): Document 64-bit processor options. + +Mon Aug 2 16:15:57 1999 Geoff Keating + + * rs6000/rs6000.c (num_insns_constant_wide): Correct + for type promotion. + (add_operand): Get test correct for 64-bit HOST_WIDE_INT. + (non_add_cint_operand): Likewise. + (logical_operand): Likewise. + (non_logical_cint_operand): Likewise. + (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT. + (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT. + (rs6000_select_rtx_section): Suppress warning. + (small_data_operand): Suppress warning. + (rs6000_got_register): Suppress warning. + * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed + type, so `J' is generally the wrong constraint for a SImode value; + use `L' instead. + (andsi3_internal2): Likewise. + (andsi3_internal3): Likewise. + (iorsi3_internal1): Likewise. + (xorsi3_internal1): Likewise. + (movsi): Likewise. + (movsf_softfloat): Likewise. + (scc insns): Likewise. + (movsi+2): Preserve sign bits of SImode constant. + (floatsidf2_internal+1): Sign-extend SImode constant correctly. + (movdf+1): Sign-extend properly. + (movdi_32+1): Sign-extend properly. + (scc insns): Sign-extend properly. + + * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J, + K, L, and T. + +1999-08-02 Richard Henderson + + * alpha.c (override_options): Move ev6 alpha_tp frobbing out of + -mcpu parsing code. + (print_operand): Notice alpha_fptm not alpha_tp for sw completion. + * alpha.md (all fp insns): Likewise. + +1999-08-02 Nick Clifton + + * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not + already defined. + +Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (legitimize_pic_address): Clarify comments. Do not call the + pic_load_label generator directly. + * pa.md (pic_load_label): Clarify comments. Remove modes on operands. + No longer a named pattern. + +Mon Aug 2 09:38:10 1999 Nick Clifton + + * explow.c (force_reg): Call force_operand if X does not + satisfy general_operand. + +Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com) + + * fix-header.c (main): When testing for CONTINUED, use string + equality, not pointer equality. + +Mon Aug 2 01:27:24 1999 Dan Nicolaescu + + * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0. + +Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Fix loop which deletes insns after a jump + that has become an unconditional jump. + + * m68k.c (output_function_prologue): Fix typo in CPU32 case. + (output_function_epilogue): Similarly. + +Sun Aug 1 20:14:00 1999 Bernd Schmidt + + * tree.h (init_dummy_function_start): Declare. + +Sun Aug 1 12:55:31 1999 Bernd Schmidt + + * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value, + last_expr_type, last_expr_value, block_start_count, block_stack, + stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack, + nesting_depth, goto_fixup_chain): Delete global vars; now allocated + dynamically in stmt elt of struct function for each function. + (struct nesting): Rename function_call_count elt to n_function_calls, + target_temp_slot_level to block_target_temp_slot_level. All users + changed. + (struct stmt_status): New structure definition. + Add many accessor macros for stmt_status elements which previously + were global variables. + (init_stmt_for_function): Allocate stmt elt for current_function. + Reflect that block_start_count was renamed to + current_block_start_count. + (save_stmt_status, restore_stmt_status): Delete functions. + (preserve_subexpressions_p): Don't access loop_stack when outside + a function. + (expand_start_bindings): Reflect that block_start_count was renamed to + current_block_start_count. + (expand_fixup): Likewise. + (expand_decl): Don't access block_stack when outside a function. + (expand_decl_cleanup): Likewise. + (expand_dcc_cleanup): Likewise. + (expand_dhc_cleanup): Likewise. + (expand_anon_union_decl): Likewise. + (set_file_and_line_for_stmt): New function. + (in_control_zone_p): New function. + + * function.h (struct function): Add new elt stmt. + Delete elts block_stack, stack_block_stack, cond_stack, loop_stack, + case_stack, nesting_stack, nesting_depth, block_start_count, + last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename, + emit_lineno, goto_fixup_chain. + (save_eh_status, restore_eh_status, save_stmt_status, + restore_stmt_status): Delete declarations. + * function.c (push_function_context_to): Don't call save_stmt_status. + (pop_function_context_to): Don't call restore_stmt_status. + * tree.h (in_control_zone_p): Declare. + * rtl.h (set_file_and_line_for_stmt): Declare. + + * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno; + call set_file_and_line_for_stmt. + +Thu Jul 31 12:34:45 1999 Joe Buck + + * gcc.texi: Use terms "GNU Compiler Collection" and "GCC". + Also update copyright. + +Sat Jul 31 11:10:07 1999 Bernd Schmidt + + * c-pragma.c: Don't include "except.h". + * emit-rtl.c: Likewise. + * stor-layout.c: Likewise. + * tree.c: Likewise. + * varasm.c: Likewise. + + * flow.c: Include "function.h". + * tree.h (init_dummy_function_start): Declare new function. + + * except.h (struct eh_status): New structure. + (struct label_node, struct eh_entry): Declare even if tree.h hasn't + been included. + (eh_return_stub_label, ehstack, catchstack, ehqueue, + catch_clauses, false_label_stack, caught_return_label_stack, + protect_list, current_function_ehc): Add accessor macros for the + corresponding fields in current_function->eh; delete declarations + for all items that used to be declared here. + * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue, + catch_clauses, false_label_stack, caught_return_label_stack, + protect_list, current_function_ehc): Delete variables. + (init_eh_for_function): Allocate current_function->eh. + (save_eh_status, restore_eh_status): Delete functions. + + * function.h (struct function): Add fields next_global and eh. + Delete all exception handling related fields. + * function.c (current_function): New variable. + (all_functions): New variable. + (push_function_context_to): Don't allocate a struct function, + use current_function instead. Call init_dummy_function_start when + outside a function. Clear current_function before returning. + (pop_function_context_from): Restore current_function. + Don't free the restored struct function. + (prepare_function_start): New function. + (init_dummy_function_start): New function. + (init_function_start): Break out some code into prepare_function_start + and call it here. + + * stmt.c (save_stmt_status): Don't call save_eh_status. + (restore_stmt_status): Don't call restore_eh_status. + + * Makefile.in: Update dependencies. + +Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead + of depending on a magic constant value. Update comments. + (hppa_expand_prologue): Similarly. + + * pa.md (reload_indi, reload_outdi): Allow any register for the + original reload register. + +Fri Jul 30 19:41:35 1999 Jim Wilson + + * cccp.c (print_help): Change marcos to macros. + +1999-07-30 Richard Henderson + + * c-typeck.c (initializer_constant_valid_p): Move ... + * c-common.c (initializer_constant_valid_p): ... here. Use + FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction + of label addresses. + * c-common.h (initializer_constant_valid_p): Declare. + * c-tree.h (initializer_constant_valid_p): Remove. + +Fri Jul 30 16:33:42 1999 Mathias Froehlich + + * config/i386/sol2-c1.asm: Align the stack. + * config/i386/sol2-gc1.asm: Likewise. + +1999-07-30 Vladimir Makarov + + * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto + -Asparclite for sparc86x. + (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for + sparc86x. + (ASM_CPU_SPEC): Use -Asparclite for sparc86x. + +Fri Jul 30 14:53:56 1999 Jakub Jelinek + + * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by + the user if using the non-default arch size in BI_ARCH configuration. + * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto. + + * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set): + Fix patterns so that they actually match. + (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero. + (mulsidi3_sp64, const_mulsidi3_sp64): New patterns. + (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on + TARGET_HARD_MUL32. + (mulsidi3): Reflect this in the expand. + (smulsi3_highpart): Only on TARGET_ARCH32. + (umulsidi3_sp64, const_umulsidi3_sp64): New patterns. + (const_umulsidi3_sp32): Renamed from const_umulsidi3. + (umulsidi3): Reflect this in the expand. + (umulsi3_highpart): Only on TARGET_ARCH32. + (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32, + don't require g0 to be zero. + (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32. + ({,u}divsi3): New expands. + ({,u}divsi3_sp64): New patterns. + (after lshrdi3_v8plus): Four new patterns to help combiner + optimizing nested mixed mode shifts. + + * config/sparc/sparc.c (sparc_override_options): Use deprecated + v8 instructions if optimizing for UltraSPARC I, II, IIi, as it + speed things up. Don't use them by default on plain v9 in 64bit + mode, according to what SPAMv9 sais. + + * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves + top 32 bits of %[og][0-7] in signal handlers. + Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32. + +Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (zvdep_imm32): Renamed from zvdep_imm. + (ashlsi3): Corresponding changes. + + * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands. + +Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (FIRST_PARM_CALLER_OFFSET): Delete. + +Thu Jul 29 19:01:58 1999 Bernd Schmidt + + * arm.h (Hint): Delete macro. + Substitute HOST_WIDE_INT for Hint in some prototypes. + * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype. + +Thu Jul 29 09:21:42 1999 Nick Clifton + + * builtins.c (expand_builtin_setjmp): Use force_operand to + make sure that the buffer address is in a suitable form to be + passed to force_reg. + +Wed Jul 28 12:50:48 1999 Geoff Keating + + * config/mips/mips.c: system.h handles MIN and MAX, don't undefine + them here. + +Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (indirect_jump): Remove mode from match_operand. Verify + proper mode in the condition string. + (icacheflush, dcacheflush): Remove modes from match_operands. + + * pa.c (emit_move_sequence): Always convert scratch_reg to the + proper mode before using it. + + * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn + pair. + + * pa.c (store_reg): Do not call add_high_const generator directly. + (load_reg, set_reg_plus_d): Likewise. + * pa.md (add_high_const): No longer a named pattern. + + * pa.c (legitimize_address): Consistently use Pmode rather than + SImode. Do not call gen_pic2_highpart directly anymore. + * pa.md (pic2_highpart): No longer a named pattern. + (pic2_lo_sum): Similarly. Reformat to make more readable. + + * pa.md (call, call_value): Use "word_mode" instead of "SImode" as + needed. + + * README: Update. + +Wed Jul 28 11:28:04 1999 Franz Sirl + + * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs. + +Wed Jul 28 11:23:48 1999 Richard Henderson + + * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set + and tag the spill mems. + (hppa_va_start): New. + (hppa_va_arg): New. + * pa.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:22:21 1999 Richard Henderson + + * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set + and tag the spill mems. + (mn10300_va_start): New. + (mn10300_va_arg): New. + * mn10300.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:20:19 1999 Richard Henderson + + * mn10200.c (mn10200_va_arg): New. + * mn10200.h (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:19:06 1999 Richard Henderson + + * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes + rather than play with TREE_INT_CST_LOW. + +1999-07-27 Philip Blundell + + * config/arm/telf.h: Include dbxelf.h. + (CPP_PREDEFINES): Only define if not already defined. + (ASM_IDENTIFY_GCC): Likewise. + (SUBTARGET_EXTRA_SECTIONS): Likewise. + (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise. + * config/arm/thumb.h (LINK_SPEC): Only define if not already + defined. + (DBX_DEBUGGING_INFO): Don't define. + * config/arm/linux-telf.h: New file. + * config/arm/linux-tgas.h: New file. + * config/arm/t-thumb-linux: New file. + * config/arm/uclinux-elf.h: New file. + * config/arm/uclinux-telf.h: New file. + * configure.in (arm-*-uclinux, thumb-*-linux-gnu, + thumb-*-uclinux): New targets. + * configure: Regenerate. + +Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (post_store, pre_load): New expanders. + (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively. + (post_ldwm, pre_stwm): Make these unnamed patterns since we never + need to directly generate RTL for them. + * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding + changes. + +Tue Jul 27 16:05:52 1999 David Edelsohn + + * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630. + * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630. + (rs6000_cpu): Choose between 32-bit and 64-bit default processors. + (secndary_reload_class): Make TARGET_ELF conditional compile. + (print_operand_address): Similar. + (output_toc): Print all values as hex. + (get_issue_rate): Rearrange and add RS64A and PPC630. + * rs6000.h (processor_type): Add RS64A and PPC630. + (PROCESSOR_POWERPC64): New. + (PROMOTE_MODE): Use word_mode. + (RTX_COSTS): Add RS64A and PPC630. + * rs6000.md (scheduling information): Add lmul and ldiv + representing 64-bit integer multiply and divide. Add rs64a and + PPC630 information. + (ashldi3): Add support for "rldic" instruction. + * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750. + +Tue Jul 27 15:31:53 1999 Vladimir Makarov + + * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE + instead of V8 for sparclite86x in cpu_table. + +Tue Jul 27 17:49:42 1999 Bernd Schmidt + + * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call + output_file_directive. + +Tue Jul 27 03:15:33 1999 Jason Merrill + + * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the + tree for op1, not the rtl. + +Tue Jul 27 00:18:34 1999 Richard Henderson + + * m88k.c (m88k_builtin_saveregs): Break out the constructor code + to m88k_va_start, leaving only the register spill. + (m88k_build_va_list): New. + (m88k_va_start): New. + (m88k_va_arg): New. + * m88k.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Mon Jul 26 19:07:11 1999 Geoff Keating + + * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs): + Rename from expand_builtin_saveregs. + * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller. + +Mon Jul 26 22:52:47 1999 Richard Henderson + + * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set + for the register spill block. + (i960_build_va_list): New. + (i960_va_start): New. + (i960_va_arg): New. + * i960.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * i960.md (store_multiple): Use change_address on individul mems. + +Mon Jul 26 22:43:12 1999 Richard Henderson + + * builtins.c (stabilize_va_list): Don't INDIRECT_REF through + an ARRAY_TYPE. + (std_expand_builtin_va_start): Back out one word if !stdarg_p. + (expand_builtin_va_end): Evaluate arg for side effects. + * c-common.c (c_common_nodes_and_builtins): Construct a + va_list_arg_type_node to handle array decomposition to pointer. + +Mon Jul 26 18:51:34 1999 Richard Henderson + + * except.c (st_dynamic_cleanup): Use force_operand on the + buffer's address. + +Mon Jul 26 16:43:26 1999 Richard Henderson + + * c4x.h (EXPAND_BUILTIN_VA_ARG): New. + * c4x.c (c4x_va_arg): New. + +Mon Jul 26 12:30:09 1999 Jason Merrill + + * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer + has manual_pop set. + +1999-07-26 Nathan Sidwell + + * eh-common.h (__eh_matcher): Prototype correctly. + +Mon Jul 26 17:24:51 1999 Philip Blundell + + * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define. + (TARGET_SINGLE_PIC_BASE): Likewise. + (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default + definitions. + (TARGET_CALLEE_INTERWORKING): Fix typo in comment. + (TARGET_SWITCHES): Add -m{no-}single-pic-base. + (TARGET_OPTIONS): Add -mpic-register=N. + (OUTPUT_INT_ADDR_CONST): New macro. + (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, + LEGITIMATE_PIC_OPERAND_P): Likewise. + (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC. + (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling + output_addr_const directly. + (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with + ARM port. + (thumb_pic_register, thumb_pic_register_string): Declare. + + * config/arm/thumb.c (symbol_mentioned_p): New function: Imported + from arm.c. + (label_mentioned_p): New function: Imported from arm.c. + (legitimize_pic_address): New function: Imported from arm.c. + (is_pic):New function: Imported from arm.c. + (thumb_finalize_pic):New function: Imported from arm.c. + (add_constant): Cope with PIC constants. + (fixit): Cope with PIC constants. + (output_return): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_function_prologue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_expand_prologue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_unexpand_epilogue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_print_operand): Accept '|'. + (thumb_override_options): Process PIC options. + + * config/arm/thumb.md (movsi): Support PIC. + (call_insn): Change "i" constraint to "X". + (call_value_insn): Likewise. + (consttable_4, consttable_8, consttable_end): Set and clear + "making_const_table" as appropriate. + (pic_load_addr, pic_add_dot_plus_four): New insns. + + * invoke.texi (Thumb Options): Fix spelling. Document new + options -msingle-pic-base and -mpic-register=. + +1999-07-26 Andrew Haley + + * config/m32r/initfini.c (__init): Use a full word immediate for + __fini: this allows it to be placed in any memory region. + + * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for + -mmodel=medium. This is OK for all memory models. + +Mon Jul 26 11:58:46 1999 Nick Clifton + + * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r. + * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r. + +Mon Jul 26 10:23:36 1999 Nick Clifton + + * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if + defined. + + * tm.texi: Document ASM_FPRINTF_EXTENSIONS. + +Sun Jul 25 23:51:59 1999 Richard Henderson + + * i860.h (EXPAND_BUILTIN_SAVEREGS): New. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * i860.c (output_delayed_branch): Disable. + (output_delay_insn): Likewise. + (i860_saveregs): New. + (i860_build_va_list): New. + (i860_va_start): New. + (i860_va_arg): New. + * i860.md: Disable all peepholes using output_delayed_branch. + * i860/sysv4.h (I860_SVR4_VA_LIST): New. + +Sun Jul 25 23:44:13 1999 Richard Henderson + + * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * clipper.c (clipper_builtin_saveregs): Only dump registers. + Return the address of the save area. + (clipper_build_va_list): New. + (clipper_va_start): New. + (clipper_va_arg): New. + +Sun Jul 25 22:56:47 1999 Richard Henderson + + * arc.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * arc.c (arc_setup_incoming_varargs): Set alias set of + varargs save area. + (arc_va_start): New. + (arc_va_arg): New. + +Sun Jul 25 22:45:55 1999 Richard Henderson + + * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * alpha.c (alpha_builtin_saveregs): Delete. + (alpha_build_va_list): New. + (alpha_va_start): New. + (alpha_va_arg): New. + +Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com) + + * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in + column zero. + (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise. + (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise. + + * gcc.texi: More changes related to list conversion. + * invoke.texi: Likewise. + +Sun Jul 25 18:15:39 1999 Richard Henderson + + * builtins.c (expand_builtin_saveregs): Remove static, remove exp + and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS. + (expand_builtin_next_arg): Accept ARGLIST not EXP. + (stabilize_va_list): New function. + (std_expand_builtin_va_start): New function. + (expand_builtin_va_start): New function. + (get_varargs_alias_set): New function. + (std_expand_builtin_va_arg): New function. + (expand_builtin_va_arg): New function. + (expand_builtin_va_end): New function. + (expand_builtin_va_copy): New function. + (expand_builtin): Call them. + * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list, + __builtin_{varargs_start,stdarg_start,end,copy}. + (build_va_arg): New function. + * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete. + (build_va_arg): Declare. + * c-decl.c (ptr_type_node, va_list_type_node): New. + * c-parse.gperf (__builtin_va_arg): New. + * c-parse.in (VA_ARG): New token. + (unary_expr): Recognize it. + * expr.c (expand_expr): Expand VA_ARG_EXPR. + * expr.h (std_expand_builtin_va_start): Declare. + (std_expand_builtin_va_arg): Declare. + (expand_builtin_va_arg): Declare. + (get_varargs_alias_set): Declare. + * tree.def (VA_ARG_EXPR): New. + * tree.h (BUILT_IN_VARARGS_START): New. + (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New. + (ptr_type_node, va_list_type_node): Declare. + * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument. + * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise. + * m88k.h, m88k.c: Likewise. + * mn10300.h, mn10300.c: Likewise. + * pa.h, pa.c: Likewise. + * rs6000.h, rs6000.c: Likewise. + * sh.h, sh.c: Likewise. + * sparc.h, sparc.c: Likewise. + + * emit-rtl.c (operand_subword): Copy alias set. + (change_address): Likewise. + +Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Scan all the used callee saved registers, + not just the first one. + +Fri Jul 23 14:09:58 1999 Philip Blundell + + * config/arm/arm.h (TARGET_SWITCHES): Add + -m{no-}single-pic-base. Correct help string for -mshort-load-words. + (TARGET_OPTIONS): Add -mpic-register=. + (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define. + (arm_pic_register_string): Declare. + (NEED_PLT_GOT): Delete, replace with ... + (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros. + (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC. + (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC. + * config/arm/arm.c (arm_override_options): Add new option + -mpic-register=N. + (arm_pic_register_string): New variable. + (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE. + (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC + register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT. + (output_return_instruction): Likewise. + * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ... + (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic. + * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT. + + * invoke.texi (ARM Options): Fix spelling. Remove duplicate + mention of -msched-prolog. Document new options -msingle-pic-base + and -mpic-register=. + +Thu Jul 22 18:23:56 1999 Richard Henderson + + * haifa-sched.c (reemit_notes): Tidy. + * sched.c (reemit_notes): Duplicate 1998-08-31 patch to + haifa's routine. + +Thu Jul 22 18:21:04 1999 Richard Henderson + + * explow.c (trunc_int_for_mode): New function. + (plus_constant_wide): Use it. + * combine.c (simplify_and_const_int): Likewise. + (merge_outer_ops): Likewise. + (simplify_shift_const): Likewise. + * cse.c (simplify_unary_operation): Likewise. + (simplify_binary_operation): Likewise. + * emit-rtl.c (operand_subword): Likewise. + * rtl.h: Declare it. + +Thu Jul 22 14:34:59 1999 Bernd Schmidt + + * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case + (use NUM_REGS instead of NUM_INTS). + +Thu Jul 22 11:25:20 1999 Bernd Schmidt + + * builtins.c: New file. + * expr.c (saveregs_value, apply_args_value): Delete definition, + moved into builtins.c. + (string_constant): No longer static. + (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin, + apply_args_size, apply_result_size, result_vector, + expand_builtin_apply_args, expand_builtin_apply, + expand_builtin_return): Delete functions, moved into builtins.c. + (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros. + * expr.h (saveregs_value, apply_args_value): Declare variables. + (expand_builtin, string_constant): Declare functions. + * Makefile.in: Update to build builtin.o. + +Wed Jul 21 00:46:58 1999 Mark P. Mitchell + + * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro. + * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it. + * dwarf2out.c (dwarf2out_init): Don't output a label to mark the + start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is + false. + * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): + Define to zero. + +1999-07-21 Michael Meissner + + * print-rtl.c (print_rtx): Print the names of the virtual + registers. + +Wed Jul 21 16:00:32 1999 Nick Clifton + + * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo + introduced in previous delta. + +Wed Jul 21 14:30:51 1999 Bernd Schmidt + + * c-lang.c (finish_file): Rename void_list_node to void_list_node_1 + to avoid name clash. + +Wed Jul 21 08:39:22 1999 Gavin Romig-Koch + + * c-lex.c (yylex) : Correct the test for overflow when lexing + integer literals. + +Tue Jul 20 18:02:42 1999 Richard Henderson + + * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa. + (adjust_priority): Always call ADJUST_PRIORITY. + (schedule_insn): Only put insns into the ready at cost 0. + (schedule_block): Remove redundant initial sort. Give clock_var + and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost + is not 0. + * tm.texi (MD_SCHED_REORDER): Update docs. + + * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE. + * sparc.c (ultra_reorder_called_this_block): Delete. + (ultrasparc_sched_init): Don't set it. + (ultrasparc_sched_reorder): Don't check it. + +Tue Jul 20 17:07:54 1999 Richard Henderson + + * rs6000.h (struct rs6000_args): Add sysv_gregno. + * rs6000.c (init_cumulative_args): Init sysv_gregno. + (function_arg_boundary): Align DFmode. + (function_arg_advance): Restructure for ABI_V4; use sysv_gregno + to get fp reg and stack overflow correct. + (function_arg): Likewise. + (function_arg_pass_by_reference): True for TFmode for ABI_V4. + (setup_incoming_varargs): Restructure for ABI_V4; use + function_arg_advance to skip final named argument. + (expand_builtin_saveregs): Properly unskip the last integer arg + when doing varargs. Adjust overflow location calculation. + + * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr + explicitly unsigned. + (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly. + (__VA_GP_REGSAVE): Similarly. + (__va_longlong_p): Delete. + (__va_arg_type_violation): New declaration. + (va_arg): Restructure. Flag promotion errors. Align double. + TFmode passed by reference. + + * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic + in the HOST_BITS_PER_WIDE_INT > 32 case. + +Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson + + * dwarf2out.c (output_abbrev_section): Terminate with a zero. + +Tue Jul 20 12:12:27 1999 Jason Merrill + + * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed. + * toplev.c (documented_lang_options): Add -fpreprocessed. + * cpplib.h (struct cpp_buffer): Add preprocessed. + * cppinit.c (cpp_handle_option): Handle -fpreprocessed. + (cpp_start_read): Don't expand macros or emit an initial #line + directive if -fpreprocessed. + +Tue Jul 20 12:12:09 1999 Michael Tiemann + + * cpplib.h (struct cpp_buffer): Added manual_pop for + better C++ tokenization. + * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop. + Also, support C++ tokenization for ->*, .*, ? operators. + * c-common.c (cpp_token): Make non-static. + +Tue Jul 20 11:24:19 1999 Bernd Schmidt + + * c-common.h: New file. + * c-common.c (permanent_obstack): Delete unused declaration. + (c_global_trees): New array. + (c_common_nodes_and_builtins): New function; split off common code + from init_decl_processing in both c-decl.c and cp/decl.c. + * c-tree.h: Delete lots of declarations of tree nodes; replaced by + c_global_trees and accessor macros defined in c-common.h. + Include c-common.h. + * c-decl.c: Delete definitions for tree nodes that were replaced by + c_global_trees. + (init_decl_processing): Build void_list_node. + Call c_common_nodes_and_builtins; delete code to generate the common + builtins here. + * objc/objc-act.c (build_module_descriptor): Rename variable + void_list_node to avoid clash with c-common.h. + + * Makefile.in: Update dependencies. + * objc/Make-lang.in: Likewise. + +Mon Jul 19 14:22:18 1999 Mark P. Mitchell + + * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P): Likewise. + (UNIQUE_SECTION): Likewise. + +1999-07-19 Linas Vepstas + + * config/i370/README: New file. + * config/i370/linux.h: New file. + * config/i370/mvs.h: New file. + * config/i370/oe.h: New file. + * config/i370/t-linux: New file. + * config/i370/t-mvs: New file. + * config/i370/t-oe: New file. + * config/i370/x-oe: New file. + * config/i370/xm-linux.h: New file. + * config/i370/xm-mvs.h: New file. + * config/i370/xm-oe.h: New file. + + * i370.c (label_node_t): Add first_ref_page, label_addr, + label_first_ref, label_last_ref members. + (mvs_need_base_reload): Renamed from mvs_label_emitted. + (MAX_MVS_LABEL_SIZE): Define. + (MAX_LONG_LABEL_SIZE): Define. + (alias_node_t, alias_anchor, alias_number): New. + (mvs_function_table): Reorder for EBCDIC. + (ascebc, ebcasc): Unconditionally define. + (i370_branch_dest, i370_branch_length): New functions. + (i370_short_branch, i370_label_scan): New functions. + (mvs_get_label): Renamed from mvs_add_label. Search for + an existing label before creating a new one. + (mvs_add_label): New function. + (mvs_get_label_page): New function. + (mvs_free_label_list): Renamed from mvs_free_label. Iterate + over the entire list. + (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR. + (mvs_check_page) [TARGET_ELF_ABI]: New function. + (mvs_add_alias, mvs_need_alias): New functions. + (mvs_get_alias, mvs_check_alias): New functions. + (handle_pragma): New function. + (mvs_function_check): New function. + (unsigned_jump_follows_p): Search harder. + (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels. + (i370_function_prolog) [TARGET_ELF_ABI]: New function. + * i370.h (TARGET_VERSION): Delete. + (CPP_SPEC, CPP_PREDEFINES): Delete. + (mvs_label_emitted): Delete. + (TARGET_EBCDIC): Delete. + (MAP_CHARACTER): Define only if TARGET_EBCDIC. + (HANDLE_PRAGMA): Define. + (HARD_REGNO_NREGS): Handle complex modes. + (HARD_REGNO_MODE_OK): Likewise. + (CLASS_MAX_NREGS): Likewise. + (RET_REG): Likewise. + (EXTRA_CONSTRAINT): Define. + (RETURN_IN_MEMORY): True for DImode. + (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT. + (FUNCTION_PROFILER): Delete. + (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P. + (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts. + (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC. + (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise. + (TARGET_VT, TARGET_FF, TARGET_CR): Likewise. + (ASM_FILE_START): Add "RMODE ANY". + (ASM_OUTPUT_EXTERNAL): Check for aliases. + (ASM_GLOBALIZE_LABEL): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_COMMON): Likewise. + (PRINT_OPERAND): Handle 'K', 'W', default. + (PRINT_OPERAND_ADDRESS): New. + (Lots of defines): Add support for TARGET_ELF_ABI. + * i370.md (attr length): New. Define for all patterns. + (*): Lots of tweeks to assembly output and constraints. + +Mon Jul 19 15:09:29 1999 David Edelsohn + + * rs6000.md (arithmetic, logical, and shift Rc combiner patterns): + Disable patterns performing SImode comparisons with SImode values + if TARGET_POWERPC64 and instruction does not sign-extend or does + not mask to narrower than SImode, i.e. where bit 31 and bit 63 may + differ for signed quantities. + (indirect_jump): Add expander to choose RTL based on TARGET_64BIT. + (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64. + (decrement_and_branch_on_count): Add 64-bit variant. + +Mon Jul 19 09:36:27 1999 Bernd Schmidt + + * final.c (output_asm_insn): When searching for the matching string + for a given dialect, don't run past the end of the list of + alternatives if there are fewer alternatives in the template than + dialects. + +1999-07-17 Alexandre Oliva + + * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org. + Removed paragraph about compression of files and size limitation, + duplicated in the FAQ. Use gcc-patches for posting patches. + * gcc.c (main): Updated URL with bug reporting instructions to + gcc.gnu.org. Removed e-mail address. + * system.h (abort): Likewise. + +1999-07-17 Kaveh R. Ghazi + + * Makefile.in (stmp-multilib-sub): Make the files extracted + from $(LIBGCC1) writable. + +Sat Jul 17 14:25:46 1999 Nick Clifton + + * config/arm/aout.h: Reformat for improved readability. + + * config/arm/arm.h: Reformat for improved readability. + Replace uses of fprintf with asm_fprintf where appropriate. + (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM + function declaration assembler actions. + (NUM_INTS): New macro: Convert from bytes to words. + (NUM_REGS): New macro: Compute number of registers required to + hold a quanitity of tyep MODE. + (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode + types. + (NUM_ARG_REGS): New macro: The number of argument registers + available. + (ARG_REGISTER): New macro: Compute the register number of the Nth + argument register. + (LAST_ARG_REGNUM): New macro: The number of the last argument + register. + (SP_REGNUM): New macro: Register number of the stack pointer. + (FP_REGNUM): New macro: Register number of the frame pointer. + (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS, + FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change + CUMULATIVE_ARGS so that it counts registers not bytes. + + * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to + TARGET_INTERWORK. + Replace uses of fprintf with asm_fprintf where appropriate. + (output_ascii_pseudo_op): Replace with version from thumb.c + + * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF. + + * config/arm/elf.h (CPP_PREDEFINES): Replace with + SUBTARGET_CPP_SPEC. + (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. + (ASM_FILE_START): Emit ASM_APP_OFF. + +Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Round frame according to + STACK_BOUNDARY rather than a hardwired value. + + * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD. + + * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead + of "1". + * configure: Rebuilt. + + * configure.in (hppa*-*-linux*): New configuration. + * configure: Rebuilt. + * pa.h (MAX_OFILE_ALIGNMENT): Delete. + * pa/som.h (MAX_OFILE_ALIGNMENT): Define. + * pa/pa-linux.h: New file. + * pa/t-linux: New file. + * pa/xm-linux.h: New file. + + * pa.c (hppa_legitimize_address): Change references from SImode to + either Pmode or word_mode as appropriate. + (emit_move_sequence, store_reg, load_reg): Likewise. + (set_reg_plus_d, hppa_expand_prologue): Likewise. + (output_mul_insn): Likewise. + * pa.h (PROMOTE_MODE): Likewise. + (INITIALZE_TRAMPOLINE): Likewise. + (Pmode): Define to word_mode. + + * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired + value of 4. Allocate 8 bytes for each FP register save. + (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired + value of 4. + (hppa_expand_prologue): Likewise. + * pa.h (PROMOTE_MODE): Likewise. + (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise. + (FUNCTION_ARG_BOUNDARY): Likewise. + + * invoke.texi (HPPA Options): Remove -mspace/-mno-space. + + * pa.c (out_of_line_prologue_epilogue): Delete. + (override_options): Remove -mspace related code. + (hppa_expand_prologue, hppa_expand_epilogue): Likewise. + (compute_frame_size): Only allocate space for register that + actually need to be saved. + * pa.h (MASK_SPACE, TARGET_SPACE): Delete. + (TARGET_SWITCHES): Remove -mspace, -mno-space + * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm + * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib. + * pa/ee.asm, pa/ee_fp.asm: Delete. + + * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define. + + * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler + directive in column zero. + +Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.c (output_function_prologue): Fix computation of save mask + when generating PIC code. + +Thu Jul 15 15:40:09 1999 Jim Wilson + + * tree.c (build_type_attribute_variant): Move current_obstack restore + after build_qualified_type call. + +1999-07-15 Mark Mitchell + + * configure.in: Use t-iris6, even with GNU LD. + * config/mips/iris6gld.h: Fix typo in linker spec. + * config/mips/t-iris6gld: Remove. + +Thu Jul 15 15:15:43 1999 David Edelsohn + + * rs6000.md (insv, extzv): Remove SImode dependence in named + patterns. Explicitly generate DImode RTL if PowerPC64 and + operand is DImode. + (insvdi): Reverse start and size in instruction template. + +1999-07-12 Joseph S. Myers + + * invoke.texi: Typo fixes. + +Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not + handle at this time instead of silently generating incorrect code. + (gen_imagpart): Likewise. + + * reload.c (find_reloads): Emit a USE for a pseudo register without + a hard register if we could not create an optional reload for the + pseudo. + +Wed Jul 14 23:45:48 1999 J"orn Rennecke + + * c-typeck.c (output_init_element, process_init_element): + When advancing constructor_unfilled_fields for a RECORD_TYPE, + check for nameless bit fields. + +Wed Jul 14 01:57:39 1999 Richard Henderson + + * regclass.c (scan_one_insn): Notice subregs that change the + size of their operand. + (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE. + +Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha*-*-*): Include alpha/t-ieee. + * configure: Rebuilt. + * alpha/t-ieee: New file. + +Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.c (find_addr_reg): Do not select r0 as an address + register. + +Tue Jul 13 00:46:18 1999 Philippe De Muyter + + * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'. + +Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (movsf): Do not force easy FP constants into memory. + + * expr.c (expand_expr, case PLUS_EXPR): Pass constants through + immed_double_const to ensure they are properly truncated then + sign extended. + +Mon Jul 12 10:40:01 1999 Vladimir Makarov + + * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block + always unless NO_DEBUG is used. Compile this code + unconditionally. + (replace_symbols_in_block): Compile it unconditionally. + +Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (i?86-*-elf*): New target. + * configure: Rebuilt. + * i386/i386elf.h, i386/t-i386elf: New files. + +Fri Jul 9 22:39:44 1999 Jason Merrill + + * toplev.c (main): Don't complain about saying -gdwarf. + (rest_of_compilation): Remove redundant code. + +Fri Jul 9 19:08:55 1999 Jim Wilson + + * unroll.c (unroll_loops): Don't delete named CODE_LABELs. + +Fri Jul 9 18:54:18 1999 Felix Lee + + * config/i960/i960.c (ret_label): Change asm label from "LR:" to + "Li960R:", to avoid name clash. + +Fri Jul 9 10:48:28 1999 Bernd Schmidt + + * loop.c (check_dbra_loop): When reversing a loop, delete all + REG_EQUAL notes referencing the reversed biv except those which are + for a giv based on it. + +Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com) + + * version.c: Drop "gcc-" prefix from version #. + +Thu Jul 8 18:06:30 1999 Jason Merrill + + * dwarf2out.c (dwarf2out_line): Emit a line number comment after + the label if we're being verbose. + +Thu Jul 8 14:18:46 1999 Richard Henderson + + * m68k.c (output_function_prologue): Add pic register to mask + if live and flag_pic. + (output_function_epilogue): Likewise. + +Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com) + + * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler + directives in column zero. + + * pa/elf.h (ASM_FILE_START): Define. + * pa/som.h (ASM_FILE_START): Include .level directives. + * pa/hpux10.h (ASM_FILE_START): Delete. + * pa/hpux11.h (ASM_FILE_START): Delete. + + * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss. + +Thu Jul 8 18:03:19 1999 J"orn Rennecke + + * reload1.c (choose_reload_regs): Never call remove_adress_replacements + when reload_out equals reload_in. + +Thu Jul 8 16:50:14 1999 Nick Clifton + + * invoke.texi (Spec Files): New node: Describe the contents of + spec files. + +Thu Jul 8 10:28:25 1999 Craig Burley + + * invoke.texi (DEC Alpha Options): Put @end table at + beginning of line, to avoid confusing texi2html. + +Thu Jul 8 09:22:06 1999 Nick Clifton + + * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo + introduced in previous delta. + +Wed Jul 7 02:00:04 1999 Franz Sirl + + * reload1.c (gen_reload): When synthesizing a 3 operand add + sequence, improve test for when to reload OP1 into the reload + register instead of OP0. + +Wed Jul 7 01:38:03 1999 Jim Wilson + + * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. + +1999-07-07 Manfred Hollstein + + * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line + string literal. + +Wed Jul 7 01:16:43 1999 Richard Henderson + + * ginclude/varargs.h (__builtin_va_alist_t): New typedef. + (va_dcl): Use __builtin_va_alist_t. + +Wed Jul 7 01:14:42 1999 Jason Merrill + + * dwarf2out.c (gen_struct_or_union_type_die): Only remember types + on the permanent_obstack. + * dwarfout.c (output_type): Likewise. + +Tue Jul 6 15:25:32 1999 Gavin Romig-Koch + + * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Merged from c-typeck.c and cp/typeck.c. + * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Merged into c-common. + +Tue Jul 6 13:06:01 1999 Dave Brolley + + * c-lex.c (errorcount): Declare it. + (finish_parse): Update errorcount when using CPPLIB. + +1999-07-06 Bruce Korb + + * fixinc/inclhack.def(end_else_label): Double the backslash so + sed gets a chance to see it. + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +Fri Jul 2 18:49:51 1999 Nick Clifton + + Add framework to support armv5 architecture when it becomes + available: + + * config/arm/arm.c (FL_ARCH5): New processor capability flag. + (arm_arch5): New variable. + (all_architectures): Add armv5 line. + * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if + -march=armv5 is specified on the command line. + (arm_arch5): Export this variable. + * invoke.texi: Document new string accepted by -march= switch for + ARM ports. + + * config/arm/arm.h: Replace use of constant 12 as a register + number with IP_REGNUM. Similarly 14 and LR_REGNUM. + * config/arm/arm.c: Replace use of constant 12 as a register + number with IP_REGNUM. Similarly 14 and LR_REGNUM. + + * config/arm/elf.h: Tidy up. + * config/arm/coff.h: Tidy up. + +Thu Jul 1 19:08:13 1999 Mark P. Mitchell + + * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld. + * gcc/config/mips/t-iris6gld: New file. + * gcc/config/mips/iris6gld.h: Likewise. + +Fri Jul 2 13:23:39 1999 Gavin Romig-Koch + + * c-decl.c (widest_integer_literal_type_node, + widest_unsigned_literal_type) : New. + (init_decl_processing): Handle/use the two new types. + * c-common.c (type_for_size,type_for_mode) : Same. + * c-lex.c (yylex) : Same. + * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Same. + * c-tree.h (widest_integer_literal_type_node, + widest_unsigned_literal_type) : New. + +Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com) + + * dwarfout.c (field_byte_offset): Correctly compute the object's + byte offset for the first bit of a field which crosses an alignment + boundary on a !BYTES_BIG_ENDIAN target. + +Fri Jul 2 01:36:36 1999 Robert Lipe + + * fixinc.svr4: Fix by deleting protos for htons and + ntohs. + +Fri Jul 2 00:46:47 1999 Richard Henderson + Jeff Law + + * ginclude/varargs.h (va_dcl): Use word_mode for type of + __builtin_va_list. + + * except.c: Include intl.h. + (expand_eh_return): Set current_function_cannot_inline. + (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label. + * function.h (struct function): Add eh_return_stub_label. + * flow.c (delete_unreachable_blocks): Don't merge across EH edges. + * Makefile.in (except.o): Depend on intl.h. + +Fri Jul 2 00:04:23 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the + same as offsettable in cases 1 and 2. + +Thu Jul 1 20:54:10 1999 Richard Henderson + + * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8). + (extlh, extwh): Likewise. + +Thu Jul 1 11:05:25 1999 Gavin Romig-Koch + + * c-lex.c (yylex): Improve 'integer constant out of range' messages. + +Wed Jun 30 16:51:41 1999 Nick Clifton + + * configure.in: Add arm-pe and thumb-pe targets. + * configure: Regenerate. + + * thumb.c (arm_naked_function_p): New function: Determines if + a function is naked (has no gcc generated prologue/epilogue). + (is_called_in_ARM_mode): Return true if the func has the + interfacearm attribute. + (output_return): Do not generate a return for naked functions. + (thumb_function_prologue): Do not generate a prologue for + naked functions. + (thumb_expand_prologue): Do not generate a prologue for naked + functions. + (thumb_expand_epilogue): Do not generate an epilogue for naked + functions. + (arm_valid_machine_decl_attribute): New function, copied from + arm.c: Permit naked and interfacearm attributes. + + * config/arm/pe.c: New file: Support code for arm-pe target. + * config/arm/pe.h: New file: Header file for arm-pe target. + * config/arm/tpe.h: New file: Header file for thumb-pe target. + * config/arm/t-thumb-pe: New file: Makefile fragment for + thumb-pe target. + +1999-07-01 Mark Kettenis + + * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if + -fPIC or -fpic is specified. + +Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (emit_block_move): Use copy_to_mode_reg for + !TARGET_MEM_FUNCTIONS case too. + + * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as + appropriate. + * configure: Rebuilt. + (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default. + * pa.h: Include dbxelf.h. Delete various dbx/stabs related + definitions made redundant by dbxelf.h inclusion. Delete + lots of definitions related to assembly output that are + specific to the SOM object format. + * pa.c (output_function_prologue): Do not emit the function's + name for OBJ_ELF. + * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining. + * pa-pro.h: Deleted. + * som.h: New file with SOM specific definitions. + * elf.h: New file with ELF specific definitions. + + * elfos.h (const_section): Output a tab before assembler directives. + (ctors_section, dtors_section): Likewise. + (ASM_OUTPUT_SECTION_NAME): Likewise. + + * pa/pa1.h: Delete unused file. + +Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa*-hp-hpux11*): New configuration. + * configure: Rebuilt. + * pa/pa-hpux11.h: New file. + * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp + command line. + + * mips.md (leasi, leadi): New patterns. + + * expr.c (emit_block_move): Properly handle case where one of the + block move arguments has a queued increment or decrement. + (clear_storage): Similarly. Fix formatting goof. + +1999-06-28 "David O'Brien" + + * fixinc/inclhack.def(stdio_va_list): This patch Removes a + semicolon from the BSD VA_LIST replacement expression. + + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + + * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines + now use the fixincl program. + +Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA + case. Also make the PIC register call_used. + + * m68k.h (FINALIZE_PIC): Delete. + * m68k.c (finalize_pic): Delete. + +Mon Jun 28 05:16:35 1999 Richard Henderson + + * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles + to memory. + +Mon Jun 28 04:07:27 1999 David Edelsohn + + * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note. + +Sun Jun 27 02:39:08 1999 Richard Henderson + + * jump.c (jump_optimize_1): Validate the cmov copy to a temporary. + +Sat Jun 26 17:18:18 1999 David Edelsohn + + * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output. + +Fri Jun 25 11:33:24 1999 Richard Henderson + + * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4. + +Fri Jun 25 13:41:25 1999 David Edelsohn + + * rs6000.c (output_toc): Always use hex values for floating-point + constants. Store single-precision values in upper-half of TOC + entry in 64-bit mode. + * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64 + to final constraints. + (fix_truncdfsi2 splitter): Change pattern matching fctiwz. + (fctiwz): Improve accuracy of RTL for pattern. + +Fri Jun 25 11:26:38 1999 Gavin Romig-Koch + + * expr.c (expand_expr): Allow RTL_EXPR's through the + MAX_INTEGER_COMPUTATION_MODE checks. + +Fri Jun 25 06:06:37 1999 Richard Henderson + + * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define + such that MASK_SUPPORT_ARCH is not negative. + +Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (verify_dominator): Properly handle ADDR_VEC and + ADDR_DIFF_VEC insns that appear inside loops. + +Thu Jun 24 22:54:05 1999 David Edelsohn + Jeff Law + + * rs6000.md (movdf_hardfloat32): Revert previous patch. + Handle LO_SUM the same as offsettable in cases 1 and 2. + * rs6000.c (find_addr_reg): Revert previous patch. + +Thu Jun 24 22:43:12 1999 Philippe De Muyter + + * system.h (strstr): New external function declaration. + * acconfig.h (NEED_DECLARATION_STRSTR): New define slot. + * configure.in (GCC_NEED_DECLARATIONS): Check for strstr. + * config.in, configure: Rebuilt. + +1999-06-24 Tom Tromey + + * gcc.c (main): Read user-specified specs files after computing + additional startfile_prefixes. + +Thu Jun 24 15:00:47 1999 Mark Mitchell + + Revert these two patches: + + Thu Jun 17 21:34:24 1999 J"orn Rennecke + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + + Thu Jun 17 17:22:07 1999 J"orn Rennecke + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + (recombine_givs): Set ix field after sorting. + +Wed Jun 23 21:26:00 1999 J"orn Rennecke + + * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p + for the parts of an UNSPEC / UNSPEC_VOLATILE. + +1999-06-23 Bruce Korb + + *fixinc/inclhack.def: Add fix development commentary + (read_ret_type): reactivate and add selection clause + (zzz_*): tweak output file name to match what is used in hackshell.tpl + *fixinc/{fixincl.x|inclhack.sh}: regen + +Wed Jun 23 00:48:21 1999 Jason Merrill + + * expr.c (expand_expr): STRIP_NOPS before checking against + MAX_INTEGER_COMPUTATION_MODE + (check_max_integer_computation_mode): Likewise. + +Tue Jun 22 20:23:43 1999 Jim Wilson + + * md.texi (smul@var{m}3_highpart): Add missing 's' prefix. + +1999-06-22 Jim Wilson + + * expr.c (store_expr): When target is a promoted subreg, return a + promoted subreg as a result. + +Tue Jun 22 17:14:58 1999 Michael Meissner + + * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU + coding standards. + (dwarf2out_define): Mark unused parameters appropriately. + (gen_unspecified_parameters_die): Ditto. + (gen_subprogram_die): Fix signed/unsigned warnings. + (gen_variable_die): Ditto. + +1999-06-22 Bruce Korb + + * fixinc/inclhack.def(end_else_label): combined else_label + and endif_label and fixed the sed expression. + *fixinc/{fixincl.x|inclhack.sh}: regen + +Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting + 'x' when handling non-offsettable addresses + +Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com) + + * final.c (shorten_branches): Don't try to split an insn that has + been deleted. + +Mon Jun 21 12:47:39 1999 Mark Mitchell + + * config/mips/mips.c (symbolic_expression_p): New function. + (mips_select_rtx_section): Put symbolic expressions in the + data section, not the read-only data section. + +Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (find_addr_reg): Handle LO_SUM addresses. + +Mon Jun 21 20:10:42 1999 Richard Henderson + + * collect2.c (main): Log frame table count. + (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. + (scan_prog_file) [COFF]: Handle frame tables. + + * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. + * alpha/elf.h: Undef them again. + * alpha/vms.h: Remove their definitions. + +Tue Jun 22 03:17:53 1999 J"orn Rennecke + + * sh.c (machine_dependent_reorg): When fixing up fp pcloads, + remove the clobber of r0 and change the REG_UNUSED note to + REG_INC. + +1999-06-21 Jakub Jelinek + + * real.c (ereal_from_double): Fix for 64-bit big endian hosts. + * emit-rtl.c (gen_lowpart_common): Add case for hosts where double + fits in HOST_WIDE_INT and one uses union to access a long constant + as double. + +Mon Jun 21 17:18:25 1999 Richard Henderson + + * sparc.c (sparc_override_options): Don't allow profiling for + code models other than medlow. + (sparc_function_profiler): New function from old FUNCTION_PROFILER + macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION. + (sparc_function_block_profiler): Likewise. Use user_label_prefix. + (sparc_block_profiler): Likewise. + (sparc_function_block_profiler_exit): Likewise. + * sparc.h (FUNCTION_PROFILER): Call new sparc.c function. + (FUNCTION_BLOCK_PROFILER): Likewise. + (BLOCK_PROFILER): Likewise. + (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. + (MCOUNT_FUNCTION): New. + * sparc/pbd.h (FUNCTION_PROFILER): Delete. + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. + * sparc/sun4o3.h (FUNCTION_PROFILER): Delete. + (MCOUNT_FUNCTION): New. + * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete. + (BLOCK_PROFILER): Delete. + (MCOUNT_FUNCTION): New. + +Mon Jun 21 14:11:29 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Fix typo in case 2. + +Mon Jun 21 12:27:17 1999 Vladimir Makarov + + * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Add the macros. + + * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + + * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + + * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + +Mon Jun 21 14:58:42 1999 Nick Clifton + + * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu + types. + +Mon Jun 21 06:22:21 1999 Mark Elbrecht + + * i386/djgpp.h (LIB_SPEC): New. + (STARTFILE_SPEC): New. + + * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete. + +Mon Jun 21 06:19:33 1999 Philippe De Muyter + + * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in + compiler flags. + + * system.h (WSTOPSIG): New macro. + +Mon Jun 21 05:33:15 1999 Mumit Khan + + * c-pragma.c (push_alignment): Don't ignore alignments greater than + 4 bytes. + (insert_pack_attributes): Take into account member natural + alignment. + + * i386/winnt.c (exports_head): New static variable. + (i386_pe_record_exported_symbol): New function. + (i386_pe_asm_file_end): Use. + * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported + symbols to be emitted at end of assembly. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + + * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and + -iwithprefix. + +Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced + in last change. + +Sun Jun 20 17:27:20 1999 Richard Henderson + + * haifa-sched.c (sched_analyze_1): Use free_list instead of + zapping reg_last_uses directly. + (sched_analyze_2, sched_analyze_insn): Likewise. + (sched_analyze): Likewise. Don't clear reg_last_uses on calls. + +Sun Jun 20 16:57:29 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Use worst case insn length + attributes for cases 1 and 2. + +Sat Jun 19 22:52:55 1999 Richard Henderson + + * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered + instead of set. + +Sat Jun 19 05:40:07 1999 Philip Blundell + + * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN. + +Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use + PIC_OFFSET_TABLE_REGNUM for general alloaction. + (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register + must be stacked if it is used for PIC accesses. + * arm.c (use_return_insn): Handle PIC register specially. + (output_return_instruction): Likewise. + (output_func_{prologue,epilogue}): Likewise. + (output_expand_prologue): Likewise. + + * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf. + (*strsi_predec): Renamed from *strqi_predec. + (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc. + (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec. + + * arm.c (arm_override_options): Remove warning about PIC code + not being supported. + +Fri Jun 18 23:47:06 1999 David Edelsohn + + * rs6000.c (find_addr_reg): New function. + * rs6000.h (find_addr_reg): Declare. + (offsettable_addr_operand): Delete. + * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads + from and stores to GPRs. + +Fri Jun 18 15:44:18 1999 Richard Henderson + + * alpha.c (alpha_expand_block_move): Use get_insns rather than + gen_sequence as argument to emit_no_conflict_block. + +Fri Jun 18 07:02 1999 Bruce Korb + + * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX + * fixinc/inclhack.def(dgux_int_varargs): script must end with \n + *fixinc/fixincl.x: regen + *fixinc/inclhack.sh: regen + +Thu Jun 17 15:06:10 PDT 1999 Don Lindsay + + * added support for -mpcrel (PC relative addressing for m68k) + based on code done by Michael Tiemann . + * invoke.texi (m68000 options): Add documentation for -mpcrel flag. + * m68k.c (print_operand_address): Handle 32-bit PIC case. + (comments for general_src_operand): Add some explanation + about EXTRA_CONSTRAINTS. + (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel. + * m68kelf.h (OVERRIDE_OPTIONS): Ditto. + (LEGITIMATE_PIC_OPERAND_P): Fix typo. + (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case. + * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o. + (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro. + (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic + if not already set. + (OVERRIDE_OPTIONS): Merge in changes from m68k.h. + * m68k.h (TARGET_PCREL): New target flag. + (TARGET_SWITCHES): Add "pcrel" as a recognized switch. + (OVERRIDE_OPTIONS): Add checks for -mpcrel. + (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that + contains a SYMBOL_REF. Relax this constraint during reload, since + we want to use the predicates, not reload's built-in concept of a + valid memory address, to control what insns need reloading. + (EXTRA_CONSTRAINT): Define constraints to accept pc-relative + operands (essentially 'g', 'm', and 's' under normal circumstances). + * m68k.c (print_operand): Cause printing of pc-relative addresses + to include pc register. + (print_operand_address): Ditto. + (general_src_operand): Accept operands that are not only + general_operands, but are also valid when used as a pc-relative + source. + (nonimmediate_src_operand): Similar, for nonimmediate_operands. + (memory_src_operand): Similar, for memory_operands. + (pcrel_address): New predicate to accept the special case of a + pc-relative address. + * m68k.md (many patterns): Rewrite common SImode, HImode, and + QImode insns to accept *_src_operand instead of *_operand where + pc-relative operands can fit. For example, a pc-relative operand + can be used as a memory source operand for addsi3, but not as a + memory destination. + * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h. + +Fri Jun 18 09:11:07 1999 Nick Clifton + + * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe + .thumb_set pseudo op to mark aliases of thumb functions. + +Wed Jun 16 18:19:13 1999 Nick Clifton + + * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in + preference to ASM_OUTPUT_DEF, if it is defined. + + * tm.texi: Document new, optional target macro + ASM_OUTPUT_DEF_FROM_DECLS. + +Thu Jun 17 15:07 1999 Bruce Korb + + * fixincludes: ISCNTL patch + * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL(). + (dgux_int_varargs): new for DG/UX + * fixinc/{fixincl.x,inclhack.sh}: Regenerated. + +Thu Jun 17 21:34:24 1999 Jeff Law + + * invoke.texi (ia32 options): Fix typo. + +Thu Jun 17 21:34:24 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + +Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (move_movables): Note issues with replacing REGs with + SUBREGs. + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly. + +Thu Jun 17 13:28:30 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): Fix typo. + + * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and + the reference to `mcount' was not correct for the ELF on FreeBSD. + +Thu Jun 17 17:22:07 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + + (recombine_givs): Set ix field after sorting. + +Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (operand_subword): Tighten checks for when it is safe + to safe to extract a subword out of a REG. + +Thu Jun 17 01:45:24 1999 J"orn Rennecke + + * sh.md (mulsi3): Don't add a no-op move at the end. + +Wed Jun 16 20:29:00 1999 J"orn Rennecke + + * cse.c (cse_insn): Don't put hard register source into tables for + the last insn of a libcall. + +Wed Jun 16 19:44:33 1999 J"orn Rennecke + + * loop.c (strength_reduce): Insert sets of derived givs at every + biv increment, even if it's the only one. + +Wed Jun 16 10:33:02 1999 Jason Merrill + + * dwarfout.c (add_incomplete_type): New fn. + (output_type): Call it. + (retry_incomplete_types): New fn. + (dwarfout_finish): Call it. + + From Eric Raskin : + (output_type): Output types for bases. + +Tue Jun 15 12:51:23 1999 Alexandre Oliva + + * mips.c (mips_output_conditional_branch): Add `break' + between `default' label and `close braces'. + +Tue Jun 15 01:55:20 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library + specifications and make it realistic. + (LIB_SPEC): Likewise. + +Mon Jun 14 15:38:43 1999 Jim Wilson + + * config/mips/mips.c (mips_secondary_reload_class): Check for + (PLUS (SP) (REG)) and return appropriate register class. + * config/mips/mips.md (reload_insi): Delete predicate for operand 1. + Handle (PLUS (SP) (REG)). + (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn. + (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead + of emit_insn for tablejump. + +Mon Jun 14 17:26:40 1999 David Edelsohn + + * rs6000.c (output_prolog): RS6000_CALL_GLUE must be + asm_fprintf format string by itself. + (output_function_profiler): Likewise. + +Mon Jun 14 12:57:38 1999 David Mosberger + + * combine.c (simplify_logical, case AND): Only call + simplify_and_const_int if the mode is no wider than HOST_WIDE_INT + or the constant is positive. + +Mon Jun 14 11:43:41 1999 Nick Clifton + + * configure.in: Fix typo in rs6000-ibm-aix4 case. + * configure: Regenerate. + +Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not + require a sub-version #. + * configure: Rebuilt. + +1999-06-14 Robert Lipe (robertlipe@usa.net) + + * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition. + +Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell + + * c-typeck.c (process_init_element): Detect excess elements in + char array initializer. + +1999-06-14 Andreas Jaeger + + * gcc.texi: Mention gcc 2.96 instead of egcs 1.00. + +Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn + + * invoke.texi (Option Summary): Add -fpermissive flag. + +Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands + that require PIC code sequences. + +Wed Jun 9 16:29:01 1999 Nick Clifton + + * configure.in: Add new target: thumb-elf. + * configure: Regenerate. + * config/arm/t-thumb-elf: New file: Makefile fragment for + thumb-elf build. + * config/arm/telf.h: New file: Header file for thumb-elf + build. + +Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument. + * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide + initializers is some circumstances. + + * fixinc/inclhack.def (endif_label): Add additional selector for + more bogus stuff after #endif statements. + * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. + +Thu Jun 10 20:44:36 1999 Mumit Khan + + * i386/cygwin.h (SET_ASM_OP): Define. + +Thu Jun 10 20:37:57 1999 Mumit Khan + + * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. + +Thu Jun 10 19:23:00 1999 J"orn Rennecke + + * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the + latter. + + * sh.md (ic_invalidate_line_i): Remove second alternative. + +Thu Jun 10 06:55 1999 Bruce Korb + + *fixinc/inclhack.def(sun_auth_proto): We do not know how to + test for the presence of valid prototypes. Delete bypass expr. + (ioctl_fix_ctrl): Correct the selection expression. + (no_double_slash): Correct quoting rules + *fixinc/fixincl.x: regen + *fixinc/inclhack.sh: regen + +Thu Jun 10 15:08:15 1999 Nick Clifton + + * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t. + +Wed Jun 9 15:57:57 1999 Franz Sirl + + * rs6000.md (movsi_got_internal_mem): Delete. + * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM. + (GOT_TOC_REGNUM): Delete. + (PIC_OFFSET_TABLE_REGNUM): Define. + (FINALIZE_PIC): Disable. + * rs6000.c (rs6000_got_register): New code for fixed pic register. + (rs6000_replace_regno): Delete. + (rs6000_finalize_pic): Likewise. + (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM. + +Wed Jun 9 19:44:26 1999 J"orn Rennecke + + * loop.c (loop_insn_first_p): Don't compare LUIDs when P + is a note; use <= for the compare; advance P while it is + a NOTE. + +Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (no_double_slash): Fix quoting for test. + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. + + * varasm.c (remove_from_pending_weak_list): Verify t->name + is non-NULL before passing it to strcmp. + +Wed Jun 9 06:50 1999 Bruce Korb + + *fixinc/inclhack.def(sun_auth_proto): bypass the patch if + the typed arguments are not part of a comment + (ioctl_fix_ctrl): Added a purpose comment + *fixinc/fixincl.x: regenerate + *fixinc/inclhack.sh: regenerate + +Wed Jun 9 22:57:02 1999 Michael Hayes + + * invoke.texi: Add C4x invocation docs. + +Wed Jun 9 22:34:38 1999 Michael Hayes + + * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS): + Define new macros. + * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use + TARGET_EXPOSE_LDP. + (c4x_legitimize_reload_address): New function. + * config/c4x/c4x.md: Update docs. + +Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com) + + * fixincludes: Avoid removing '.'. + * fixinc/fixinc.svr4: Likewise. + * fixinc/fixinc.winnt: Likewise. + * fixinc/inclhack.tpl: Likewise. + * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt. + +1999-06-09 Kaveh R. Ghazi + + * fixinc/inclhack.def (sun_catmacro): Escape parens in the select + pattern. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Wed Jun 9 03:10:34 1999 Mumit Khan + + * c-pragma.c (handle_pragma_token): Handle `#pragma pack()' + correctly. + +Tue Jun 8 13:06:15 1999 Jim Wilson + + * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000. + * configure: Regenerate. + +Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) + + * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute + values. + +Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (avoid_bool): Also catch + "typedef [unsigned] int bool". + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. + + * m68k/x-hp3bsd44: Delete obsolete and incorrect file. + * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44. + * configure: Rebuilt. + +Mon Jun 7 22:05:03 1999 Mark Kettenis + + * config/i386/gnu.h: Include right after , + such that we can override its definitions if necessary. + (CPP_SPEC): New define. Support processor specific predefines via + %(cpp_cpu). + (CC1_SPEC): New define. Support processor specific compiler + options via %(cc1_cpu). + (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for + -static. + +1999-06-07 Kaveh R. Ghazi + + * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace + between sed's -e flag, and the open-quote following it. + * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. + +Mon Jun 7 20:34:20 1999 Robert Lipe + Jeffrey A Law (law@cygnus.com) + + * varasm.c (assemble_start_function): Remove the function + from the pending weak decls list when we define a function. + (assemble_variable): Similarly for variables. + (weak_finish): Ignore items on the list with a NULL name. + (remove_from_ending_weak_list); New function to "remove" an item + from the pending weak declarations list. + +Mon Jun 7 19:27:07 1999 Jerry Quinn + + * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns. + +Mon Jun 7 14:07:39 1999 Dave Brolley + + * c-lex.c (GETC): Redefine to call getch. + (UNGETC): Redefine to call put_back. + (putback_buffer): New structure type. + (putback): New static structure. + (getch): New function. + (put_back): New function. + (yylex): Replace unused bytes from bad multibyte character. + +Mon Jun 7 13:33:39 1999 Dave Brolley + + * cpplib.c (do_define): Cast `alloca' return value. + (do_include, do_undef, do_pragma): Likewise. + * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return + values. + * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values. + * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value. + +Sun Jun 6 11:58:34 1999 Jakub Jelinek + + * sparc.md (abstf2): This should be an expand. + (split after abstf2_notv9): Fix mode. + (abstf2_hq_v9): New pattern. + (abstf2_v9): Only use when no hard quad. + (absdf2_v9): Fix if target is not the same as source. + (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2): + Add correct output constraints. + +Sat Jun 5 17:04:16 1999 Craig Burley + + From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100: + * invoke.texi: Clarify text vis-a-vis Intel CPUs. + +Sat Jun 5 12:11:24 1999 Mark Mitchell + + * mips.h (mips_output_conditional_branch): New function. + (mips_adjust_insn_length): Likewise. + (ASSEMBLER_SCRATCH_REGNUM): New macro. + (ADJUST_INSN_LENGTH): Likewise. + * mips.c (print_operand): Add `F' and `W' for floating-point + comparison opcodes. + (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths + are now in bytes. + (mips_adjust_insn_length): New function. + (mips_output_conditional_branch): New function. + * mips.md (length): Adjust attribute definition to handle + conditional branches. Change lengths to bytes, rather than + instructions throughout. Remove length attribute from + instructions whose length is four bytes, and rely on the default + instead. + (dslot): Fix typo in comment. + Reword conditional branch patterns to use + mips_output_conditional_branch. + +Fri Jun 4 13:30:27 1999 Rainer Orth + + * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads. + (LIB_SPEC): Likewise. + Link with -lprof1_r for -g/-pg. + +1999-06-04 Andreas Schwab + + * loop.c (check_dbra_loop): Fix change of Jan 19. + +Fri Jun 4 00:12:40 1999 Marc Espie + + * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define. + (STARTFILE_SPEC): Define, override the svr4.h version. + (ENDFILE_SPEC): Likewise. + +Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h + * fixinc/fixincl.x: Regenerated. + * fixinc/inclhack.sh: Regenerated. + +Fri Jun 4 05:42:23 1999 J"orn Rennecke + + * sh.c (barrier_align): Don't return early for normal branch/barrier + when optimizing for SH2. + +Thu Jun 3 22:27:50 1999 Robert Lipe + + * i386/udk.h (LINK_SPEC): Correct linker search path for + system libraries. + +Fri Jun 4 03:20:40 1999 J"orn Rennecke + + * sh.c (fixup_addr_diff_vecs): Emit braf reference label. + (braf_label_ref_operand): Delete. + * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. + * sh.md (casesi_jump_2): Operand1 is now the inside of a + label_ref, and has no predicate. + The patten has a predicate to guard against invalid substitutions. + (dummy_jump): Delete. + (casesi): Update use of casesi_jump_2. + +Thu Jun 3 07:48 1999 Bruce Korb + + *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression + *fixinc/fixincl.x: regenerate + *fixinc/inclhack.sh: regenerate + +Thu Jun 3 02:15:07 1999 Jason Merrill + + * dwarf2out.c (add_incomplete_type): New fn. + (gen_struct_or_union_type_die): Call it. + (retry_incomplete_types): New fn. + (dwarf2out_finish): Call it. + +Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (insert_insn_end_bb): Correct placement of insns when the + current block starts with a CODE_LABEL and ends with a CALL and + we can not find all the argument setup instructions for the CALL. + +Wed Jun 2 15:44:15 1999 Mark Mitchell + + Revert this change: + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. + +Wed Jun 2 21:53:05 1999 J"orn Rennecke + + * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. + +Wed Jun 2 12:25:55 1999 Richard Henderson + + * alpha.c (override_options): Thinko in last patch. + + * alpha/osf.h (CPP_SUBTARGET_SPEC): Define. + (LIB_SPEC): Recognize -pthread. + +Wed Jun 2 08:42:55 1999 Nick Clifton + + * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with + definition in config/arm/coff.h + * config/arm/coff.h: Add comment about USER_LABEL_PREFIX. + +Wed Jun 2 07:07 1999 Bruce Korb + + * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark + fixes that need "file=xxx\n" prepended before invocation + (start_fixer - new): starting the fixer process is complex enough + to warrent its own routine. It prepends the "file=xxx\n" stuff. + (process): uses the new routine; omit usage of putenv() + * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT + * fixinc/fixincl.x: regenerate + +Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com) + + * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc) + and version #s (1.1 -> 2.96) as needed. + * README.g77: Kill way out of date file in the toplevel directory. + +Wed Jun 2 00:52:34 1999 David O'Brien + + * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h, + i386/freebsd-elf.h no longer requires it. Instead include svr4.h. + * configure: Rebuilt. + * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define. + (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise. + (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise. + (SWITCH_TAKES_ARG): Likewise. + * i386/freebsd.h: Remove FREEBSD_NATIVE support. + * config/t-freebsd: Moved from config/i386/ so it can used for all + FreeBSD targets. + +Mon May 31 02:22:55 1999 Philippe De Muyter + + * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o. + +Wed Jun 2 00:08:34 1999 Robert Lipe + + * configure.in (i[34567]86-*-udk*): Install headers with cpio. + * configure: Rebuilt. + +Tue Jun 1 19:06:22 1999 David Edelsohn + + * rs6000/aix41.h (RS6000_CALL_GLUE): Define. + * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise. + * rs6000/rs6000.c (rs6000_file_start): Use putc. + (rs6000_output_load_toc_table): Same. + (output_prolog, output_mi_thunk): Same. + * rs6000/rs6000.h (SELECT_SECTION): Formatting. + (ASM_GLOBALIZE_LABEL): Use putc. + +Mon May 31 15:23:23 1999 Richard Henderson + + * alpha.md (reload_*_help): New patterns and splitters. + (reload_*): Use them. + (mov[qh]i): Likewise. + +Mon May 31 11:48:07 1999 Mark Mitchell + + * cccp.c (handle_directive): Handle backslash-newlines in quoted + strings correctly. + +Mon May 31 09:36:11 1999 Cort Dougan + + * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. + +Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com) + + * flow.c (mark_regs_live_at_end, insn_dead_p, + mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM + and HARD_FRAME_POINTER_REGNUM special treatment if reload + hasn't run or the frame pointer is needed. + * haifa-sched.c (attach_deaths): Likewise. + * sched.c (attach_deaths): Likewise. + +Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): Only set CAN_REACH_END if + calculate_can_reach_end returns nonzero. + + * configure.in (native gas tests): Search for an assembler in the + same manner that the installed compiler will. + * configure: Rebuilt. + * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too. + + * alias.c (find_base_term): Improve handling of addresses + constructed from binary operations. + +Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com) + + * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces. + +Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com) + + * function.h (cleanup_label, frame_offset): Declare. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. + * stmt.c (cleanup_label, frame_offset): Delete extern declarations. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. + +Sat May 29 19:08:10 1999 Philip Blundell + + * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already + defined. + * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define. + (MAX_OFILE_ALIGNMENT): Define. + +Fri May 28 21:40 1999 Robert Lipe + + * fixincl.c: Replace local include scheme with #includes of + gansidecl.h and system.h. + * procopen.c: Likewise. + * server.c: Likewise. + +Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com) + + * i386/t-dgux (EXTRA_PARTS): Add crti.o + (crti.o): Add build rule and dependencies. + * fixinc/fixinc.dgux: Use modified _int_varargs.h + +Fri May 28 03:41:02 1999 Franz Sirl + + * rs6000/sysv4.h (CC1_SPEC): Add support for -profile + (LIB_LINUX_SPEC): Likewise. + (LIB_LINUX_SPEC): Add support for -pthread + (CPP_OS_LINUX_SPEC): Likewise. + (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are + specified. + +Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org) + + * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for + conditional move. + (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support. + (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison + for IEEE math and CC_FCOMI. + (put_jump_code): No IEEE if CC_FCOMI is set. + +1999-05-27 Andreas Schwab + + * fold-const.c (fold_truthop): Make the field reference unsigned + when converting a single bit compare. + +Thu May 27 02:40:48 1999 J"orn Rennecke + + * loop.c (strength_reduce): Don't do biv->giv conversion on constants. + +Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com) + + * varasm.c (STRIP_NAME_ENCODING): Remove default definition. + * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm + version did. + + * reload.c (push_reload): Do not call remove_address_replacements + when presented with identical optional reloads. + +Wed May 26 14:18:05 1999 Richard Henderson + + * alpha.h (MASK_FIX, TARGET_FIX): New. + (MASK_*): Reorganize constants. + (CPP_AM_FIX_SPEC): New. + (TARGET_SWITCHES): Add FIX. + (EXTRA_SPECS): Likewise. + (CPP_CPU_EV6_SPEC): Use FIX, not CIX. + (SECONDARY_MEMORY_NEEDED): Likewise. + (REGISTER_MOVE_COST): Likewise. + * alpha.c (override_options): Add FIX support. Always use + ALPHA_TP_PROG for ev6. + * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX. + * alpha/elf.h (ASM_FILE_START): Look at FIX too. + * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX. + +Wed May 26 09:53:05 1999 Mark Mitchell + + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. + +Wed May 26 09:40:02 1999 Mark Mitchell + + * gcc.texi (Passes): Document branch-shortening. + * invoke.texi (Debugging Options): Document the fact that `-dp' + outputs length information for instructions. + +Wed May 26 08:49:31 1999 Nick Clifton + + * flow.c: Revert previous delta. + +Wed May 26 06:05:10 1999 Nick Clifton + + * flow.c (insn_dead_p): Check against frame_pointer_rtx not + FRAME_POINTER_REGNUM. + (mark_set_1): Ditto. + (mark_used_regs): Ditto. + +Wed May 26 02:19:31 1999 Philip Blundell + + * arm.h (NEED_PLT_GOT): Fix mistake in last change. + (GOT_PCREL): New macro. Define to 1 if not already defined. + * arm/elf.h (GOT_PCREL): Define to 0. + * arm.c (arm_finalize_pic): Take into account the setting of + GOT_PCREL. + +Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com) + + * output.h (STRIP_NAME_ENCODING): Provide default definition. + * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING. + + * flow.c (mark_set_1): Do not record BLKmode stores as dead + store elimination candidates. + +Tue May 25 08:55:57 1999 Gavin Romig-Koch + + * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if + TARGET_GAS. + +Mon May 24 20:30:08 1999 Jim Wilson + + * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. + Add use of x-aix41-gld. + +Mon May 24 16:44:09 1999 Jakub Jelinek + + * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + +Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the + last CODE_LABEL in a loop if we have previously passed a jump + to the top of the loop. + +Mon May 24 07:56:29 1999 Nick Clifton + + * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when + applying Philip's patch. + +Mon May 24 01:02:12 1999 Mark Mitchell + + * stmt.c (expand_end_bindings): Ignore any elements of VARS that + are not VAR_DECLs. + +Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Grow reg_single_usage as needed. + +Sun May 23 10:13:20 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. + Also remove a useless comment. + +Sun May 23 10:05:23 1999 Jerry Quinn + + * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. + +Sat May 22 21:02:06 1999 David Edelsohn + + * collect2.c (main): Only generate import or export file and add + to link arguments if non-empty. Use xmalloc not alloca. + (write_{export,import}_file): Delete. + (write_aix_file): New function. + (locatelib): Use xmalloc not malloc. + (GCC_OK_SYMBOL): Do not check type if aix64. + +Sat May 22 09:35:51 1999 Philip Blundell + + Based on patch by Scott Bambrough and Pat Beirne: + * config/arm/arm.c (making_const_table): New variable. + * config/arm/arm.h (making_const_table): Declare. + (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if + appropriate. + * config/arm/arm.md (consttable_4, consttable_8, consttable_end): + Keep track of when we are building the constant table. + +Sat May 22 09:34:22 1999 Philip Blundell + + * config/arm/arm.c (arm_override_options): Fix erroneous warning + message. + +Sat May 22 09:06:33 1999 Nick Clifton + + * config/arm/arm.h (NEED_PLT_GOT): Only define if not already + defined. + +Sat May 22 07:17:05 1999 Nick Clifton + + * tm.texi (FUNCTION_ARG): Correct description of a stack element + in a PARALLEL. + +Sat May 22 01:27:49 1999 Mark Mitchell + + * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE. + +Fri May 21 21:19:02 1999 Franz Sirl + + * rs6000.c (output_mi_thunk): Enable full support again. + +Fri May 21 20:09:52 1999 J"orn Rennecke + + * sh.h (BRANCH_COST): Define. + +Thu May 20 10:00:42 1999 Stephen L Moshier + + * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. + +Thu May 20 09:58:57 1999 Jan Hubicka + + * function.c (assign_stack_local): Align stack slot propertly. + (assign_outer_stack_local): Likewise. + +Thu May 20 10:38:43 1999 Mark Mitchell + + * expr.h (lang_expand_constant): Declare. + * toplev.c (lang_expand_constant): Define it. + * varasm.c (output_constant): Use it. + +Thu May 20 11:28:53 1999 Kaveh R. Ghazi + + * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide): + Change function definitions to K&R style. + +Thu May 20 08:16:39 1999 Bruce Korb + + * fixinc/fixincl.c: We must not ignore SIGCLD now. + +Thu May 20 07:06:39 1999 Alexandre Oliva + + * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options + * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments + (several places): omit static initialization + (process): use single fd, since only the read fd is used + * fixinc/gnu-regex.c: define 'const' away, if not supported + * fixinc/procopen.c(several places): omit static initialization + * fixinc/server.c: define 'volitile' away, if not supported + +1999-05-20 Andreas Schwab + + * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use + asm_fprintf and %L to generate the label name. + * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels. + +Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (can_reverse_comparison_p): Do not abort if the comparison + insn for a conditional jump can not be found. + +Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com) + + * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations + on variables in specific sections other than .sbss and .sdata. + +Wed May 19 03:56:56 1999 Mark Mitchell + + * stmt.c (expand_return): Call start_cleanup_deferral and + end_cleanup_deferral around conditional code. + +Wed May 19 08:40:08 1999 Bruce Korb + + * fixinc/fixincl.tpl: Avoid depending on ANSI C features for + filename lists. Utilizes new "krstr" AutoGen function. + * fixinc/fixincl.x: Rebuilt. + +Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz) + + * i386.c (output_float_compare): Avoid GNU-C extensions. + +Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump to distinguish mainline tree from the + gcc-2.95 branch. + +See ChangeLog.1 for earlier changes.