From 7a6406bf090bdd183f206fc4c6170008e21fc3f7 Mon Sep 17 00:00:00 2001 From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon, 31 Jul 2000 12:59:37 +0000 Subject: [PATCH] Rotate out 6 more months of ChangeLog entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35373 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 16860 +--------------------------------------------- gcc/ChangeLog.3 | 16860 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 16861 insertions(+), 16859 deletions(-) create mode 100644 gcc/ChangeLog.3 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22101886fe2..f77c2ad0ce8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2349,16863 +2349,5 @@ Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com) of the low 13 bits into a CONST plus an adddi3. (load_symptr): Set RTX_UNCHANGING_P. -2000-06-30 Mark Mitchell <mark@codesourcery.com> - - * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h. - * c-common.c (ridpointers): Declare. - * c-common.h (enum rid): Declare. - (NORID): Likewise. - (ridpointers): Likewise. - * c-lex.c (ridpointers): Don't declare. - (init_lex): Initialize ridpointers. - * c-lex.h (enum rid): Don't declare. - (NORID): Likewise. - (RID_FIRST_MODIFIER): Likewise. - (ridpointers): Likewise. - -2000-06-30 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they - have global scope. - -2000-06-30 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * invoke.texi (-Wreturn-type): In C++, a missing return type is - always an error. - -2000-06-30 Catherine Moore <clm@cygnus.com> +See ChangeLog.3 for earlier changes. - * c-common.c (decl_attributes): Differentiate between - types and type decls for alignment. - -2000-06-30 Nathan Sidwell <nathan@codesourcery.com> - - * cpp.texi: Document #pragma GCC dependency - * cppfiles.c (open_include_file): Set date to unknown. - (_cpp_compare_file_date): New function. - (read_include_file): Set file date. - * cpphash.h (struct include_file): Add date member. - (_cpp_compare_file_date): Prototype. - * cpplib.c (parse_include): Add trail parameter. Adjust. - (do_include): Adjust parse_include call. - (do_import): Likewise. - (do_include_next): Likewise. - (gcc_pragmas): Add dependency pragma. - (do_pragma_dependancy): New pragma. - -2000-06-29 Jason Merrill <jason@redhat.com> - - * dwarf2out.c (output_loc_operands): Don't abort on codes that have - no operands. - -2000-06-29 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for - a volatile mem and FR_REGS. - -2000-06-29 Mark Mitchell <mark@codesourcery.com> - - * c-common.c: Include c-common.h, not c-lex.h or c-tree.h. - * c-common.h (flag_const_strings): Declare. - (warn_format): Likewise. - (flag_traditional): Likewise. - (flag_isoc99): Likewise. - (warn_parentheses): Likewise. - (warn_conversion): Likewise. - (C_TYPE_OBJECT_P): Likewise. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (C_EXP_ORIGINAL_CODE): Likewise. - (build_unary_op): Likewise. - (build_binary_op): Likewise. - (lvalue_p): Likewise. - (default_conversion): Likewise. - (common_type): Likewise. - * c-tree.h (C_TYPE_OBJECT_P): Remove. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (C_EXP_ORIGINAL_CODE): Likewise. - (common_type): Likewise. - (default_conversion): Likewise. - (build_binary_op): Likewise. - (build_unary_op): Likewise. - (lvalue_p): Likewise. - (flag_const_strings): Likewise. - (warn_format): Likewise. - (warn_conversion): Likewise. - (flag_traditional): Likewise. - (flag_isoc99): Likewise. - (warn_parentheses): Likewise. - -2000-06-29 James E. Wilson <wilson@cygnus.com> - - * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2. - - * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the - same. Only tie XFmode with XFmode. - -2000-06-29 Zack Weinberg <zack@wolery.cumb.org> - - * c-decl.c, timevar.c, tlink.c: Include intl.h. - * Makefile.in: Update deps. - -2000-06-29 Andrew Haley <aph@cygnus.com> - - * toplev.c (main): On an IA-64, make flag_unwind_tables defauit - to true. - -2000-06-29 Andrew Haley <aph@cygnus.com> - - * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not - bytes: remove the multiply by 8. - -2000-06-29 Philipp Thomas <pthomas@suse.de> - - * rtl.c : Revert NLS changes. - * gcc.c : Fix bug in display_help introced by my last changes. - -Wed Jun 28 21:09:33 2000 Raja R Harinath <harinath@cs.umn.edu> - - * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use - DECL_CONTEXT, not DECL_FIELD_CONTEXT. - -2000-06-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * flow.c (flow_depth_first_order_compute): Fix algorithm. - -2000-06-28 Philipp Thomas <pthomas@suse.de> - - * c-decl.c : Mark strings for translation. - (parmlist_tags_warning): Use distinct messages instead - of conditional expressions. - * diagnostic.c (v_message_with_decl): Mark string for translation. - * gcc.c: Mark messages for translation. - (display_help): Combine messages into one string where necessary. - * mips-tfile: Add intl.h. Mark messages for translation. - * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark - messages for translation. - * timevar.c: Mark messages for translation. - * tlink.c: Likewise. - * toplev.c: Likewise. - -Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com) - - * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly. - - * alpha/alpha-interix.h: Delete redundant -Asystem(interix), - use -isystem instead of -idirafter. - * i386/i386-interix.h: Likewise. - -2000-06-28 Jason Merrill <jason@redhat.com> - - * dwarf2out.c (output_loc_operands): Don't support >1 byte output - unless DWARF2_DEBUGGING_INFO is defined. - (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs. - -2000-06-28 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH. - -2000-06-28 Jakub Jelinek <jakub@redhat.com> - - * cpplex.c (output_line_command): Output correct #line if a header - is including itself and is not protected against multiple inclusion. - -2000-06-28 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (open_include_file): If open(2) returns EMFILE or - ENFILE, close all cached file descriptors and try again. - (_cpp_execute_include): Keep a count of the number of times - each header is included. - (close_cached_fd): New function. - * cpphash.h (struct include_file): Rename before to - include_count; all users updated. Make include_count and sysp - unsigned short. - * cppinit.c (cpp_finish): If -H, report headers that could use - reinclude guards. - (report_missing_guard): New function. - -Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (prologue_set_got): Set length_immediate field. - (testqi_ccno_1): Add missing '@' character. - -2000-06-27 Jason Merrill <jason@redhat.com> - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use - DWARF_FRAME_REGNUM. - -2000-06-27 Andrew Macleod <amacleod@cygnus.com> - - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no - unsigned macros available. - -2000-06-27 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.c (emit_insn_group_barriers): Special case - epilogue_deallocate_stack. - - * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit - completers for UNORDERED and ORDERED as well. - * config/ia64/ia64.md (bunordered, bordered): New. - (sunordered, sordered): New. - -Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands. - * i386.c (ix86_attr_length_default): Kill. - (ix86_attr_length_immediate_default, ix86_attr_length_address_default): - New. - * i386-protos.h (ix86_attr_length_default): Kill - (ix86_attr_length_immediate_default, ix86_attr_length_address_default): - Add prototype - * i386.md (attribute type): Add "test". - (attribute length_prefix): Kill. - (attribute length_opcode): Kill. - (attribute i387, mode, length_immediate, length_address, prefix_data16, - prefix_rep, prefix_0f, modrm): New. - (attribute length): Compute using the new attributes. - (attribute pent_prefix): New. - (attribute pent_pair): Compute using pent_prefix. - (all insn patterns): Set mode,modrm and immediate_length attributes where - needed. - (cmpsi patterns): Compute sizes propertly for test instruction. - (movsi, movhi patterns): Compute sizes propertly for eax shortcuts. - (movstricthi_xor, movstrictqi_xor): New patterns. - (andsi/andhi): Use splitters to generate xor instructions. - (xorqi_ext_1): New pattern. - (movstricthi->movstricthi_xor peep2): New. - -Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (addqi_low_1): Remove. - -2000-06-27 Philipp Thomas <pthomas@suse.de> - - * 1750a.h: Mark help strings for options/switches for translation. - * a29k.h: Likewise. - * alpha.h: Likewise. - * arm.h: Likewise. - * pe.h: Likewise. - * riscix.h: Likewise. - * c4x.h: Likewise. - * clipper.h: Likewise. - * convex.h: Likewise. - * elxsi.h: Likewise. - * fr30.h: Likewise. - * fx80.h: Likewise. - * h8300.h: Likewise. - * i370.h: Likewise. - * cygwin.h: Likewise. - * dgux.h: Likewise. - * djgpp.h: Likewise. - * i386.h: Likewise. - * osf1elf.h: Likewise. - * osfrose.h: Likewise. - * sco5.h: Likewise. - * win32.h: Likewise. - * i860.h: Likewise. - * paragon.h: Likewise. - * i960.h: Likewise. - * ia64.h: Likewise. - * m32r.h: Likewise. - * mcore.h: Likewise. - * mips.h: Likewise. - * mn10300.h: Likewise. - * ns32k.h: Likewise. - * pdp11.h: Likewise. - * pj.h: Likewise. - * aix.h: Likewise. - * aix41.h: Likewise. - * aix43.h: Likewise. - * beos.h: Likewise. - * rs6000.h: Likewise. - * sysv4.h: Likewise. - * linux.h: Likewise. - * linux64.h: Likewise. - * sp64-elf.h: Likewise. - * sparc.h: Likewise. - * splet.h: Likewise. - * v850.h: Likewise. - * convex.h (TARGET_SWITCHES): Provide descriptions and mark them - for translation. - * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES. - Properly document option and mark for translation. - * sp86x-elf.h: Likewise. - -2000-06-27 Bernd Schmidt <bernds@cygnus.co.uk> - - Add MMX and SSE registers to i386 machine description. - * i386-protos.h (ix86_constant_alignment, ix86_data_alignment, - ix86_local_alignment): Declare. - - * i386.h (TARGET_MMX, TARGET_SSE): New. - (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, - REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER, - enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers. - (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New. - (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros. - (RETURN_IN_MEMORY): Handle MMX/SSE. - (REG_PARM_STACK_SPACE): Added so the first three TImode parameters - also get stack space. - (MUST_PASS_IN_STACK): Added TImode to the default definition. - (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words. - (MMX_REGISTER_NAMES): New. - (ALIGN_MODE_128): New macro. - (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function. - (DATA_ALIGNMENT): Likewise. - (LOCAL_ALIGNMENT): Likewise. - (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not - TARGET_MMX/TARGET_SSE. - (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros. - (REG_CLASS_FROM_LETTER): 'y' for MMX regs. - (SECONDARY_MEMORY_NEEDED): Be conservative about copying between - SSE/MMX regs and something else. - (CLASS_MAX_NREGS): 1 for SSE and MMX regs. - (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs, - 3 if moving between MMX regs and something else. - - * i386.c (reg_class): Add SSE_REGS, MMX_REGS. - (regclass_map): Add MMX/SSE registers. - (print_operand): Add code to print XMMWORD as appropriate. - (ix86_split_movdi): Abort for MMX regs. - (init_cumulative_args): Also allow SSE_REGS - (function_arg_advance, function_arg): Likewise - (print_reg): Support 'm'. Add case for TImode. - (override_options): TARGET_SSE implies TARGET_MMX. - (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment): - New functions. - - * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to - FIRST_SSE_REG. - * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in - memory. - * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise. - * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise. - -2000-06-26 Geoff Keating <geoffk@cygnus.com> - - * ssa.c (struct rename_set_data): Change the name of field - 'set_dest' to 'old_reg'. Add comments. - (struct rename_context): Change the name of 'set_data' to - 'new_renames'. Add new field 'done_renames'. - (create_delayed_rename): New function. - (apply_delayed_renames): New function. - (rename_insn_1): Use the new functions. Handle CLOBBERS. Handle - SUBREGs and similar by emitting a move. - (new_registers_for_updates): Delete, functionality moved to - apply_delayed_renames. - (rename_block): Handle moves emitted by rename_insn_1 by putting - them into a SEQUENCE with the original insn. Add sanity checks - and comments. - (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially. - (rename_equivalent_regs): Expand SEQUENCEs out to individual insns. - -2000-06-26 Andrew Macleod <amacleod@cygnus.com> - Jason Merrill <jason@redhat.com> - - * dwarf2.h (enum dwarf_call_frame_info): Add - DW_CFA_def_cfa_expression. - * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a - dw_loc_descr_struct entry. - (struct cfa_loc): New structure to track a CFA location. - (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset. - (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an - offset, plus handle DW_CFA_def_cfa_expression. - (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a - cfa_loc record. - (dwarf2out_def_cfa): Entry point maintained for compatability. - (dwarf_cfi_name): Add DW_CFA_def_cfa_expression. - (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'. - (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'. - (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not - cfa_reg. - (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl - sequences for the new DW_CFA_def_cfa_expression record. - (dwarf2out_frame_debug): Use new variables/fields.A - (output_cfi): Handle DW_CFA_def_cfa_expression. - (output_cfa_loc): New function to generate a CFI record for - DW_CFA_def_cfa_expression. - (get_cfa_from_loc_descr): New function to get a cfa_loc record from - a dw_loc_descr sequeunce. - (build_loc_descr): Build a dw_loc_descr from a cfa_loc record. - (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr, - size_of_locs, output_loc_operands, output_loc_sequence): Move into - unwind info section. - * frame.h (frame_state): Add base_offset and indirect fields. - * frame-dwarf2.c (decode_stack_op): New function to interpret a - dw_loc_descr operation. - (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression. - (struct frame_state): Add base offset and indirect fields. - * libgcc2.c (next_stack_level): Support indirect loading for CFA. - -2000-06-26 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-decl.c (grokdeclarator): Don't warn about `long long' in C99. - Make warnings about implicit int be pedwarns in C99. Don't warn - about duplicate type qualifiers in C99. - (start_function): Make warning about implict int return type be a - pedwarn in C99. - * c-lex.c (yylex): Don't warn about `long long' in C99. - * c-typeck.c (c_expand_return): In C99, always pedwarn about - `return' with no value in function returning non-void. - -2000-06-26 Richard Henderson <rth@cygnus.com> - - * c-typeck.c (pedwarn_c99): New. - * diagnostic.c (verror, vwarning, vpedwarn): Export. - * toplev.h: Prototype them. - -2000-06-26 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * c-typeck.c (digest_init): Return error_mark_node node when - TREE_TYPE (init) == error_mark_node. - -2000-06-26 Philipp Thomas <pthomas@suse.de> - - * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no, - test for msgfmt without path instead. - * configure: Rebuilt. - -2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - - * gengenrtl.c (special_rtx): Fix typo in comment. - -2000-06-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * mklibgcc.in (LIB2FUNCS): Add missing space. - -2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> - - * tree.h (enum tree_index): Add vector type nodes. - Add accessor macros for them. - (TYPE_REPRESENATION_TYPE): New macro. - * tree.c (build_common_tree_nodes_2): Build these nodes. - (finish_vector_type): New function. - * c-common.c (type_for_mode): Handle vector modes. - * tm.texi (VECTOR_MODE_SUPPORTED_P): Document. - - * dbxout.c (dbxout_type): Handle VECTOR_TYPEs. - * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers. - * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs. - (gen_type_die): Likewise. - * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers. - (fundamental_type_code): Likewise. - (type_is_fundamental): VECTOR_TYPEs aren't. - (output_type): Handle VECTOR_TYPEs. - -2000-06-25 Kazu Hirata <kazu@hxi.com> - - * config/arm.c: Fix a comment typo. - * config/arm.h: Likewise. - -2000-06-25 Philipp Thomas <pthomas@suse.de> - - * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog - compiler found. - AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no. - * configure: Rebuilt. - -2000-06-25 John David Anglin <dave.anglin@nrc.ca> - - * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions. - -2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating - libgcc.a. - -2000-06-24 Marc Espie <espie@cvs.openbsd.org> - - * collect2.c (resolve_lib_name): Move '/' check out of loop. - -2000-06-24 Dirk Duellmann <Dirk.Duellmann@cern.ch> - - * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0. - -2000-06-24 Jakub Jelinek <jakub@redhat.com> - - * stmt.c (expand_decl_cleanup): Emit a dummy insn after - last_unconditional_cleanup. - -2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> - - * tree.def (VECTOR_TYPE): New node type. - * tree.h: Adjust some comments to reflect addition of vector types. - (TYPE_VECTOR_SUBPARTS): New macro. - * stor-layout.c (layout_type): Handle VECTOR_TYPE. - * c-convert.c (convert): Likewise. - * convert.c (convert_to_integer): Handle vector modes. - (convert_to_vector): New function. - * convert.h (convert_to_vector): Declare. - * expr.c (convert_move): Handle vector modes. - * expmed.c (extract_bit_field): Don't abort for vector modes. - -2000-06-24 Marek Michalkiewicz <marekm@linux.org.pl> - - * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype. - * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr): - New functions, common code moved from function_{prologue,epilogue} - and extended to support the -mtiny-stack option. - (function_prologue, function_epilogue): Use them. - Use lo8/hi8 consistently for asm output readability. - (avr_hard_regno_mode_ok): New function. - * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack. - (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c. - (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function. - * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack. - Write SPH before SPL. - (*movqi): No need to disable interrupts for just one "out" - in alternative 5. Change length attribute from 4 to 1. - * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__): - Write SPH before SPL. - -2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> - - * rtl.texi (Vector Operations): New node. - (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus. - (Conversions): Add ss_truncate, us_truncate. - * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER, - VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE, - US_TRUNCATE): New rtx codes. - * machmode.def: Add vector modes. - * machmode.h (enum mode_class): Add MODE_VECTOR_INT and - MODE_VECTOR_FLOAT. - (INTEGER_MODE_P): Check for MODE_VECTOR_INT. - (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT. - (VECTOR_MODE_P): New. - -2000-06-24 Nathan Sidwell <nathan@codesourcery.com> - - * cpp.texi: Clarify #pragma GCC namespace. - -2000-06-24 Philipp Thomas <pthomas@suse.de> - - * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build - all catalogs specified in ALL_LINGUAS. - * configure: Rebuilt. - -2000-06-23 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (reload_outdi+1): Handle - HOST_BITS_PER_WIDE_INT == 64 case correctly. - (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise. - -2000-06-23 Geoffrey Keating <geoffk@cygnus.com> - - * alias.c (fixed_scalar_and_varying_struct_p): Don't examine - struct vs. scalar-ness when -fno-strict-aliasing. - -2000-06-23 Nathan Sidwell <nathan@codesourcery.com> - - * cpplib.c (struct pragma_entry): New structure. - (pragma_dispatch): Pragma dispatcher. - (top_pragmas, gcc_pragmas): New static variables. - (do_pragma): Use pragma_dispatch. - (do_pragma_gcc): New pragma handler. - * cpp.texi: Update. - -2000-06-23 Jakub Jelinek <jakub@redhat.com> - - * calls.c (compute_argument_addresses): Force stack slots into - alias set 0. - * expr.c (emit_push_insn): Force pushes into alias set 0. - -2000-06-23 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.md (pred_rel_mutex): Only take one register. - * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match. - -2000-06-22 Jason Merrill <jason@redhat.com> - - * toplev.c (compile_file): Always call timevar_print. - * Makefile.in (calls.o): Depend on TIMEVAR_H. - -2000-06-22 Nathan Sidwell <nathan@codesourcery.com> - - * varasm.c (constant_descriptor): Make contents unsigned char. - (mark_const_hash_entry): Adjust. - (const_hash): Just hash the code of unknown nodes. - (compare_constant_1): Adjust for unsigned char. - Use language specific expander on unknown nodes. - (record_constant_1): Likewise. - -2000-06-21 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (cpp_make_system_header): New function. - * cpplib.h: Prototype it. - * cpplib.c (do_line, do_pragma_system_header): Use it. - * fix-header.c (read_scan_file): Use it. - - * fix-header.c (check_macro_names): Cast second arg of - cpp_defined to const unsigned char *. - (read_scan_file): Make getchar_call const unsigned char. - -2000-06-21 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c: Include splay-tree.h, not hashtab.h. - (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete. - (destroy_include_file_node): New. - (_cpp_init_include_hash): Rename _cpp_init_include_table. - Create a splay tree, not a hash table. - (open_include_file): Look up the path in the include table, - do the multiple include optimization here, etc. - (cpp_included): Walk the path. - (find_include_file): Just walk the path calling - open_include_file, or call it directly for an absolute path. - (_cpp_fake_ihash): Rename _cpp_fake_include and update for new - scheme. - (read_include_file): Update for new scheme. Don't close the - file unless reading fails. - (_cpp_execute_include, cpp_read_file): Tweak for new scheme. - - * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete. - (struct include_file): New. - (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New - macros. - (CPP_PEDANTIC, CPP_WTRADITIONAL): Update. - Update prototypes. - - * cppinit.c: Include splay-tree.h. - (cpp_reader_init, cpp_cleanup): Update. - - * cpplib.h (struct cpp_buffer): Change ihash field to - 'struct include_file *inc'. Remove system_header_p. - (struct cpp_reader): Change all_include_files to a - struct splay_tree_s *. - - * cpplex.c: Update all references to cpp_buffer->ihash and/or - cpp_buffer->system_header_p. - (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD. - - * Makefile.in (SPLAY_TREE_H): New macro. - (cppfiles.o, cppinit.o): Update dependencies. - -Wed Jun 21 11:05:48 2000 Martin Buchholz <martin@xemacs.org> - - * invoke.texi (g++): "g++" is not a script anymore. - -2000-06-20 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * function.c (round_down): Delete obsolete prototype. - - * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__. - -2000-06-20 Zack Weinberg <zack@wolery.cumb.org> - - * configure.in: Use 'test a = b' not 'test a == b'. - * configure: Regen. - - * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS). - - * Makefile.in: Remove all references to HOST_INTLLIBS. - - * cpplex.c (parse_name): Don't warn about $ in identifiers if - skipping. - -2000-06-20 Philipp Thomas <pthomas@suse.de> - - * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later - for PA 2.0. - -Mon Jun 19 23:26:40 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * Take REG_INC notes into account. - -2000-06-19 Zack Weinberg <zack@wolery.cumb.org> - - * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c. - (primary: IDENTIFIER): Just call build_external_ref. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerate. - * c-lex.c (lastiddecl): Remove. - (yylex): Replace all instances of lastiddecl with local - variables. - - * c-typeck.c (build_external_ref): New function. Treat decls - with C_DECL_ANTICIPATED mostly the same as nonexistent decls. - Look up the decl from the id here. Call lookup_objc_ivar. - * c-lang.c (lookup_objc_ivar): Stub. - * objc/objc-act.c (lookup_objc_ivar): New function. - - * c-tree.h: Prototype lookup_objc_ivar and build_external_ref. - * c-lex.h: Don't declare lastiddecl. - -2000-06-19 Benjamin Chelf <chelf@codesourcery.com> - - * c-common.h (IF_COND): Added documentation. - (THEN_CLAUSE): Likewise. - (ELSE_CLAUSE): Likewise. - (WHILE_COND): Likewise. - (WHILE_BODY): Likewise. - (DO_COND): Likewise. - (DO_BODY): Likewise. - (RETURN_EXPR): Likewise. - (EXPR_STMT_EXPR): Likewise. - (FOR_INIT_STMT): Likewise. - (FOR_COND): Likewise. - (FOR_EXPR): Likewise. - (FOR_BODY): Likewise. - (SWITCH_COND): Likewise. - (SWITCH_BODY): Likewise. - (CASE_LOW): Likewise. - (CASE_HIGH): Likewise. - (GOTO_DESTINATION): Likewise. - (COMPOUND_BODY): Likewise. - (ASM_CV_QUAL): Likewise. - (ASM_STRING): Likewise. - (ASM_OUTPUTS): Likewise. - (ASM_INPUTS): Likewise. - (ASM_CLOBBERS): Likewise. - (DECL_STMT_DECL): Likewise. - (STMT_EXPR_STMT): Likewise. - (LABEL_STMT_LABEL): Likewise. - - * c-common.def: Added documenetion for SRCLOC, EXPR_STMT, - COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT, - RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, - LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR. - -2000-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in (--enable-checking): Update --help doc to reflect - new defaults. Ensure $ac_save_IFS is set before $IFS is changed. - -Sun Jun 18 21:42:15 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK. - - * function.c (put_var_into_stack): Don't reference DECL_ fields - if input is a SAVE_EXPR. - Use set_mem_attributes in COMPLEX case. - -2000-06-18 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare. - (ia64_file_start): Declare. - * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0. - (GR_REGNO_P): Likewise. - * config/ia64/ia64.c: Many prototypes. - (ia64_reg_numbers): Constify. - (ia64_input_reg_names, ia64_local_reg_names): Likewise. - (ia64_section_threshold): Make unsigned. - (ia64_print_operand): Constify. - (fix_range): Constify. - (ia64_init_builtins): Don't compare signed vs unsigned. - (ia64_expand_builtin): Likewise. - - * config/ia64/ia64.h (EXTRA_CONSTRAINT): New. - (CONSTRAINT_OK_FOR_Q): New. - * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem. - (movsf_internal, movdf_internal): Likewise. - (cmovdi_internal): Rewrite so that constraints and predicates match; - simplify splitters. - (cmovsi_internal): Likewise. - - * config/ia64/ia64.h (ASM_SPEC): Add -x for gas. - (ASM_FILE_START): New. - * config/ia64/ia64.c (ia64_file_start): New. - (rtx_needs_barrier): Handle pred.rel.mutex. - (emit_predicate_relation_info): New. - * config/ia64/ia64.md (pred_rel_mutex): New. - * config/ia64/linux.h (ASM_SPEC): Define. - * config/ia64/sysv4.h (ASM_FILE_START): Define. - - * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko - filtering global register variables. - -2000-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c (add_c_tree_codes): Fix definition for traditional C. - -2000-06-17 Michael Meissner <meissner@redhat.com> - - * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is - not present and there is a field after a '-'. - -2000-06-17 Bruce Korb <bkorb@gnu.org> - - * fixinc/check.tpl: finish the implementation of multiple tests - for a single fix - * fixinc/inclhack.def(ctrl_quotes_def): add a second test - (io_quotes_def): add a second test - (various): reorder `files' so that "limits.h" is never first - * fixinc/tests/base/*: update the testing output - -Sat Jun 17 10:33:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcc.texi: Remove reference to stupid.c. - -2000-06-16 Benjamin Chelf <chelf@codesourcery.com> - - * c-common.c (c_tree_code_type): New array. - (c_tree_code_length): Likewise. - (c_tree_code_name): Likewise. - (add_c_tree_codes): New function. - - * c-common.h (add_c_tree_codes): Declare. - (enum c_tree_code): New enum. - - * c-lex.c (init_parse): Added call to add_c_tree_codes. - -2000-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify - select pattern to also match macro defs with only one argument. - -Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com) - - * i386.md: Create new [right,left] rotate and right shift - patterns to optimize shift by 1 bit for certain ia32 processors. - Update patterns which perform left shifts to optimize shift by - 1 bit for certain ia32 processors. - * i386.c (const_int_1_operand): New predicate. - * i386.h (PREDICATE_CODES): Handle const_int_1_operand. - * i386-protos.h (const_int_1_operand): Prototype. - -Wed Jun 14 23:46:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * mips.c (machine_dependent_reorg): Fix braces for nested if. - -2000-06-14 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare - LABEL_REFs. - -2000-06-14 Richard Henderson <rth@cygnus.com> - - * conflict.c (conflict_graph_compute): Don't look for REG_INC. - - * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit - auto-inc code. - - * print-rtl.c (print_rtx): Emit space before mem alias set. - -2000-06-14 David Edelsohn <edelsohn@gnu.org> - - * rs6000.c (expand_block_move): Fix typo in earlier change. - (print_operand): Remove unused variables neg and op. - (toc_hash_mark_entry): Fix prototype. - -2000-06-14 Benjamin Chelf <chelf@codesourcery.com> - - * c-common.h (IF_COND): Moved here from cp/cp-tree.h. - (THEN_CLAUSE): Likewise. - (ELSE_CLAUSE): Likewise. - (WHILE_COND): Likewise. - (WHILE_BODY): Likewise. - (DO_COND): Likewise. - (DO_BODY): Likewise. - (RETURN_EXPR): Likewise. - (EXPR_STMT_EXPR): Likewise. - (FOR_INIT_STMT): Likewise. - (FOR_COND): Likewise. - (FOR_EXPR): Likewise. - (FOR_BODY): Likewise. - (SWITCH_COND): Likewise. - (SWITCH_BODY): Likewise. - (CASE_LOW): Likewise. - (CASE_HIGH): Likewise. - (GOTO_DESTINATION): Likewise. - (COMPOUND_BODY): Likewise. - (ASM_CV_QUAL): Likewise. - (ASM_STRING): Likewise. - (ASM_OUTPUTS): Likewise. - (ASM_INPUTS): Likewise. - (ASM_CLOBBERS): Likewise. - (DECL_STMT_DECL): Likewise. - (STMT_EXPR_STMT): Likewise. - (LABEL_STMT_LABEL): Likewise. - (SCOPE_BEGIN_P): Likewise. - (SCOPE_END_P): Likewise. - (SCOPE_STMT_BLOCK): Likewise. - (SCOPE_NULLIFIED_P): Likewise. - (SCOPE_NO_CLEANUPS_P): Likewise. - (SCOPE_PARTIAL_P): Likewise. - (ASM_VOLATILE_P): Likewise. - (STMT_LINENO): Likewise. - (STMT_LINENO_FOR_FN_P): Likewise. - - * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR, - ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, - FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, - CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, - SCOPE_STMT, CASE_LABEL, STMT_EXPR. - - * gencheck.c (tree_codes[]): Added '#include "c-common.def"'. - -2000-06-14 David O'Brien <obrien@FreeBSD.org> - - * gcc.c (main): Quiet compiler warnings. argv is assumed to be - writable in parts of the GCC code. - - * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf - specification match cast. - -Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13. - * configure, config.in: Rebuilt. - * sys-protos.h: Similarly. - -Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com) - - * ifcvt.c (EDGE_COMPLEX): Move definition ... - * basic-block.h (EDGE_COMPLEX): ... here. - - * loop.c (check_dbra_loop): Specify the register when - generating REG_NONNEG notes and don't generate duplicates. - -2000-06-13 Jakub Jelinek <jakub@redhat.com> - - * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define. - (struct tree_type, struct tree_decl): Add user_align member. - * stor-layout.c (layout_decl): Set DECL_USER_ALIGN. - (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined - and DECL_USER_ALIGN 0, cap alignment to this value. - (place_field): Likewise. - (finalize_type_size): Set TYPE_USER_ALIGN. - (layout_type): Likewise. - (initialize_sizetypes): Likewise. - * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp. - DECL_USER_ALIGN to 1. - * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN. - (xfer_tag): Set TYPE_USER_ALIGN. - (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. - (finish_enum): Likewise. - * stmt.c (expand_decl): Set DECL_USER_ALIGN. - (expand_anon_union_decl): Likewise. - * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. - (build_index_type): Set TYPE_USER_ALIGN. - (build_range_type): Likewise. - (build_common_tree_nodes_2): Likewise. - * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning. - -2000-06-13 Andreas Jaeger <aj@suse.de> - - * configure.in: Use --enable-checking=misc,tree,gc by default if - no --enable-checking option is given and for - --enable-checking=yes. - * configure: Rebuilt. - -2000-06-13 Richard Henderson <rth@cygnus.com> - - * libgcc2.c (ia64_throw_helper): Use __builtin_return_address. - (__throw): Don't pass the address of a label. - - * config/ia64/ia64.c (ia64_compute_frame_size): Use - current_function_is_leaf. - (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx - instead of reg_names[RETURN_ADDRESS_REGNUM]. - (ia64_init_machine_status): Reset return_address_pointer_rtx. - * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename - from RETURN_ADDRESS_REGNUM. Update all uses. - (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return - zero instead of null on failure. - (ELIMINABLE_REGS): Add ra->b0 elimination. - (CAN_ELIMINATE): Update accordingly. - (INITIAL_ELIMINATION_OFFSET): Likewise. - (REGISTER_NAMES): Use an illegal assembler name for - RETURN_ADDRESS_POINTER_REGNUM. - -2000-06-13 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS, - GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove. - (HARD_REGNO_MODE_OK): Remove references to them. - (REGNO_REG_CLASS): Likewise. - (REG_CLASS_FROM_LETTER): Likewise. - (CLASS_MAX_NREGS): Likewise. - (REGISTER_MOVE_COST): Likewise. - * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise. - * config/ia64/ia64.md (*): Replace "e" constraints with "f". - (movqi_internal): Special case moves from zero. - (movhi_internal, movsi_internal): Likewise. - (movdi_internal): Likewise. Fill out "f" constraints. - (movsf_internal): Fill out "r" constraints. - (movdf_internal): Likewise. - -2000-06-13 Richard Henderson <rth@cygnus.com> - - * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM - alive before reload. - - * haifa-sched.c (struct deps): Add in_post_call_group_p. - (add_dependence): Handle notes between SCHED_GROUP_P insns. - (remove_dependence): Always define. - (set_sched_group_p): New. - (sched_analyze_2): Use it. - (sched_analyze_insn): Don't special-case naked uses. Look for - and extend in_post_call_group_p. - (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p. - (init_deps): Clear in_post_call_group_p. - -2000-06-13 Richard Henderson <rth@cygnus.com> - - * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and - CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE - and hard-coded tests. - (simplify_set): Likewise. - (gen_lowpart_for_combine): Likewise. - * emit-rtl.c (gen_lowpart_common): Likewise. - * global.c (find_reg): Likewise. - * local-alloc.c (find_free_reg): Likewise. - * recog.c (register_operand): Likewise. - * regclass.c (init_reg_sets_1): Likewise. - (record_operand_costs, regclass): Likewise. - * reload.c (push_reload): Likewise. - * reload1.c (choose_reload_regs): Likewise. - * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE. - * local-alloc.c (struct qty): Rename changes_size to changes_mode. - Update all references. - * regs.h (struct reg_info_def): Likewise. - (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE. - * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document. - (CLASS_CANNOT_CHANGE_MODE_P): Likewise. - - * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename. - (CLASS_CANNOT_CHANGE_MODE_P): New. - * config/mips/mips.h: Likewise. - * config/pa/pa32-regs.h: Likewise. - * config/pa/pa64-regs.h: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/sh/sh.h: Likewise. - * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New. - (CLASS_CANNOT_CHANGE_MODE_P): New. - * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code. - * config/d30v/d30v.h: Likewise. - -2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * configure.in: Add AC_TYPE_GETGROUPS test. - * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups. - * configure: Rebuilt. - * config.in: Rebuilt. - -2000-06-13 Richard Henderson <rth@cygnus.com> - - * explow.c (set_mem_attributes): Do nothing for NULL type. - -Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com) - - * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler - correctly. - -2000-06-13 James E. Wilson <wilson@cygnus.com> - - * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf. - -Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference. - -2000-06-13 Philipp Thomas <pthomas@suse.de> - - * configure.in(ALL_LINGUAS): Changed en_UK to en_GB. - * configure: Rebuilt. - -2000-06-07 David O'Brien <obrien@FreeBSD.org> - - * configure.in: Adjust FreeBSD bits to match changes to config.guess. - We now default to ELF for the i386, and a.out is the special case. - * configure: Rebuilt. - -Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson <hp@axis.com> - - * final.c (final_scan_insn): Delete notes between cc0 setter and - user when restarting from setter. - -2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and - cast to squelch signed/unsigned warnings. - -2000-06-13 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (handle_directive): Print non-NUL-terminated string - with %.*s. - -2000-06-12 Michael Meissner <meissner@redhat.com> - - * ifcvt.c (dead_or_predicable): Don't do conditional execution - path if the machine needs extra support to do conditional - execution. - -Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com) - - * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC - to print the alias set. - * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly. - -2000-06-12 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * config/float-vax.h: Add GFLOAT defines. - -Mon Jun 12 9:44:00 2000 Mark Klein <mklein@dis.com> - - * configure.in: Update tm dependencies for MPE. - * configure: Rebuilt. - -2000-06-12 H.J. Lu <hjl@gnu.org> - - * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size. - -2000-06-12 David Edelsohn <edelsohn@gnu.org> - - * aix41.h (SUBTARGET_SWITCHES): Delete threads. - (CPP_SPEC): Change mthreads to pthread. - (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * aix43.h (SUBTARGET_SWITCHES): Delete threads. - (CPP_SPEC): Change mthreads to pthread. - (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * rs6000-protos.h (reg_or_arith_cint_operand): New. - * rs6000.c (reg_or_arith_cint_operand): New. - (num_insns_constant_wide): Decorate unsigned constant. - * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand. - * rs6000.md (addsi3): Use new predicate. - (subsi3, adddi3, subdi3): Likewise. - -2000-06-12 Mark Mitchell <mark@codesourcery.com> - - * c-common.c (lang_get_alias_set): Fix typo. - -2000-06-12 Richard Earnshaw <rearnsha@arm.com> - - * flow.c (mark_used_regs): Revert last change. - (life_analysis): Remove PROP_AUTOINC if running after reload. - (propagate_one_insn): PROP_AUTOINC is always off after reload. - -2000-06-11 Richard Earnshaw <rearnsha@arm.com> - - * flow.c (mark_used_regs): Don't call find_auto_inc after reload - has run. - -2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * bb-reorder.c (build_scope_forest): Initialize variable - `curr_scope'. - - * calls.c (expand_call): Likewise for variables - `save_pending_stack_adjust' and `save_stack_pointer_delta'. - - * i386.c (function_arg_advance, function_arg): Cast to avoid - signed/unsigned warnings. - - * i386.h (MEMORY_MOVE_COST): Likewise. - - * ifcvt.c (cond_exec_process_if_block): Initialize variables - `else_start' and `else_end'. - - * libgcc2.h (__eh_alloc, __eh_free): Prototype. - - * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'. - -2000-06-10 Mark Mitchell <mark@codesourcery.com> - - * Makefile.in (libintl.a): Depend on intl.all. - -2000-06-09 H.J. Lu (hjl@gnu.org) - - * Makefile.in (c-parse.o): Also depend on output.h. - -2000-06-09 Rodney Brown <RodneyBrown@mynd.com> - - * mcore-protos.h: discards const warning removal. - * mcore.c: discards const warning removal. - -2000-06-09 Kazu Hirata <kazu@hxi.com> - - * config/h8300/lib1funcs.asm: Declare the machine architecture at - the beginning of the file. - -2000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * real.h: Add prototype for ldexp. - -2000-06-09 Zack Weinberg <zack@wolery.cumb.org> - - * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename - it ggc_alloc, drop second argument, never clear returned memory. - * ggc-common.c (ggc_alloc_string): Use ggc_alloc. - (ggc_alloc_cleared): New. - * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not - ggc_alloc_obj. Remove ggc_alloc macro. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc. - - * rtl.c (rtvec_alloc): Clear the vector always. - (rtx_alloc): Clear the first word always. Remove dirty - obstack tricks (this routine is no longer a bottleneck). - * tree.c (make_node): Clear the new node always. - (make_tree_vec): Likewise. - (tree_cons): Clear the common structure always. - (build1): Likewise; also, clear TREE_COMPLEXITY. - * gengenrtl.c: Use puts wherever possible. Remove extra - newlines. - (gendef): Clear the first word of an RTX in the generator - function, irrespective of ggc_p. Initialize '0' slots to - NULL. - (genlegend): Don't generate obstack_alloc_rtx routine, just a - thin wrapper macro around obstack_alloc. - - * stmt.c (expand_fixup): Use ggc_alloc. - * c-typeck.c (add_pending_init): Use ggc_alloc. - * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem). - * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to - const0_rtx when it is created. - (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if - we are not in a function. - - * tree.c (tree_class_check_failed): Make second arg an int. - * tree.h: Update prototype. - -2000-06-09 Geoff Keating <geoffk@cygnus.com> - - * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT - of an error_mark_node. - -Fri Jun 9 20:35:13 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (asm_output_section_name): bugfix. - -2000-06-09 Jason Merrill <jason@casey.soma.redhat.com> - - * timevar.def: Add TV_EXPAND. - * timevar.c (timevar_print): Update timing information. - * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining. - - * stmt.c (expand_return): Check for error_mark_node. - -2000-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in: Also avoid wrapping auto-build.h with IN_GCC. - - * scan-types.sh (VALUE) Wrap use with double quotes to protect - variable against filename expansion when it contains "char *". - - * system.h (SSIZE_MAX): Delete backup definition. - - * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t) - instead of SSIZE_MAX. - -2000-06-09 Jakub Jelinek <jakub@redhat.com> - - * configure.in: Check whether gas supports -relax. - * configure, config.in: Rebuilt. - * config/sparc/sparc.h (ASM_RELAX_SPEC): Define. - (EXTRA_SPECS): Add asm_relax. - (ASM_SPEC): Add %(asm_relax). - (TARGET_SWITCHES): Add -mrelax and -mno-relax. - * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC. - (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r. - (ASM_SPEC): Add %(asm_relax). - * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise. - * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION, - never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0 - instead of mov, so that gas can further optimize it. - -2000-06-08 James E. Wilson <wilson@bletchleypark.cygnus.com> - - * dwarf2out.c (size_of_die, case dw_val_class_const): Use - size_of_sleb128. - (value_format, case dw_val_class_const): Use sdata format. - (output_die): Call output_sleb128. - -2000-06-08 James E. Wilson <wilson@cygnus.com> - - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses - UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to - ASM_OUTPUT_DWARF_CONST_DOUBLE. - (output_die, case dw_val_class_unsigned_const): Correct call to - ASM_OUTPUT_DWARF_DATA8. - (output_die, case dw_val_class_long_long): Use - ASM_OUTPUT_DWARF_CONST_DOUBLE. - * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when - pos is zero. - - * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add. - (output_function_prologue): Fix mispelling. - (output_function_prologue, output_function_epilogue): Reorder to - match ia64.c definition order. - * config/ia64/ia64.c (ia64_expand_prologue): Add comment. - (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns. - Use r3 instead of r2 for large stack restores. - (ia64_output_end_prologue): New function. - (process_set): Emit ".restore sp" for epilogue stack restores. - * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define. - -2000-06-08 Jakub Jelinek <jakub@redhat.com> - - * dbxout.c (dbxout_type_fields): Don't segfault on fields with - incomplete types. - -2000-06-08 Nathan Sidwell <nathan@codesourcery.com> - - * frame.c (end_fde_sort): Remove extraneous erratic array test. - -2000-06-08 Denis Perchine <dyp@perchine.com> - - * frame.c (start_fde_sort): Don't malloc (0). - -2000-06-07 Zack Weinberg <zack@wolery.cumb.org> - - * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on - error_mark_node. - * print-tree.c (print_node): The transparent_union_flag means - different things for unions and arrays. Do not inspect it - with TYPE_TRANSPARENT_UNION. - -2000-06-06 Jakub Jelinek <jakub@redhat.com> - - * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef - returned NULL. - -Wed Jun 7 20:34:33 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (asm_output_section_name): output section - attributes. - * config/avr/libgcc.S (.text.libgcc): declare section attributes. - -2000-06-06 James E. Wilson <wilson@cygnus.com> - - * frame.h (struct unwind_info_ptr): Collapse version, flags, and length - fields into header field. - (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New - macros to access length, flags, and version info from header field. - * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here. - * config/ia64/crtend.asm (__do_frame_setup_aux): Add here. - (__do_global_ctors_aux): Fix caller. - * config/ia64/frame-ia64.c (get_unwind_record): Change parameter - prologue_flag to header. Pass to read_P_record. - (read_P_record): New argument header. Implement P4 format. - Multiply P7_T_SIZE by 16. - (execute_one_ia64_descriptor): New static local region_header. Pass to - get_unwind_record. Copy r to region_header if r is a header record. - (print_all_records): Likewise. - (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH. - (__get_personality, __get_except_table): Likewise. - * config/ia64/ia64.c (process_set): Do not divide offsets by 4. - -2000-06-06 Philipp Thomas <pthomas@suse.de> - - * configure.in (AC_C_INLINE): Added. - * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default. - * configure: Regenerate. - -2000-06-06 Mark Mitchell <mark@codesourcery.com> - - * c-common.h (c_language_kind): New type. - (c_language): New variab.e - * c-common.c (lang_get_alias_set): Don't put structures in - non-zero alias sets in C++. - * c-decl.c (c_language): Define it. - * c-lex.c (doing_objc_thang): Remove. - * c-tree.h (doing_objc_thang): Make it a macro. - * objc/objc-act.c (lang_decode_option): Set c_language, not - doing_objc_thang. - -2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> - - * diagnostic.c (output_maximum_width): Remove. - (doing_line_wrapping): Tweak. - (diagnostic_buffer): New object. - (global_output_buffer): New object. - (output_destroy_prefix): New function. - (default_initialize_buffer): Likewise. - (reshape_diagnostic_buffer): Likewise. - (initialize_diagnostics): Likewise. - (output_clear): Tweak. - (line_wrapper_printf): Adjust call to init_output_buffer. - (vline_wrapper_message_with_location): Likewise. Use - output_destroy_prefix. - (v_message_with_decl): Likewise. - - * diagnostic.h (struct output_buffer): Constify prefix. - (init_output_buffer, output_get_prefix): Constify. - (diagnostic_message_length_per_line): Likewise. - (reshape_diagnostic_buffer): Declare. - (default_initialize_buffer): Declare. - (initialize_diagnostics): Declare. - (diagnostic_buffer): Declare new obbject. - - * toplev.c: #include diagnostic.h - (display_help): Document diagnostic formatting options. - (decode_f_option): Handle diagnostic formatting options. - (main): Setup initialization for diagnostic messages outputter. - - * toplev.h (set_message_length): Remove. - - * Makefile.in (toplev.o): Depends upon diagnostic.h - - * invoke.texi : Document diagnostics formatting options. - -Tue Jun 6 19:25:32 2000 Philippe De Muyter <phdm@macqel.be> - - * configure.in (Make the links): Typo fix : the file that must be - included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'. - * configure: File rebuilt. - -2000-06-06 Nathan Sidwell <nathan@codesourcery.com> - - * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. - (eh_context): Add alloc_mask and alloc_buffer emergency fallback - space. - * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on - emergency eh_context buffer, if malloc fails. - (__eh_free): Moved from cp/exception.cc. Release to emergency - eh_context buffer, if appropriate. - -2000-06-06 Jason Merrill <jason@casey.soma.redhat.com> - - * expr.c (store_expr): Fix typo. - -2000-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * m68k.c (legitimize_pic_address): Move prototype ... - - * m68k-protos.h (legitimize_pic_address): ... here. - - * m68k.md (legitimize_pic_address): Delete prototypes. - (untyped_call): Invoke GEN_CALL(), not gen_call(). - - * nextstep.c: Include system.h and toplev.h. - (get_directive_line): Don't prototype. - (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify. - - * nextstep.h (handle_pragma): Prototype. - (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of - objc_section_init ... - (EXTRA_SECTION_FUNCTIONS): ... here. - -Tue Jun 6 08:17:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * sdbout.c (struct sdb_file): NAME now const. - (sdbout_init): input_file_name now const. - (sdbout_start_new_source_file): FILENAME now const. - * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above. - -2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> - - * c-typeck.c (build_conditional_expr): Handle complex data types. - -2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> - - * explow.c (maybe_set_unchanging): New function, broken out from... - (set_mem_attributes): Here. - * expr.h: Declare it. - * stmt.c (expand_decl): Call it. - -2000-06-05 Richard Henderson <rth@cygnus.com> - - * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE - while looking for a register to inherit from. - -2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> - - * Makefile.in (libgcc.ready): Lose. - (libgcc.mk): Just use mv, not move-if-change. - (LIBGCC_DEPS): New macro. - (libgcc.a): Use it. - (stmp-multilib): Likewise. - * mklibgcc.in (stmp-dirs): New target. Make everything depend on - it rather than the directories themselves. - (LIB2ADD): Depend on the list file rather than 'force'. - - * fold-const.c (fold, case COND_EXPR): Elide conversion between - cv-qualified versions of types. - -Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config/sparc/sparc.c (short_branch): Correct error in range - computation. - -2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * fixinc/inclhack.def: New include hacks for ultrix. - * (nested_ultrix): Replaced by ultrix_nested_svc. - * (ultrix_atof_param): test_text string added. - * (ultrix_ifdef): Modified select string. - -2000-06-05 Zack Weinberg <zack@wolery.cumb.org> - - * objc/objc-act.c (generate_method_descriptors): Register - objc_method_prototype_template as a GC root. - (comp_method_with_proto): Register function_type as a GC root. - (comp_proto_with_proto): Replace function_type1 and - function_type2 with a two-element array; register it as a GC root. - - (generate_protocols, build_protocol_initializer, - generate_protocol_list, build_category_initializer, - build_shared_structure_initializer): Do not cache cast_type - and/or cast_type2. - -2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * function.c (assign_parms): Add missing argument to set_mem_attributes - call. - -2000-06-05 Nathan Sidwell <nathan@codesourcery.com> - - * tree.h (VOID_TYPE_P): New macro. - (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P. - * c-decl.c (grokdeclarator): Use VOID_TYPE_P. - (get_parm_info): Likewise. - (store_parm_decls): Likewise. - (combine_parm_decls): Likewise. - (finish_function): Likewise. - * c-typeck.c (build_function_call): Likewise. - (build_binary_op): Likewise. - (build_conditional_expr): Likewise. - (internal_build_compound_expr): Likewise. - (convert_for_assignment): Likewise. - * stmt.c (expend_expr_stmt): Likewise. - (warn_if_unused_value): Likewise. - (expand_return): Likewise. - * c-parse.in (primary): Likewise. - * c-parse.y, c-parse.c, c-parse.h: Regenerate. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - -Mon Jun 5 06:46:28 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c (get_alias_set): If compnent is addressable, use alias - set of component. - * c-decl.c (init_decl_processing): Don't call record_component_aliases. - (grokdeclarator): Likewise. - * c-typeck.c (common_type): Likewise. - -2000-06-04 Alex Samuel <samuel@codesourcery.com> - - * Makefile.in (OBJS): Remove dyn_string.o - (dyn-string.o): Delete rule. - * dyn-string.c: Delete file - * dyn-string.h: Likewise. - -2000-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (intl.*): Honor non-zero exit codes in the intl - subdir. - -2000-06-03 Geoff Keating <geoffk@cygnus.com> - - * alias.c (record_component_aliases): Don't inspect - DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures. - -Sat Jun 3 19:05:30 2000 Michael Meissner <meissner@redhat.com> - - * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call - it with the pattern to do machine dependent work. - (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined, - use it to modify the true/false tests used in conditional - execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are - defined, invoke them if the conversion to conditional execution - was successful or not. - - * tm.texi (IFCVT_MODIFY_TESTS): Document. - (IFCVT_MODIFY_INSN): Ditto. - (IFCVT_MODIFY_FINAL): Ditto. - (IFCVT_MODIFY_CANCEL): Ditto. - -Sat Jun 3 15:26:13 2000 Matt Kraai <kraai@alumni.carnegiemellon.edu> - - * toplev.c (main): Fix misspellings of possibility and language. - -2000-06-03 Richard Henderson <rth@cygnus.com> - - * alias.c (record_alias_subset): Initialize has_zero_child in the - superset. - -2000-06-03 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (untyped_call): Use GEN_CALL macro. - -2000-06-02 Pekka Nikander <pnr@teldanex.tcm.hut.fi> - - * Makefile.in: Use $(MAKE) not "make" - -Fri Jun 2 19:31:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c (struct alias_set_entry): New field has_zero_child. - (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase. - (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET, - do nothing. - Call record_component_aliases for aggregate types. - (record_alias_subset): Set has_zero_child. - (record_component_aliases, case ARRAY_TYPE): Do nothing if - TYPE_NONALIASES_COMPONENT. - (record_component_aliases, case RECORD_TYPE): Test - DECL_NONADDRESSABLE_P. - * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead - of TREE_ADDRESSABLE. - * calls.c (initialize_argument_information): Only test - TYPE_TRANSPARENT_UNION for UNION_TYPE. - * function.c (assign_parms): Likewise. - * integrate.c (function_cannot_inline_p): Likewise. - * stor-layout.c (finish_record_layout): Don't call - record_component_aliases. - * tree.h (struct tree_int_cst): Use struct tree_common. - (struct tree_real_cst, struct tree_string): Likewise. - (struct tree_complex, struct tree_identifier): Likewise. - (struct tree_list, struct tree_vec, struct tree_exp): Likewise. - (struct tree_block, struct tree_type, struct tree_decl): Likewise. - (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK. - (TYPE_NONALIASES_COMPONENT): New macro. - (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK. - (DECL_NONADDRESSABLE_P): New macro. - (struct tree_decl): Reorder bits for clarity of how many left; - add non_adressable. - -2000-06-02 Jason Merrill <jason@casey.soma.redhat.com> - - * Makefile.in (libgcc.a): Also depend on $(LIB2ADD). - * mklibgcc.in (force): New target. - Make LIB2ADD stuff depend on it. - -2000-06-02 Richard Henderson <rth@cygnus.com> - - * alias.c (lang_get_alias_set): Remove. - (get_alias_set): Call it directly, not indirectly. - * c-common.c (lang_get_alias_set): Rename from c_get_alias_set. - * c-common.h (c_get_alias_set): Don't declare. - * c-decl.c (init_decl_processing): Don't set lang_get_alias_set. - * expr.h (lang_get_alias_set): Declare as function, not pointer. - -2000-06-02 Bruce Korb <bkorb@gnu.org> - - * fixinc/server.c(sig_handler): resume closing server on SIGPIPE - (server_setup): define the server's master pid - (close_server): actually do the deed IFF we are the server's master - -2000-06-02 Jakub Jelinek <jakub@redhat.com> - - * c-common.c (c_get_alias_set): Check whether signed_type did not - return its argument before calling get_alias_set on the result. - -2000-06-02 Andrew MacLeod <amacleod@cygnus.com> - - * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE. - -Fri Jun 2 00:22:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave. - (CONDITIONAL_REGISTER_USAGE): Mac registers are call used - for TARGET_NOMACSAVE. - (NOMACSAVE_BIT): Define. - (TARGET_NOMACSAVE): Define. - (TARGET_SWITCHES): Add "nomacsave". - -2000-06-02 Toshiyasu Morita <toshi.morita@sega.com> - - * sh.md (untyped_call): Remove excess parameters - -2000-06-01 Loren J. Rittle <ljrittle@acm.org> - - * fixinc/inclhack.def (osf_namespace_a): Relax expression to - match that used before the conversion to c_fix style. - * fixinc/fixincl.x: regenerate - -2000-06-01 Stan Cox <scox@cygnus.com> - - * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix - macro argument typo. - -2000-06-01 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve - error message. - * cpplib.c (parse_include): Remove support for VAX-C - "#include starlet" misfeature. - -2000-05-31 Laurynas Biveinis <lauras@softhome.net> - - * cppfiles.c: conditionally define O_BINARY. - (open_include_file): pass O_BINARY to open(). - -2000-06-01 Richard Henderson <rth@cygnus.com> - - * i960.c (i960_br_predict_opcode): Remove. - (i960_print_operand) [+]: Emit branch prediction hints. - (i960_function_arg): Return early for VOIDmode. - (i960_round_align): Return early for incomplete types. - * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New. - * i960.md (all conditional branches): Add "%+". - -Thu Jun 1 12:24:21 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c (get_alias_set): Don't call language-specific routine more - than is needed and clean up code a bit. - * c-common.c (c_get_alias_set): All references whose type - is char get alias set 0, but character types need not. - * varasm.c (make_function_rtl): Don't call set_mem_attributes. - (make_decl_rtl): Don't call it for FUNCTION_DECL. - -2000-06-01 Bruce Korb <bkorb@gnu.org> - - * fixinc/tests/base/...: new base result files - -Thu Jun 1 09:37:35 2000 Clinton Popetz <cpopetz@cygnus.com> - - * config/i386/i386.c (ix86_use_fcomi_compare): Make global. - * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare. - * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we - will use FCOMI. - -2000-06-01 Richard Henderson <rth@cygnus.com> - - * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h. - - * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.c (sdata_symbolic_operand): Consider small - CONSTANT_POOL_ADDRESS_P addresses for .sdata. - * config/ia64/sysv4.h (SELECT_RTX_SECTION): New. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove. - * config/ia64/ia64.c (ia64_expand_prediction): Move code ... - (ia64_print_operand) [+]: ... here. Use current_output_insn. - * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New. - * config/ia64/ia64.md (all branch/call patterns): Use %+. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (merge_if_block): Be prepared for JOIN to have no - remaining edges. - (find_if_block): Allow THEN with no outgoing edges. - * flow.c (merge_blocks_nomove): Remove a barrier not following - a jump as well. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * flow.c (propagate_block): Move initialization of mem_set_list ... - (init_propagate_block_info): ... here. Also track blocks with - no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize_1): Revert 05-18 change. - -2000-05-31 Mark Mitchell <mark@codesourcery.com> - - * invoke.texi: Remove documentation for -fguiding-decls. - -2000-05-31 Richard Henderson <rth@cygnus.com> - - * configure.in: Fix typo last change. - -2000-05-31 Philipp Thomas <pthomas@suse.de> - - * configure.in (enable-nls): Enable if build == host, i.e. when - not building a canadian cross compiler. - (enable-maintainer-mode): Added for use with i18n. - * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a - cross section of ALL_LINGUAS and LINGUAS. - * configure: Rebuild. - -2000-05-31 Bruce Korb <bkorb@gnu.org> - - * fixinc/check.tpl: rework to use test result tree - * fixinc/Makefile.in: change invocation of check script - * fixinc/check.diff: No longer needed - * fixinc/fixincl.x: regenerate - * fixinc/inclhack.def: add new tests - * fixinc/tests/base/arch/i960/archI960.h: New test result - * fixinc/tests/base/curses.h: modified test result - * fixinc/tests/base/stdio.h: ditto - * fixinc/tests/base/time.h: ditto - * fixinc/tests/base/sys/asm.h: ditto - * fixinc/tests/base/sys/stat.h: ditto - * fixinc/tests/base/sys/wait.h: ditto - -Wed May 31 13:17:20 2000 Philippe De Muyter <phdm@macqel.be> - - * except.c (clear_function_eh_region): Do not free NULL. - -Wed May 31 08:07:52 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (c-decl.o): Depend on rtl.h and expr.h. - * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT. - (REG_BASE_VALUE): Remove unneeded cast to unsigned. - (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT. - (find_base_decl): New function, from c_find_base_decl in c-common.c. - (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT. - (get_alias_set): Likewise. - Major rework to do more things and allow language-specific code - to just handle special-cases. - (record_alias_subset): Args are HOST_WIDE_INT. - (record_component_alias): Local vars are HOST_WIDE_INT. - Don't handle COMPLEX_EXPR. - (get_varargs_alias_set): Moved from builtins.c. - (get_frame_alias_set): New function. - * builtins.c (expand_builtin_return_address): Use frame alias set. - (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set - for setjmp buffer. - (get_memory_rtx): Rework to use set_mem_attributes. - (get_varargs_alias_set): Deleted from here. - * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT. - (c_find_base_decl): Deleted from here. - (c_get_alias_set): Remove many cases and rework to just handle - C-specific cases. - * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT. - * c-decl.c (rtl.h, expr.h): Now included. - (init_decl_processing): Call record_component_aliases on array types. - (grokdeclarator): Likewise. - Set TREE_ADDRESSABLE for all fields that are not bitfields. - * c-typeck.c (common_type): Call record_component_aliases for array. - * caller-save.c (setup_save_areas): Rework register loop for unsigned. - Set all save areas to the frame alias set. - * calls.c (initialie_argument_information): Call set_mem_attributes. - (compute_argument_addresses, expand_call): Likewise. - * explow.c (set_mem_attributes): New function. - (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg. - * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}. - LEN and OFFSET now HOST_WIDE_INT. - (clear_by_pieces): Similar changes. - (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields. - (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT. - (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES. - (clear_by_pieces_1): Likewise. - (emit_push_insn): Call set_mem_attributes. - (expand_expr, case INDIRECT_REF): Likewise. - (expand_expr, case VAR_DECL): Call change_address. - * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and - tree_low_cst. - (get_varargs_alias_set, get_frame_alias_set): New decls. - (record_base_value, record_alias_subset, lang_get_alias_set): Likewise. - (new_alias_set, set_mem_attributes): Likewse. - * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT. - (assign_stack_temp_for_type): Likewise. - Can split slot even if alias set since can copy. - Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P. - (assign_temp): Use host_integerp and tree_low_cst. - (put_var_into_stack): Properly handle SAVE_EXPR. - (put_addressof_into_stack): Likewise. - (assign_parms): Call set_mem_attributes. - Delete #if 0 code. - (fix_lexical_address): Put reference to chain into frame alias set. - (expand_function_start): Call set_mem_attributes. - * integrate.c (expand_inline_function): Likewise. - * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES. - * regmove.c (try_apply_stack_adjustment): Likewise. - * reload.c (push_reload, make_memloc): Likewise. - * reload1.c (alter_reg): Make alias sets for spilled pseudos. - * rtl.def (MEM): Update comment. - * rtl.h (MEM_ALIAS_SET): Now uses XCWINT. - (move_by_pieces): Change length to HOST_WIDE_INT. - (record_base_value, record_alias_subset): Delete from here. - * stmt.c (expand_decl): Call set_mem_attributes. - * stor-layout.c (finish_record_layout): Call record_component_aliases.i - * toplev.c (compile_file): Call init_alias_once earlier. - * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted - from here: now in alias.c. - * tree.h (struct tree_type): alias_set is HOST_WIDE_INT. - (struct tree_decl): Likewise. - (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here. - * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes. - (output_constant_def, force_const_mem): Likewise. - - * flow.c (propagate_block): If block has no successors, stores to - frame are dead if not used. - -2000-05-31 Nathan Sidwell <nathan@codesourcery.com> - - * stmt (expand_end_case): Reorder conversion sequence for jump - table to avoid extra truncations. - -Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) - - * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn - in the block is more than just a simple conditional branch. - (noce_process_if_block): Similarly. - -Tue May 30 22:25:57 2000 Alexandre Oliva <aoliva@cygnus.com> - - * optabs.c (prepare_float_lib_cmp): Protect *px and *py from - queue. - -2000-05-30 Michael Meissner <meissner@redhat.com> - - * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH - instructions. Treat LO_SUM operations as loading the full integer - constant. - -2000-05-30 Richard Henderson <rth@cygnus.com> - - * combine.c (get_pos_from_mask): Test exact_log2 result as signed. - -2000-05-30 Richard Henderson <rth@cygnus.com> - - * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. - -2000-05-30 Bruce Korb <bkorb@gnu.org> - - * fixinc/tests/*: Added expected result files for fixinc's make check - * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm - -2000-05-30 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.md (*setne_internal): Use match_operator - instead of working down from insn. - -2000-05-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * invoke.texi (-Wtraditional): Update WRT function macros. - -Tue May 30 09:57:32 2000 Philippe De Muyter <phdm@macqel.be> - - * except.c (free_exception_table): Do not free NULL. - -2000-05-29 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (do_if): Don't save and restore only_seen_white here. - * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white - and skipping here. - -2000-05-29 Richard Earnshaw (rearnsha@arm.com) - - * flow.c (mark_used_reg): If a register is unconditionally live, - remove any conditional death information. - -2000-05-29 Richard Henderson <rth@cygnus.com> - - * final.c (current_output_insn): New. - (final_scan_insn): Set it. - * output.h: Declare it. - -2000-05-29 Richard Henderson <rth@cygnus.com> - - * stor-layout.c (finalize_record_size): Fix typo. - - * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END - if nlabel is null. - -2000-05-29 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (cpp_reader): Remove if_stack. Change - potential_control_macro to a cpp_hashnode *. Add skipping flag. - * cpphash.h (struct ihash): Change control_macro to a - cpp_hashnode * and shorten name to cmacro. - Add NEVER_REINCLUDE constant. - - * cppfiles.c (redundant_include_p): Drop cpp_reader argument. - Examine the cmacro node directly, no need to call cpp_defined. - (_cpp_execute_include, read_include_file): Set cmacro to - NEVER_REINCLUDE, not U"". - * cpplex.c (cpp_push_buffer): Don't set new->if_stack. - (cpp_get_token): If pfile->skipping is true, discard text and - keep scanning until we hit a directive; don't expand macros. - - * cpplib.c (struct if_stack): Remove if_succeeded, add - was_skipping. Change control_macro to a cpp_hashnode * and - shorten name to cmacro. Remove typedef IF_STACK. - (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *. - (conditional_skip, skip_if_group, - consider_directive_while_skipping): Delete. - (push_conditional): New. - (_cpp_handle_directive): Don't process directives other than - conditionals if we are skipping. - - (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif): - Update to new scheme. - (validate_else): Skip rest of line here, unconditionally. - (_cpp_unwind_if_stack): The stack is per-buffer. Force - pfile->skipping off. - - (all): Remove `scare quotes' from error messages. - -2000-05-29 Richard Henderson <rth@cygnus.com> - - * function.c (emit_return_into_block): New line_note arg; emit it. - (thread_prologue_and_epilogue_insns): Attempt to locate a line note - for the close brace to accompany HAVE_return. Move all line notes - following the epilogue to before the NOTE_INSN_EPILOGUE_BEG. - -2000-05-29 Richard Henderson <rth@cygnus.com> - - * longlong.h [__alpha] (count_leading_zeros): New. - (count_trailing_zeros): New. - (COUNT_LEADING_ZEROS_0): New. - - * config/alpha/alpha.c (alpha_zero_comparison_operator): New. - (alpha_split_conditional_move): New. - * config/alpha/alpha-protos.h: Prototype them. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67. - * config/alpha/alpha.md: Update ffs cix commentary. - (*ze_and_ne): New. - (*nabssf2, *nabsdf2): New. - (*mov[qhsd]icc_internal): Use add_operand. - (if_then_else constant splitters): New. - (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New. - (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New. - -2000-05-29 Richard Henderson <rth@cygnus.com> - - * combine.c (force_to_mode) [MINUS]: Convert subtraction from - a constant to NEG or NOT when conditions allow. - - * combine.c (combine_simplify_rtx): Don't create an if_then_else - unless both args are general_operand. Don't canonicalize plus - to ior unless it helps. - - * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; - instead track register_life_up_to_date. Toggle no_new_pseudos - around if_convert. - -2000-05-28 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters - so output_operand doesn't see them. - -Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com> - - * lcm.c (make_preds_opaque): Fix comment. - (optimize_mode_switching): Use NORMAL_MODE instead of - MODE_USES_IN_EXIT_BLOCK. Change leftover instance of - FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE. - Handle insertions before an existing NOTE_INSN_BASIC_BLOCK. - * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE. - (MODE_USES_IN_EXIT_BLOCK): Delete. - (MODE_AT_ENTRY) Rename to NORMAL_MODE. - * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete. - (MODE_AT_ENTRY): Rename to NORMAL_MODE. - (MODE_NEEDED): Don't look for USE. - (EPILOGUE_USES): Define. - -Sun May 28 23:26:59 2000 Philippe De Muyter <phdm@macqel.be> - - * mklibgcc.in (all): Variable initialised to `libgcc'. - -2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> - - * toplev.h (skip_leading_substring): New macro. - * toplev.c (decode_f_option): Use skip_leading_substring instead - of strncmp. - (decode_W_option): Likewise. - -2000-05-28 Nick Clifton <nickc@cygnus.com> - - * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can - modify reg_names. - -2000-05-28 Richard Henderson <rth@cygnus.com> - - * regclass.c (record_operand_costs): Protect reg_changes_size - with CLASS_CANNOT_CHANGE_SIZE. - - * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn. - -2000-05-28 Richard Henderson <rth@cygnus.com> - - * function.c (diddle_return_value): A pcc-style struct return - returns a pointer. - -2000-05-27 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c: Read files in, using mmap if possible, then - prescan them separately. - (read_file, read_with_read): New functions. - * cpplex.c: Don't define UCHAR_MAX. - (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read - the file here. - - * cppinit.c (handle_option): Automatically define __cplusplus, - __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see - the respective -lang switch. - - * cpphash.h (enum node_type, struct hashnode, _cpp_lookup - prototype): Move to... - * cpplib.h: ... here. Rename struct hashnode to struct - cpp_hashnode and give it a typedef. Rename _cpp_lookup to - cpp_lookup. Add 'fe_value' slot, a union tree_node *. - -2000-05-27 Geoffrey Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.md (movsi): Constify 'name'. - - * regclass.c [CLASS_CANNOT_CHANGE_SIZE] - (class_can_change_size): New variable. - (reg_changes_size): New variable. - (init_reg_sets_1): Initialise class_can_change_size. - (record_operand_costs): Remove subreg_changes_size. - Don't pass it around. Instead update reg_changes_size. - (regclass): Initialise and free reg_changes_size. If a register - changes size, don't preference it to a class that contains - registers that can't change size. - (record_reg_classes): Don't look at subreg_changes_size. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * print-rtl.c (reg_names): Remove const. - * regclass.c (reg_names): Likewise. - * regs.h (reg_names): Likewise. - * hard-reg-set.h (reg_names): Likewise. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (alpha_does_function_need_gp): Test - TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef. - (alpha_expand_prologue): Emit prologue_mcount if needed. - * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0. - * config/alpha/alpha.md (prologue_mcount): New. - * config/alpha/linux.h (FUNCTION_PROFILER): Remove. - (TARGET_PROFILING_NEEDS_GP): Undef before redefining. - * config/alpha/netbsd.h: Likewise. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19 - change to config/elfos.h. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * Makefile.in (resource.o): Depend on except.h. - * except.h (output_exception_table_data): Prototype. - * genconfig.c (gen_peephole2): Prototype. - * genemit.c (main): Include ggc.h. - * genoutput.c: Revert parts of last change: include errors.h - (main): Set progname. - * recog.c: Include hard-reg-set.h before recog.h. - * resource.c: Include except.h. - - * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect - with RTX_CODE. - (alpha_write_linkage): Protect with BUFSIZ. - (alpha_need_linkage): Update prototype. - * config/alpha/alpha.c (function_arg): Move VMS code here. - (alpha_links_base): Remove. - (alpha_links): New. - (mark_alpha_links_node, mark_alpha_links): New. - (alpha_write_one_linkage): New. - (alpha_need_linkage): Use a splay tree. Build the linkage symbol. - (alpha_write_linkage): Use splay_tree_foreach. - * config/alpha/alpha.md (call_vms): Use alpha_need_linkage - to get the linkage symbol. - (call_value_vms): Likewise. - * config/alpha/elf.h (output_file_directive): Remove decl. - (ctors_section, dtors_section): Prototype. - (sbss_section, sdata_section): Prototype. - * config/alpha/vms.h (FUNCTION_ARG): Remove. - (readonly_section, link_section, literals_section): Prototype. - (ctors_section, dtors_section): Prototype. - (vms_valid_decl_attribute_p): Remove decl. - (alpha_arg_type, alpha_arg_info_reg_val): Likewise. - -2000-05-27 Geoff Keating <geoffk@cygnus.com> - - * reload.c (get_secondary_mem): Don't widen floating-point modes. - - * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when - substituting the REG in a (subreg:X (reg:Y ...)). - -2000-05-28 Neil Booth <NeilB@earthling.net> - - * cpplex.c (_cpp_lex_line): Merge vertical space. Flag - first token of a line BOL. Update EOF code for this. - Remove illegal directive check - it appears in the (not - yet committed) caller. - * cpplib.h (BOL): New flag. - -2000-05-28 Neil Booth <NeilB@earthling.net> - - * cpplex.c (_cpp_init_toklist): No comment space to initialise. - (_cpp_free_toklist): No comment space to free. - (expand_comment_space): Remove. - (save_comment_space): Place the comment in the current token and - not in a separate comment space. - (_cpp_lex_line): Save comments during plain code and #define - directives only. - * cpplib.h (struct _cpp_toklist): Remove comment space. - -2000-05-28 Neil Booth <NeilB@earthling.net> - - * cppexp.c (parse_assertion): Supply extra argument to - _cpp_init_toklist. - * cpplib.c (do_assert, do_unassert): Similarly. - * cpphash.h (_cpp_init_toklist) Update. - (_cpp_expand_token_space): New. - (DUMMY_TOKEN, NO_DUMMY_TOKEN): New. - * cpplex.c (_cpp_init_toklist): New argument. - (parse_string2): New argument multiline_ok. - (spell_token): Take a const cpp_token *. - (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used. - (SPELL_ macros): Replace with enum. - (expand_token_space): Replace with _cpp_expand_token_space. - Take COUNT argument. - (IS_DIRECTIVE): Update. - (_cpp_lex_line): Update token structure before parsing number. - Don't assume start at beginning of token list. - (save_comment): Use INIT_TOKEN_NAME. - -2000-05-27 Zack Weinberg <zack@wolery.cumb.org> - - * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes - -Wmissing-prototypes. - * configure: Regenerate. - * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES. - - * builtins.c, calls.c: Change all instances of gen_call_* or - gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*. - * calls.c (struct_value_size_rtx): Separate definition from - initialization to avoid unused variable warning. - - * genflags.c (gen_macro): New function. - (gen_proto): Call it for gen_call_* and gen_sibcall_*. - (gen_nonproto): Delete. - (gen_insn): Put all insns on the same obstack. - (main): Generate prototypes for everything unconditionally. - - * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented - out check for wchar_t. - * acconfig.h: Add template for ssize_t. Remove @TOP@. - * system.h: Add infrastructure for defining missing - TYPE_MAX/TYPE_MIN macros. Use it to provide fallback - definitions of UCHAR_MAX and SSIZE_MAX. - * configure: Regenerate. - * config.in: Regenerate. - - * Makefile.in (libgcc2.ready): Rename to libgcc.ready. - Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed - headers. - (clean): No need to delete libgcc1.a, libgcc1-asm.a, - libgcc2.a, or libgcc1.null. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * Makefile.in (recog.o): Don't depend on resource.h. - * recog.c: Don't include resource.h. - (recog_last_allowed_insn): Remove. - (recog_next_insn): Remove. - (struct peep2_insn_data): New. - (peep2_insn_data, peep2_current): New. - (peep2_next_insn): New. - (peep2_regno_dead_p, peep2_reg_dead_p): New. - (peep2_find_free_register): New. - (peephole2_optimize): Track life information by insn as we go. - * recog.h: Update declarations. - * resource.c (find_free_register, reg_dead_p): Remove. - * resource.h: Remove their declarations. - * toplev.c: Include hard-reg-set.h before recog.h. - - * genconfig.c (max_insns_per_peep2): New. - (gen_peephole2): New. - (main): Call it. - * genemit.c (output_peephole2_scratches): Generate calls to - peep2_find_free_register; adjust surrounding code. - (main): Have insn-emit.c include hard-reg-set.h before recog.h. - * genrecog.c (change_state): Don't track last_insn. - (write_action): Write into *_pmatch_len before accepting. - (write_tree): Adjust peephole2_insns and subroutines to match. - - * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. - - * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode. - (hard_int_register_operand): New. - * config/alpha/alpha-protos.h: Declare it. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand - as needed; use peep2_reg_dead_p instead of dead_or_set_p. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * function.c (thread_prologue_epilogue_insns): Don't move the - line note at the head of the chain. Only force a lineno note - before the end of block 0. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * gensupport.c (collect_insn_data): Record the maximum number - of alternatives, not the last seen. - - * genoutput.c: Don't include errors.h. - (struct data): Add lineno member. - (have_error): New. - (scan_operands): Use message_with_line instead of error. - (validate_insn_alternatives): Likewise. - (gen_insn): Accept and store the pattern's line number. - (gen_peephole, gen_expand, gen_split): Likewise. - (main): Don't set progname. Pass line_no to gen_foo. - -2000-05-27 Richard Henderson <rth@cygnus.com> - - * config/d30v/d30v.c (d30v_print_operand): Handle ':'. - * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'. - * config/d30v/d30v.md (attr predicable): New. - (all insn patterns): Mark non-predicable patterns; use %: on the rest. - (andsi3*): Unify into one pattern. - (iorsi3*, xorsi3*): Likewise. - (peephole2 patterns): Use peep2_reg_dead_p; verify not a - conditional return. - (old cond_exec patterns): Remove. - (define_cond_exec): New. - -Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.h (TREE_CODE_LENGTH): New macro. - * c-common.c (c_find_base_decl): Use it. - * expr.c (safe_from_p): Likewise. - * print-tree.c (print_node): Likewise. - * tree.c (make_node, copy_node, get_identifier): Likewie. - (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. - (build, build_nt, build_parse_node, simple_cst_equal): Likewise. - * fold-const.c (make_range): Likewise. - (fold): Likewise; also use first_rtl_op. - * c-iterate.c (collect_iterators): Use first_rtl_op. - * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. - Use IS_EXPR_CODE_CLASS. - (preexpand_calls): Likewise. - * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op - and TREE_CODE_LENGTH. - * stmt.c (warn_if_unused_value): If no operands, no unused value. - -2000-05-26 Geoffrey Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather - than '%1(%*)'. - (movdi_internal64): Likewise. - - * config/rs6000/rs6000.md: Correct order of operands for DImode - boolean patterns. - - * config/rs6000/rs6000.c (boolean_or_operator): New function. - * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator. - * config/rs6000/rs6000.md: Use boolean_or_operator instead of - boolean_operator for the boolean patterns without NOTs. - - * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename - from reg_or_u_cint_operand. Change comment and behaviour. - (logical_operand): Clean up, add assertion. - (non_logical_cint_operand): Also check for - reg_or_logical_cint_operand. - * config/rs6000/rs6000.h (PREDICATE_CODES): Update. - * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand - in the expander. - (xorsi3): Likewise. - (iordi3): Likewise. - (xordi3): Likewise. - -2000-05-26 Mark Mitchell <mark@codesourcery.com> - - * tree.h (struct record_layout_info): Rename to (struct - record_layout_info_s). - * stor-layout.c (start_record_layout): Replace - `record_layout_info' with `record_layout_info_s'. - -2000-05-26 Richard Earnshaw <rearnsha@arm.com> - - * flow.c (find_label_refs): New function. - (find_basic_blocks_1): Call it for each alternative of a call - placeholder. - -2000-05-26 Richard Earnshaw <rearnsha@arm.com> - - * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC - of get_pc. - -2000-05-25 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (alpha_comparison_operator): Don't be - so strict about DImode. - (alpha_swapped_comparison_operator): Likewise. - * config/alpha/alpha.md (*setne_internal): Name it. Allow - any integer output mode. - (*setcc_internal): Likewise. - (*setcc_swapped_internal): Likewise. - (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them. - (*mov[qhs]icc_internal): New. - (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New. - -2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca> - - * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified. - -2000-05-25 Richard Henderson <rth@cygnus.com> - - * bb-reorder.c (reorder_block_def): Reorder elements for size. - Remove add_jump; add next; replace flags with visited. - (rbd_init): Remove. - (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove. - (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove. - (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove. - (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove. - (RBI): New. - (reorder_index, reorder_last_visited): Remove. - (skip_insns_after_block): Rewrite to use a switch. - (get_common_dest): Remove. - (chain_reorder_blocks): Remove. - (record_effective_endpoints): Split out from reorder_basic_blocks. - (make_reorder_chain): Likewise. Loop until all blocks are placed. - (make_reorder_chain_1): Renamed from old make_reorder_chain. - Only construct the reorder chain, do not move insns. Try harder - to tail recurse. - (label_for_bb, emit_jump_to_block_after): New. - (fixup_reorder_chain): Use them. Do bulk block movement. Examine - and adjust the jump insns appropriately. Fixup basic_block_info. - (verify_insn_chain): Always define. - (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko - in allocation size. - (make_new_scope): Don't write zeros to calloc'd space. - (build_scope_forest): Rely on xrealloc to DTRT. - (reorder_basic_blocks): Don't build loop nest. Don't fail if - profile_arc_flag. Streamline EH test. - - * flow.c (redirect_edge_succ, redirect_edge_pred): New. - * basic-block.h: Declare them. - -2000-05-25 Alexandre Oliva <aoliva@cygnus.com> - - * emit-rtl.c (reset_used_decls): New function. - (unshare_all_rtl_again): Call it. - -2000-05-25 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (maybe_macroexpand): Warn about function-like - macros used in non-function context, if -Wtraditional. - -2000-05-25 Mark Mitchell <mark@codesourcery.com> - - * recog.c (peephole2_optimize): Use INSN_P. - -2000-05-25 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (seq_contains_jump): New. - (noce_try_store_flag_constants): Use it to fail conversion. - (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise. - -2000-05-25 Mark Mitchell <mark@codesourcery.com> - - * except.h (can_throw): Declare it. - * except.c (can_throw): Give it external linkage. - * resource.c (find_dead_or_set_registers): Use can_throw. - -2000-05-25 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_set_1): Don't record conditionally dead memory. - -2000-05-25 Jan Hubicka <jh@suse.cz> - - * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p - and pc_set at the place of simplejump_p and condjump_p. - * cse.c (record_jump_equiv): Likewise. - * emit-rtl.c (emit): Likewise. - * explow.c (find_next_ref): Likewise. - * flow.c (tidy_fallthru_edge): Likewise. - (init_propagate_block_info): Likewise. - * gcse.c (delete_null_pointer_checks): Likewise. - * ifcvt.c (cond_exec_get_condition, noce_get_condition, - dead_or_predicable): Likewise. - * integrate.c (copy_insn_list): Likewise. - * loop.c (scan_loop, verify_dominator, find_and_verify_loops, - for_each_insn_in_loop, check_dbra_loop, get_condition, - insert_bct, load_mems): Likewise. - * resource.c (find_dead_or_set_registers): Likewise. - * sibcalls.c (simplejump_p): Likewise. - * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise. - -2000-05-25 David Edelsohn <edelsohn@gnu.org> - - * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move - to STRING case. Use doubleword STRING move for TARGET_POWERPC64 - when unaligned. - * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT. - (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame. - (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high. - * rs6000.md: Name various internal patterns. - -2000-05-25 Jan Hubicka <jh@suse.cz> - - * jump.c (invert_exp_1): Remove first argument, use pc_set - to get the expression. - (redirect_exp): Make static; redirect only the pc_set expression, - remove first argument. - (invert_exp): Remove first argument, make static. - (jump_optimize): Use any_condjump_p, any_uncondjump_p and - any_onlyjump at most places where we originaly did condjump_p - and simplejump_p. - (jump_back_p, follow_jumps, thread_jumps): Likewise. - (delete_barrier_succesors): Use pc_set. - (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update - calls of invert_exp and redirect_exp. - * rtl.h (redirect_exp, invert_exp): Remove. - * unroll.c (copy_loop_body): Use invert_jump and redirect_jump. - -2000-05-25 Richard Henderson <rth@cygnus.com> - - * stmt.c (expand_end_bindings): Fix thinko last change. - -2000-05-25 Andrew MacLeod <amacleod@cygnus.com> - Andrew Haley <aph@cygnus.com> - - * except.c (func_eh_entry): Add emitted field. - (new_eh_region_entry): Set emitted field to 0; - (output_exception_table_entry): Only emit previously un-emitted data, - and send it to the eh_data section. - (output_exception_table): Break out common parts. Output - exception table for entire compilation unit to eh_data section. - (output_exception_table_data): Common parts of output_exception_table. - Send output to eh_data section. - (output_function_exception_table): Output exception table data for - a single function to eh_data section. - (free_exception_table): New external to free the table. - * except.h (free_exception_table): Add prototype. - (output_function_exception_table): Add prototype. - * final.c (final_end_function): Output function exception table - for IA64_UNWIND_INFO. - (final_scan_insn): Emit any unwind directives for an insn. - - * frame-dwarf2.c: New file containing all DWARF 2 specific code - from frame.c. - * frame.c: Remove all DWARF 2 specific code. - * config/ia64/frame-ia64.c: New file. - (gthread_stuff): Make all gthread available with - IA64_UNWIND_INFO. - (dwarf_fde): Define an IA64 struct for dwarf_fde. - (__register_frame_info, __register_frame): Move to common area of file. - (__register_frame_info_table, __register_frame_table): Move to common i - area. - (__deregister_frame_info, __deregister_frame): Move to common area. - (__frame_init, find_fde): New versions for IA64_UNWIND_INFO. - (read_uleb128): New version for ia64. - (get_unwind_record): Read the next IA-64 unwind record. - (read_R_record): Read a region header record. - (process_a_b_reg_code): X record helper. - (read_X_record): Read an X format record. - (read_B_record): Read a B format record. - (P3_record_types): List of record types matching the P3 format. - (P7_record_types): List of record types matching the P7 format. - (P8_record_types): List of record types matching the P8 format. - (read_P_record): Read a P format record. - (init_ia64_reg_loc): Set default fields for a register. - (init_ia64_unwind_frame): Set defaults for all register records. - (execute_one_ia64_descriptor): Execute one descriptor record. - (rse_address_add): Calculate the position of a local reg in memory. - (normalize_reg_loc): Turn a location descriptor into a memory address. - (maybe_normalize_reg_loc): Only normalize a descriptor if it falls - within a specified PC offset range. - (get_real_reg_value): Given a register location, retrieve its value. - (set_real_reg_value): Change the value of a register location. - (copy_reg_value): Copy reg values, if needed. - (copy_saved_reg_state): Copy all registers that need to be copied. - (process_state_between): Normalize all frame register records that - fall within the specified PC range. - (frame_translate): Take a processed frame description, and turn - everything into addresses. - (build_ia64_frame_state ): Find and create frame state record for a PC. - (get_personality): Get the personality routine for a given frame. - (get_except_table): Get the exception table for a given frame. - (record_name): Unwind record names for debugging. - (print_record): Print and unwind record. - (print_all_records): Print an entire unwind image. - (__ia64_backtrace): Print a backtrace. - (ia64_backtrace_helper): New function. - (__register_frame_info_aux): New function. - * config/ia64/crtend.asm (__do_frame_setup_aux): New function. - - * frame.h (enum unw_record_type): New unwind record types. - (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records. - (struct unw_r_record, unwind_record): New unwind record structs. - (struct unwind_info_ptr): Unwind information layout. - (IA64_UNW_LOC_TYPE_*): Macros for different types for location - descriptors. - (struct ia64_reg_loc): Register location description. - (struct ia64_frame_state): Location of all registers in a frame. - (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO. - * libgcc2.c (__ia64_personality_v1): Personality routine. - (__calc_caller_bsp): Calculate the bsp register for the caller's - frame. - (ia64_throw_helper): Figure out who to return to and set up the - registers. - (__throw): Throw routine. - - * output.h (assemble_eh_align, assemble_eh_label): New functions - to generate EH info where we want it. - (assemble_eh_integer): New function. - * toplev.c (compile_file): Output module level exception table for - non-ia64 targets. - (main): Set exceptions_via_longjump and flag_new_exceptions based - on IA64_UNWIND_INFO too. - - * varasm.c (assemble_eh_label): Generate a label via - ASM_OUTPUT_EH_LABEL if it has been specified. - (assemble_eh_align): Generate an alignment directive via - ASM_OUTPUT_EH_ALIGN if it has been specified. - (assemble_eh_label): Generate an integer value via - ASM_OUTPUT_EH_type if they have been specified. - * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs. - (ia64_init_builtins): Add __builtin_ia64_bsp - and __builtin_ia64_flushrs. - (ia64_expand_builtin): Add IA64_BUILTIN_BSP and - IA64_BUILTIN_FLUSHRS. - * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and - IA64_BUILTIN_FLUSHRS. - - * config/ia64/ia64.md (flushrs): New insn to flush the register - stack. Add to unspec list. - - * config/ia64/crtbegin.asm (frame_object): Change size. - (__do_frame_setup_aux): New function. - * config/ia64/crtend.asm: call __do_frame_setup_aux. - * config/ia64/t-ia64 (LIB2ADDEH): Add. - * Makefile.in (LIB2ADDEH): Add. - (LIB2ADD): Use LIB2ADDEH. - -2000-05-24 Richard Henderson <rth@cygnus.com> - - * recog.c (offsettable_address_p): If mode size is zero, assume - BIGGEST_ALIGNMENT. - -2000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca> - - * configure.in: Check for -Wno-long-long option support and improve - handling of warning CFLAGS for stages 1 and 2. - * Makefile.in (WARN_CFLAGS): Move definition to configure.in. - * configure: Regenerate. - -Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com) - - * gcc.texi: Remove contributor list. Instead include contrib.texi. - * contrib.texi: New file. - -Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (basic_induction_var): Avoid double recording of an increment. - -Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * Back out this patch: - Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com> - * loop.h (struct induction): Add multi_insn_incr. - * loop.c (basic_induction_var): New multi_insn_incr argument. - Set it if we search back through previous insns for the biv. - (record_biv): New multi_insn_incr argument; fill in struct induction. - (strength_reduce): Discard an iv with multiple bivs, any of - which require multiple insns to increment. - - * loop.c (check_insn_for_bivs): Remove bits copied from above patch. - -Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * rtl.h (loc_mentioned_in_p): Declare. - * reload.c (loc_mentioned_in_p): Moved from here... - * rtlanal.c (loc_mentioned_in_p): to here. No longer static. - Fix loop increment for 'E' handling. - * loop.c (strength_reduce): When doing biv->giv conversion, - take multi-insn biv increments into account. - -2000-05-24 Jason Merrill <jason@casey.soma.redhat.com> - - * stmt.c (expand_end_bindings): Look through NOTEs to find a - BARRIER. - -2000-05-24 Mark Mitchell <mark@codesourcery.com> - - * calls.c (expand_call): Handle cleanups in tail-recursion - arguments analagously to cleanups in sibling calls. - -2000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND. - All callers changed. - -2000-05-24 Alexandre Oliva <aoliva@cygnus.com> - - * expr.c (expand_assignment, store_expr, expand_expr, - expand_expr_unaligned): Set in_check_memory_usage while emitting - chkr_check_addr libcall. - -2000-05-24 Nick Clifton <nickc@cygnus.com> - - * fold-const.c (extract_muldiv): When constructing a - multiplier/divisor, do not expect const_binop to correctly - determine if overflow has occured, so check explicitly. - -2000-05-24 Alexandre Oliva <aoliva@cygnus.com> - - * c-decl.c (build_enumerator): Don't modify the value's type, - convert it. - -2000-05-24 Andreas Jaeger <aj@suse.de> - - * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default. - -2000-05-24 Eric Christopher <echristo@cygnus.com> - - * configure.in: Redefine inhibit_libc conditions. - * libgcc2.c: Remove inhibit_libc conditional define. - * configure: Regenerate. - -2000-05-24 Phil Edwards <pme@sourceware.cygnus.com> - - * configure.in: For --enable-languages=LIST, check for empty LIST. - * configure: Regenerate. - -2000-05-24 Lars Brinkhoff <lars@nocrew.org> - - * pdp11.h (STACK_BOUNDARY): Define. - -2000-05-24 Jakub Jelinek <jakub@redhat.com> - - * ifcvt.c (if_convert): Update life info globally. - -2000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * emit-rtl.c (unshare_all_decls): New function. - (unshare_all_rtl): Call it. - -2000-05-23 Nick Clifton <nickc@cygnus.com> - - * configure.in: Treat 'strongarm' as if it were 'arm' when - determining cpu type. - - * configure: Regenerate. - - * config/arm/arm.c: Change 'char *' to 'const char *' for cases - where constant strings are involved. - - * config/arm/arm.h (arm_condition_codes): Change type to 'const - char *'. - - * config/arm/arm-protos.h: Change 'char *' to 'const char *' for - cases where constant strings are involved. - -Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com> - - * config/sh/sh.c (gen_far_branch, split_branches): Update - to reflect new prototypes for redirect_jump and invert_jump. - (sh_insn_length_adjustment): Get rid of const warnings. - -2000-05-23 Kazu Hirata <kazu@hxi.com> - - * invoke.texi (Options for Debugging Your Program or GCC): Update - the names of dump files. - -Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be> - - * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix. - * configure: Regenerated. - -2000-05-23 Zack Weinberg <zack@wolery.cumb.org> - - * simplify-rtx.c (SIGN_EXTEND): New macro. - (simplify_unary_operation, simplify_binary_operation, - simplify_relational_operation): Use SIGN_EXTEND. Make low - halves of (low, high) pairs unsigned if they weren't already. - (simplify_ternary_operation): Cast INTVAL to unsigned before - comparing to a MODE_BITSIZE. - -2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros - rewritten from the internals of gcc_AC_NEED_DECLARATION{S}. - - * configure.in (gcc_AC_CHECK_DECLS): Call this instead of - gcc_AC_NEED_DECLARATIONS. - - * dwarfout.c: Don't prototype time(). - - * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*. - - * system.h: Likewise. - - * toplev.c: Likewise. - -2000-05-23 Zack Weinberg <zack@wolery.cumb.org> - - * c-decl.c (pushdecl): Invert sense of test for non-global types. - -Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION. - -2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk> - - * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define - -Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler. - (alpha_start_function): Never write ..ng label if VMS or NT. - (alpha_align_insns): Remove GP_IN_USE arg. - Alignment now unsigned. - (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns. - * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand - and two define_insn's. - -2000-05-22 Richard Henderson <rth@cygnus.com> - - * combine.c (simplify_comparison): Use trunc_int_for_mode. - -2000-05-22 Richard Henderson <rth@cygnus.com> - - * stor-layout.c (place_field): Change rli->size to rli->offset. - -2000-05-22 Richard Henderson <rth@cygnus.com> - - * function.c (thread_prologue_and_epilogue_insns): Make sure - existing line number notes appear after the prologue. - -Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config/alpha/alpha.c (alpha_fnname): New static variable. - (print_operand, case '~'): New case. - (alpha_expand_prologue): Emit prologue_ldgp insn if needed. - (alpha_start_function): Set alpha_fnname. - Write "ng" label if no ldgp; don't write ldgp insn. - * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'. - * config/alpha/alpha.md (prologue_ldgp): New define_insn. - -Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com> - - * jump.c (jump_optimize_1): Don't increment LABEL_NUSES - on deleted labels. - -2000-05-22 Zack Weinberg <zack@wolery.cumb.org> - - * varasm.c (eh_frame_section): Revert change to argument list. - -Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value. - (gen_extend_insn, can_fix_p, can_float_p): Likewise. - - * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove - dangling "else" that causes "break" to be conditional. - Also remove unneeded code at start. - -Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be> - - * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1. - * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto. - * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto. - -2000-05-22 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has - just one argument. - -Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c (record_component_aliases): New function. - * tree.h: Clean up some declarations and comments. - (record_component_aliases): New declaration. - * tree.c (get_alias_set): If type and has alias set, use it. - -2000-05-22 Richard Henderson <rth@cygnus.com> - - * simplify-rtx.c (simplify_ternary_operation): Try to simplify - IF_THEN_ELSE to a setcc form. - * jump.c (can_reverse_comparison_p): Be prepared for insn null. - -2000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc/inclhack.def (sun_malloc): Handle `calloc'. - (sun_malloc, sysz_stdtypes_for_sun): Add test_text. - -Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is - not a PARALLEL. - -2000-05-20 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. - * config/mn10300/mn10300.c (print_operand): Likewise. - - * final.c (split_double): Right shift of negative values is not - portable. - - * ifcvt.c (if_convert): Scan and kill dead code. - - * emit-rtl.c (unshare_all_rtl): Store the copied rtx. - -2000-05-20 Zack Weinberg <zack@wolery.cumb.org> - - * diagnostic.c: Eliminate implicit int. - * except.c, gcc.c: Add static prototypes. - * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED. - * gensupport.c (process_rtx): Use XVEC to initialize vector - slot of 'split'. - - * print-rtl.c: If DEBUG_REGISTER_NAMES, define static - debug_reg_names instead of static reg_names. If not, define - global reg_names. - * regclass.c: Don't define global reg_names unless - DEBUG_REGISTER_NAMES is defined. - - * reload1.c (order_regs_for_reload): Remove unused variable. - * varasm.c: Include output.h after defaults.h. Define - eh_frame_section as function of no args, not of unspecified args. - - * gcc.c: Constify argbuf; arguments to store_arg, - process_command, main; elements of struct command and struct - switchstr; local variables in execute, process_command, main. - -2000-05-20 Bruce Korb <bkorb@gnu.org> - - * fixinc/inclhack.def: many applications of c_fix=format + tests - * fixinc/check.diff: regenerated - * fixinc/fixincl.x: regenerated - -Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c: Clarify some comments. - (record_base_value): REGNO is unsigned. - * rtl.h (record_base_value): Likewise. - - * alias.c (aliases_everything_p): Don't special-case QImode here. - * c-common.c (c_get_alias_set): Do it here. - Handle BIT_FIELD_REF by getting alias info for arg. - Use POINTER_TYPE_P. - -2000-05-20 Alexandre Oliva <aoliva@cygnus.com> - - * mklibgcc.in: Restore rule to create ${dir}. - -Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org> - - * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for - GCC_FOR_TARGET used by MULTILIBS. - * mklibgcc.in: Make sure each .o file depends on the - directory it will be in. - Make the multilib directory depends libgcc. - -Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org> - - * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1. - -Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com> - - * fold-const.c (make_range): Handle degenerated intervals. - Fixes c-torture/execute/991221-1.c - -Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. - * reload.c (find_equiv_reg): Likewise. - * alias.c (init_alias_analysis): Likewise. - Only call prologue_epilogue_contains on insns. - * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function. - * bb-reorder.c (hard-reg-set.h): Include earlier. - * haifa-sched.c (hard-reg-set.h): Likewise. - * ifcvt.c (hard-reg-set.h): Likewise. - * local-alloc.c (hard-reg-set.h): Likewise. - * loop.c (hard-reg-set.h): Likewise. - * predict.c (hard-reg-set.h): Likewise. - * regrename.c (hard-reg-set.h): Likewise. - * flow.c (hard-reg-set.h): Likewise. - (reg_set_to_hard_reg_set): New function. - * bitmap.c (regs.h, basic-block.h): No longer include. - (bitmap.h): Now include. - * conflict.c (hard-reg-set.h): Include. - * profile.c (hard-reg-set.h): Likewise. - * print-rtl.c (hard-reg-set.h): Likewise. - * sbitmap.c (hard-reg-set.h): Likewise. - * toplev.c (hard-reg-set.h): Likewise. - * unroll.c (hard-reg-set.h, basic-block.h): Likewise. - * hard-reg-set.h (reg_names): Now constant. - * regs.h (reg_names): Likewise. - * regclass.c (reg_names): Likewise. - * loop.h (basic-block.h): No longer include. - (bitmap.h): Now include. - * reload1.c (order_regs_for_reload): Avoid loop over reg sets. - * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes. - (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise. - -2000-05-19 Jan Hubicka <jh@suse.cz> - Richard Henderson <rth@cygnus.com> - - * basic-block.h (struct edge_def): New field "count". - (struct basic_block_def): Likewise. - * flow.c (entry_exit_blocks): Add count fileds. - (split_edge): Keep count information up-to-date. - (dump_edge_info, dump_flow_info): Dump count fields. - - * final.c (count_instrumented_edges): Rename to edge from arc. - (end_final): Update users. - * profile.c: Include expr.h, basic-block.h. - (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill. - (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill. - (ignore_next_note, return_label_execution_count): Kill. - (bbg_file_name, da_file_name): Kill. - (edge_info, bb_info): New structures. - (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros. - (count_instrumented_edges, total_num_edges): Rename to edge from arc. - (total_num_edges_instrumented): Likewise. - (init_arc, expand_spanning_tree): Kill. - (fill_spanning_tree, tablejump_entry_p): Kill. - (instrument_edges): Rewrite from instrument_arcs to use - commit_edge_insertions infrastructure. - (compute_branch_probabilities): Remove arguments; rewrite for - CFG infrastructure; use rtl_dump_file directly. - (branch_prob, find_spanning_tree): Likewise. - (union_groups, find_group): New. - (init_branch_prob): Make bbg_file_name and da_file_name local. - (end_branch_prob): Use rtl_dump_file directly. - (init_edge_profiler): Rename to edge from arc. - (output_arc_profiler): Kill. - (gen_edge_profiler): New. - (output_func_start_profiler): Turn off profiling. Make the - constructor static when we can. - * rtl.h (branch_prob, end_branch_prob): Update prototypes. - - * toplev.c (DFI_flow): Remove. - (DFI_cfg, DFI_life): New. - (dump_file): Update accordingly. - (compile_file): Call end_branch_prob if profile_arc_flag too. - (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge - profiling after the CFG is built. Move flow1 life analysis to - DFI_life. Always estimate remaining probabilities. - -2000-05-19 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. - - * flow.c (make_edges): The sibling call edge to exit is abnormal. - -2000-05-19 Richard Henderson <rth@cygnus.com> - - * jump.c (redirect_jump): Add delete_unused argument. Don't - remove labels and code following when LABEL_NUSES goes to zero. - (invert_jump): Likewise. - (jump_optimize_1): Fix redirect/invert arguments. - (do_cross_jump, thread_jumps): Likewise. - * flow.c (split_edge): Likewise. - * reorg.c (optimize_skip): Likewise. - (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise. - * profile.c (instrument_arcs): Likewise. - * loop.c (find_and_verify_loops): Likewise. Fix indentation. - * rtl.h: Update prototypes. - -Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com> - - * ssa.c (convert_from_ssa): Tell life_analysis we need death - notes. - (make_regs_equivalent_over_bad_edges): Only look at abnormal - critical edges. - -2000-05-19 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (funlike_macroexpand): Make sure not to walk p1 - past l1 when deleting whitespace and markers. - - * cpplex.c (_cpp_scan_until): Clear AUX field of tokens. - * cpplib.c (do_unassert): Put the list to compare against on - the stack. - -2000-05-19 Bruce Korb <bkorb@gnu.org> - - * fixinc/README: cleaned up old documentation - * fixinc/check.diff: regenerated & verified on OSR5 on ix86 - * fixinc/check.tpl: compute the list of needed directories - emit "#if defined(name)" because of conflict - omit machine name differences from output differences - * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function - (machine_name): change test text to use `sed' markers - * fixinc/fixincl.x: regen - -Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of - a CONSTRUCTOR. - -2000-05-18 Chris Demetriou <cgd@sibyte.com> - - * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update - it to match the current practice. - -2000-05-18 Mark Mitchell <mark@codesourcery.com> - - * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under. - -2000-05-18 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New. - * rtl.h (insn_dependant_p): Declare it. - * loop.c (strength_reduce): Use it. - -2000-05-18 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.c (expand_prologue, expand_epilogue): - 16-bit and 64-bit clean-up. - -2000-05-18 Mark Elbrecht <snowball3@bigfoot.com> - - * configure.in (*-pc-msdosdjgpp): Set float_format to none. - * configure: Rebuilt. - -2000-05-18 Zack Weinberg <zack@wolery.cumb.org> - - * genopinit.c: Use $ for escape sequences in optab patterns. - Remove backslashes from optab patterns. Change $A, $B, $C to - expand to (int) whatever instead of just whatever; remove - explicit (int) from all optab patterns. - - * gensupport.c (xmalloc, xrealloc, xstrdup): Provide. - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c, - genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, - genrecog.c: Remove private copies of xmalloc, xrealloc, and - xstrdup. - -2000-05-18 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize_1): Base minimum insn count during - find_cross_jump on BRANCH_COST. - -2000-05-18 Jakub Jelinek <jakub@redhat.com> - - * print-rtl.c (print_rtx): Only print note line number as string - if between NOTE_INSN_BIAS and NOTE_INSN_MAX. - * final.c (final_scan_insn): Do nothing for note line number 0. - -2000-05-18 Jakub Jelinek <jakub@redhat.com> - - * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE - from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from - NOTE_INSN_DELETED_LABEL. - -2000-05-18 Nick Clifton <nickc@cygnus.com> - - * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant, - uninitialised data in .rodata not .bss, and do not interpret an - error in the initialisation value as meaning that the variable - should be placed in the .bss section. - -Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be> - - * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o', - not `$ac_cv_prog_cc_cc_c_o'. - * configure: Regenerated. - -2000-05-18 Chris Demetriou <cgd@sibyte.com> - Richard Henderson <rth@cygnus.com> - - * c-common.h (enum c_tree_index): Add g77 type entries. - (g77_integer_type_node, g77_uinteger_type_node): New. - (g77_longint_type_node, g77_ulongint_type_node): New. - * c-decl.c (init_decl_processing): Initialize them. - -2000-05-18 Richard Henderson <rth@cygnus.com> - - * config/h8300/h8300.md (subs patterns): Use %G to negate. - - * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT. - (small_power_of_two): Likewise; use exact_log2. - (adds_subs_operand, one_insn_adds_subs_operand): Remove. - (output_adds_subs): Remove. - (two_insn_adds_subs_operand): New. - (split_adds_subs): New. - * config/h8300/h8300-protos.h: Update. - * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT. - (CONST_OK_FOR_L): Match strict adds operands. - (CONST_OK_FOR_N): Match struct subs operands. - * config/h8300/h8300.md (adds_subs insns): Remove. - (addhi patterns): Output adds/subs directly. - (addsi_h8300h): Likewise. - (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand. - -2000-05-18 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c (parse_assertion): New. - (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case. - (_cpp_parse_expr): Remove case '#'. Don't set - parsing_if_directive. - * cpphash.c (collect_objlike_expansion, - collect_funlike_expansion, collect_params, - _cpp_create_definition): The list no longer has a trailing - VSPACE token. - * cpphash.h (enum node_type): Add T_ASSERTION. - (struct hashnode): Remove aschain, add pred. - (struct predicate): New. - Update prototypes. - - * cpplex.c (expand_token_space): Handle both offset and - nonoffset lists. - (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete. - (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist, - _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens, - _cpp_equiv_toklists): New. - (_cpp_scan_line): Rename to _cpp_scan_until; add ability to - stop at any single-character token, not just newline. - (_cpp_lex_token): Remove special cases for #define and #if. - (cpp_get_token): Expect # as a separate token type. Remove - DIRECTIVE case. - (_cpp_get_directive_token): Remove DIRECTIVE case. - (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update. - - * cpplib.c (_cpp_check_directive): Set dirno and - SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags. - (_cpp_handle_directive): Run # <number> through the same logic - as normal directives. - (do_define): Don't set parsing_define_directive. Use - _cpp_scan_until. The list does not have a VSPACE at the end. - (do_if): Save, clear, and restore only_seen_white around - _cpp_parse_expr. - (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/ - (do_assert, do_unassert): Rewrite. - - * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION. - (LIST_OFFSET): New flag. - (struct cpp_toklist): Replace dir_handler and dir_flags with - dirno and flags. - (struct cpp_reader): Remove parsing_if_directive and - parsing_define_directive. - -2000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc/inclhack.def (broken_cabs): Update fix to handle comments - following the cabs decl which terminate on the following line. - Add the corresponding test_text case. - -2000-05-18 Neil Booth <NeilB@earthling.net> - - * cppinit.c (cpp_reader_init): Initialise col_adjust and - default tab stop size. - (no_num, OPT_ftabstop): New. - (handle_option): Handle "ftabstop=" command-line option. - (print_help): Document it. - * cpplex.c (COLUMN): Remove. - (handle_newline): Reset col_adjust. - (skip_whitespace): Update col_adjust as tabs encountered. - (_cpp_lex_line): Update to use col_adjust. Call - skip_whitespace for all whitespace. - * cpplib.h (struct cpp_options): New member tabstop. - (struct cpp_reader): New member col_adjust. - (CPP_BUF_COL): Update. - (CPP_BUF_COLUMN): New. - * cpp.texi: Document "-ftabstop=" command line option. - -Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be> - - * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT - files. - * configure: Rebuilt. - -Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca> - - * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c. - - * tree.c (build_common_tree_nodes): Do not build TI nodes unless - HOST_BITS_PER_WIDE_INT is >= 64. - -2000-05-17 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize_1): Remove inactive but real insns - in jump-to-next-insn optimization. - -2000-05-17 Richard Henderson <rth@cygnus.com> - - * toplev.c (rest_of_compilation): Don't call optimize_mode_switching - unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos. - Don't call recompute_reg_usage if no_new_pseudos is true. - * lcm.c (optimize_mode_switching): Move ifdefs outside function. - Return true if we did work; update global life information. - * basic-block.h (optimize_mode_switching): Update decl. - -2000-05-17 Neil Booth <neilb@earthling.net> - - * cpplex.c (expand_name_space): Don't use ptrdiff_t. - -2000-05-17 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c: New feature, #pragma system_header. - * cpp.texi: Document special treatment of system headers, and - the various mechanisms to get a header that special treatment. - -2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h (offsetof): Define at the very end, to ensure we prefer - the platform's definition if available. - -2000-05-16 Bruce Korb <bkorb@gnu.org> - - * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE - * fixinc/server.c: likewise - * fixinc/fixfixes.c( char_macro_def_fix ): fix regex - + #ifdef debugging code + use #def constant for - sub-pattern count - * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping - on C++ math namespace - -2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): - Don't check the return value of sprintf. Use asprintf to avoid - buffer overflows. - -Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> - - * flags.h (warn_unused_function, warn_unused_label, - warn_unused_parameter, warn_unused_variable, warn_unused_value): - Replace ``warn_unused''. - (set_Wunused): Add declaration. - * toplev.c (set_Wunused): New function. - (warn_unused_function, warn_unused_label, warn_unused_parameter, - warn_unused_variable, warn_unused_value): New variables. - (W_options): Add -Wunused-function, -Wunused-function, - -Wunused-label, -Wunused-parameter, -Wunused-variable and - -Wunused-value. Delete -Wunused. Handled in decode_W_option. - - * toplev.c (decode_W_option): Update -Wunused flags by calling - set_Wunused. - * c-decl.c (c_decode_option): Ditto for -Wall. - - * stmt.c (expand_expr_stmt, expand_expr_stmt, - warn_about_unused_variables): Replace warn_unused with more - explicit warn_unused_value et.al. - * function.c (expand_function_end): Ditto. - * c-typeck.c (internal_build_compound_expr, - internal_build_compound_expr): Ditto. - * c-decl.c (poplevel, pop_label_level): Ditto. - * toplev.c (check_global_declarations): Replace warn_unused with - check for either warn_unused_function or warn_unused_variable. - - * gcc.1, invoke.texi (Warning Options): Document - -Wunused-function, -Wunused-function, -Wunused-label, - -Wunused-parameter, -Wunused-variable and -Wunused-value options. - -Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be> - - * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in - $(srcdir), not in the current directory. - -2000-05-16 Richard Henderson <rth@cygnus.com> - - * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the - assembler supports it. - (.fini, .init): Use a gp-relative indirect call. - (__do_global_dtors_aux): Preserve the gp; rebundle. - (__do_frame_setup): Likewise. - * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1. - (.init): Use a gp-relative indirect call. - (__do_global_ctors_aux): Preserve the gp. - -2000-05-16 Richard Henderson <rth@cygnus.com> - - * flow.c (commit_one_edge_insertion): Be prepared for a return - insn to be inserted on the edge with a normal jump. - * jump.c (jump_optimize_1): Don't look to create return isns. - - * flow.c (flow_delete_insn): Don't adjust reference count of notes. - * jump.c (jump_optimize_1): Likewise. - (returnjump_p): Verify the argument is a JUMP_INSN. - * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL. - -2000-05-16 Nick Clifton <nickc@cygnus.com> - - * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace - GET_RTX_CLASS (GET_CODE ()) == 'i'. - (large_insn_p): Ditto. - (m32r_is_insn): New function: Return true if the insn contains - an executable instruction. - (m32r_adjust_insn): Use m32r_is_insn. - (m32r_sched_reorder): Use m32r_is_insn. - (m32r_sched_variable_issue): Use m32r_is_insn. - -2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like - VAR_DECL. - - * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable. - - * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux - according to given options. - -Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS - if X has VOIDmode either. - (LIMIT_RELOAD_CLASS): Similarly. - - * mn10200.md (indirect_jump, tablejump): Use "register_operand", - not "general_operand" to match the processor's capabilities. - -2000-05-16 Bruce Korb <bkorb@gnu.org> - - * fixinc/README: corrected return address - * fixinc/check.diff: regenerate, now that test works - * fixinc/fixfixes.c(format_fix,format_write): reformatted - (char_macro_def_fix,char_macro_use_fix): corrected and - rewrote to use regex to parse the text - * fixinc/inclhack.def: more testing - * fixinc/fixincl.x: regenerated - - * fixinc/inclhack.def: added several "test_text" attributes - changed several fixes to use `c_fix = format' - re-alphabetized the fixes - - * fixinc/check.diff: regenerate - * fixinc/fixincl.x: regenerate - * fixinc/check.tpl: added `sparc' and `netinet' to the list - of created dirs - - -2000-05-16 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove. - -2000-05-15 Richard Henderson <rth@cygnus.com> - - * toplev.c (rest_of_compilation): Run full jump pass before - find_basic_blocks of flow2. - -2000-05-15 Richard Henderson <rth@cygnus.com> - - * jump.c: Fix typos and clarify commentary from last change. - (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE. - (safe_to_remove_jump_p): Remove. - (condjump_label): Use pc_set. - -2000-05-15 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns - that get in the way after reload. - (cond_exec_process_if_block): Skip a label heading THEN block. - -2000-05-15 Richard Henderson <rth@cygnus.com> - - * varasm.c (output_constant_pool): Abort instead of converting - (improperly) deleted labels to zero. - -2000-05-16 Neil Booth <NeilB@earthling.net> - - * cpplex.c (parse_string2): Update comment. - (cpp_lex_line): No special assertion treatment for '('. - * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT. - * cpplib.h (SYNTAX_ASSERT): Remove. - -Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * jump.c (condjump_p): Mark as depreached. - (any_condump_p): New. - (any_uncondump_p): New. - (pc_set): New. - (safe_to_remove_jump_p): New. - * rtl.h (any_condump_p, any_uncondjump_p, pc_set - safe_to_remove_jump_p): Declare. - -Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c: Re-install both patches reverted by last patch. - (struct arg_data): New field tail_call_reg. - (initialize_argument_information): Initialize tail_call_reg - (load_register_parameters): New argument flags, use - tail_call_reg when emiting tail call sequence. - (expand_call): Update call of load_register_parameters; - copy unadjusted_args_size to adjusted_args_size. - -Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p - and bct_p parameters to flags. - * loop.h (LOOP_UNROLL, LOOP_BCT): New constants. - * rtl.h (loop_optimize): Update prototype. - * toplev.c (rest_of_compilation): Update call of loop_optimize. - -2000-05-15 Jakub Jelinek <jakub@redhat.com> - - * calls.c (expand_call): Move expand_start_target_temps call after - start_sequence(). - -2000-05-15 Neil Booth <NeilB@earthling.net> - - * cpphash.c (trad_stringify, warn_trad_stringify, - collect_params): Make some pointers pointers to const. - * cpplex.c (auto_expand_name_space) Guaranteed to always - expand by at least one character. - (SPELL_CHAR, SPELL_NONE): Temporarily reverse order. - (struct token_spelling): Use const U_CHAR * rather than PTR. - (expand_name_space): Fix up token pointers if name space - is moved when expanding. - (INIT_NAME, cpp_scan_line, parse_name, parse_number, - parse_string2, save_comment, spell_token, cpp_output_list): - Update so the routines handle tokens with a direct pointer to - their text, rather than an offset into the token's list's namebuf. - (_cpp_lex_line): Rearrange for clarity. - - * cpplib.c (_cpp_check_directive): Similarly. - (do_define): Make SYM a pointer to const. - * cpplib.h (struct cpp_name): Replace offset with direct pointer. - (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT. - (TOK_OFFSET): Delete. - (TOK_NAME): Update. - -2000-05-14 Geoffrey Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for - 64-bit ABI. - - * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE - into account. - (logical_u_operand): Delete. - (non_logical_cint_operand): Rewrite to take MODE into account. - (non_logical_u_cint_operand): Delete. - (boolean_operator): New function. - (print_operand): Add new %q operand. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator, - remove logical_u_operand and non_logical_u_cint_operand, - update logical_operand and non_logical_cint_operand. - * config/rs6000/rs6000.md: Rewrite the patterns for performing - logical operations to use %q. - - * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place. - (movdi): Make similar to movsi. - * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There - is no such thing as a DImode CONST_DOUBLE. - * config/rs6000/rs6000.c (output_toc): Likewise. - - * config/rs6000/rs6000.c (output_cbranch): Don't output prediction - codes when old mnemonics are in use. Print register names - for cc registers when requested. - - * optabs.c (expand_float): Don't allow mode widening that causes - double rounding. - - * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32 - flags to their current names -maix64 and -maix32. - -2000-05-14 Bruce Korb <bkorb@gnu.org> - - * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before - and/or after current text of file - * fixinc/fixlib.c(must_malloc): - * fixinc/fixlib.h(must_malloc): + reformatting - * fixinc/inclhack.def: replace the "1i" and "$a" sed commands - with usages of ``c_fix = wrap;'' - Add several tests and use the ``c_fix = format'' fixer more. - * fixinc/fixincl.x: regen - * fixinc/check.diff: regen - * fixinc/check.tpl: emit the associated header with the missing - test message - -Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com> - - * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset - variables $src and $dst. - -2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> - - * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro. - (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise. - (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise. - (struct output_buffer: emitted_prefix_p, prefixing_rule): New - fields. - (set_message_prefixing_rule): Declare. - - * diagnostic.c: (current_prefixing_rule): New variable. - (set_message_prefixing_rule): Define. - (output_set_prefix): Adjust buffer->emitted_prefix_p. - (init_output_buffer): Adjust Initialization. - (output_emit_prefix): Rewrite. Take prefixing rules into account. - -Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be> - - * ifcvt.c (if_convert): Do not free NULL. - -2000-05-12 H.J. Lu (hjl@gnu.org) - - * gthr-dce.h: Add support for libobjc. - * gthr-posix.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-vxworks.h: Likewise. - * gthr-single.h: Likewise. - * gthr-win32.h: Likewise. - -2000-05-12 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.c (fr30_move_double): New function: Emit code - to move a double word value. - (di_operand): New function: Return true if the operand is suitbale - for a double word move operation. - (nonimmediate_di_operand): New function: Return true if the - operand is a DImode register or MEM. - - * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and - nonimmediate_di_operand. - - * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and - nonimmediate_di_operand. - - * config/fr30/fr30.md (movdi): New pattern. Required because - other patterns generate DImode results. - (movdi_insn): New pattern. - -2000-05-12 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (struct shadow_summary): Define - bitfields as type unsigned int. - -Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/t-avr: Added definition of FLOAT while generates - fp-bit.c - - * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in - peepholes for tst+jump = sbrs/sbrc optimization. - -Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz> - - * expr.c (emit_push_insn): Do not adjust stack pointer when - preallocating. - -Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be> - - * ggc-simple.c (offsetof): Macro fallback definition moved from here .. - * system.h (offsetof): ... to here. - -2000-05-12 Richard Henderson <rth@cygnus.com> - - * Makefile.in (final.o): Depend on BASIC_BLOCK_H. - * final.c (final_end_function): Use app_disable. Rearrange note - handling into a switch. Emit deleted labels. - (output_asm_label): Generate label strings for deleted labels. - * flow.c (tail_recursion_label_list): New. - (find_basic_blocks_1): Set label_value_list directly. Collect list - of tail recursion labels from call_placeholders. Don't add deleted - labels to the label value list. - (cleanup_cfg): Use free_EXPR_LIST_list. - (flow_delete_insn_chain): Turn non-removable labels into notes. - (flow_delete_block): Don't disable deleting the block because of - a non-removable label. - (tail_recursion_label_p): New. - (merge_blocks_move_predecessor_nojumps): Don't disable the merge - because of a label. - (merge_blocks_move_successor_nojumps): Likewise. Also move a - jump table. - (merge_blocks): Disable a merge because of tail recursion labels. - * ifcvt.c (merge_if_block): Don't disable a merge because of a label. - Use a more accurate measure of not merging the join block. - (find_if_block): Don't disable conversion because of a label. - (find_if_case_1, find_if_case_2): Likewise. - * jump.c (duplicate_loop_exit_test): Preserve the kind of list - element when copying. - (squeeze_notes): Also leave EH notes. - (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for - REG_LABEL notes. - (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when - deleting a label. - * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for - NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref - referring to a deleted label. Convert tail handling to a switch. - * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE - for NOTE_INSN_DELETED_LABEL. - (NOTE): Fix commentary. - * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST. - (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise. - (CODE_LABEL_NUMBER, LABEL_NAME): Update index. - (LABEL_NUSES, LABEL_REFS): Likewise. - * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL. - -2000-05-12 Bruce Korb <bkorb@gnu.org> - - * fixinc/fixfixes.c(format_write): buglet & relaxed rules - * fixinc/check.diff: updated - * fixinc/inclhack.def: corrected & added some test_text-s - * fixinc/genfixes: removed unneeded options to autogen invocation - * fixinc/fixincl.tpl: Specified the output file - * fixinc/fixfixes.c: visual appearance - * fixinc/fixincl.x: regenerate - -2000-05-12 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix, - CTRL_defn_fix): Delete. - (fix_char_macro_defines, fix_char_macro_uses): Rename to - char_macro_def_fix and char_macro_use_fix, respectively. Put - them into the FIXUP_TABLE. Get the string to search for from - a c_fix_arg. - - (format_write): New function. - (format_fix): Use it. - - (FIX_PROC_HEAD): Constify text parameter. - (machine_name_fix): Constify all char *s. - * fixtests.c (skip_quote): Remove double static. - - * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes, - ctrl_use_quotes): Update for new scheme. - * fixincl.x: Regenerate. - -2000-05-12 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as - DWARF2_DEBUG. - (DWARF2_ASM_LINE_DEBUG_INFO): Define. - (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - -2000-05-11 Robert Lipe <robertlipe@usa.net> - - * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO. - * fixincl.x: Regenerate. - -2000-05-11 Richard Henderson <rth@cygnus.com> - - * calls.c: Revert both 05-09 patches. - -2000-05-11 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.c (print_operand): Print FP constants in - hexadecimal. - * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint - for FP values. - - * mklibgcc.in (EQ): Define it to an equal sign in the Makefile, - and replace any occurrences of `=' in multilib dirs with `$(EQ)'. - -2000-05-11 Jason Merrill <jason@casey.cygnus.com> - - * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine. - -2000-05-11 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary. - -Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration. - * config/avr/avr.c (jump_over_one_insn_p): New function. - * config/avr/avr.md: New peepholes added. Output test and - conditional jump to "sbrc" or "sbrs" command. - -2000-05-11 Mark Elbrecht <snowball3@bigfoot.com> - - * cppmain.c (main): Use IS_DIR_SEPARATOR. - -2000-05-11 Jakub Jelinek <jakub@redhat.com> - - * except.c (find_exception_handler_labels_1): New function. - (find_exception_handler_labels): Split into two functions, dive - into CALL_PLACEHOLDERs when looking for exception handler labels. - -2000-05-11 Stan Cox <scox@cygnus.com> - - * regrename.c (replace_reg_in_block): Improve REG_DEAD handling. - * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2. - * toplev.c (rest_of_compilation): Call regrename_optimize before sched2. - -2000-05-11 Bruce Korb <bkorb@gnu.org> - - * fixinc/fixfixes.c (double_slash_fix): obsolete - (else_endif_label_fix): obsolete - (format_fix): new, unused as yet - (main): obsolete - * fixinc/fixlib.h: added fix description struct for use by format_fix - * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using - * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate - modules. Removed the vestiges of the script version. - Added support for "make check". - * fixinc/check.diff: base diff file (needs work!!) - * fixinc/check.tpl: quiet the fixup output - * fixinc/fixtests.c (main): obsolete - * fixinc/fixincl.sh: don't bother copying fixincl to .. - * fixinc/fixincl.tpl: provide for arguments to c_fix routines - -Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * toplev.c (rest_of_compilation): Remove dead code after - combine. - -2000-05-11 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (collect_funlike_expansion): Make "# is not - followed by a macro argument name" a pedwarn, not an error. - Preserve the # in the output. Suppress the warning if lang_asm. - -Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa*64*-*-hpux11*): New target for PA64 support. - * configure: Rebuilt. - -2000-05-10 Laurynas Biveinis <lauras@softhome.net> - - * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace. - -2000-05-10 Kazu Hirata <kazu@hxi.com> - - * combine.c (try_combine): Fix a typo. - -Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.md (insv): Add comment. - -2000-05-10 Richard Henderson <rth@cygnus.com> - - * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT. - * mklibgcc.in: Rewrite to not use functions. Don't shortcut - dependancies on FPBIT and DPBIT. - -2000-05-10 Nick Clifton <nickc@redhat.com> - - * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth - when optimising for size. - (mark_used_regs:) Ditto. - (try_pre_increment_1): Ditto. - -2000-05-10 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c (lex): Use %.*s to print non-NUL-terminated string. - Make error message friendlier. - - * cpphash.h (struct hashnode): Use struct hack for name - member. - * cpphash.c (struct hashdummy): New. - (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE. - (make_HASHNODE): No need to set ->name pointer. Correct - setting of p. - (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit. - -2000-05-10 Richard Henderson <rth@cygnus.com> - - * flow.c (find_basic_blocks_1): Remove any spare bb_note - after completion. - -2000-05-10 Bruce Korb <bkorb@gnu.org> - - * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static - -2000-05-10 Eric Schweitz <schweitz@nortelnetworks.com> - - * dwarfout.c (dwarfout_finish): Call retry_incomplete_types - after we enter .debug. - -2000-05-10 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the - abstract instance of a nested inline function. - - * stor-layout.c (finish_record_layout): finalize_type_size - before laying out the pending_statics. - -Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net> - - * cpplex.c (spell_token): New function. - (spell_string, spell_comment, spell_name): fold into - spell_token. - (I, S): Add macros. - (E, H): Remove macros. - (save_comment): Save comment opening characters too. - (_cpp_lex_file): Update to use spell_token. Tidy up comment - handling. - * cpplib.h (I, S): Add macros. - (E, H): Remove macros. - (TTYPE_TABLE): Update entries for new speller. - (SYNTAX_ASSERT): Remove. - -Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net> - - * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag - when removing escaped newlines. Reverse sense of test for - escaped newline. - -2000-05-09 Richard Henderson <rth@cygnus.com> - - * flow.c (find_basic_blocks_1): Do not delete the first - bb_note we run across. - (create_basic_block): Use reorder_insns to move an existing - bb_note to the correct place. - -2000-05-09 Richard Henderson <rth@cygnus.com> - - * calls.c (expand_call): Increment currently_expanding_call - before calling optimize_tail_recursion. - -Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * reload1.c (reload_combine): Fix errors in last change. - -2000-05-09 Zack Weinberg <zack@wolery.cumb.org> - - * gcc.c (used_arg): Skip over a semicolon at the end of the - split-up loop; don't break out of it. - - * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. - (tree.o): Depend on output.h. - - * c-decl.c (pending_invalid_xref_file, - current_function_prototype_file): Constify. - (pushdecl): Constify a local char *. - (define_label): Constify filename parameter. - * c-lex.c (init_parse): Constify parameter and return value. - * c-typeck.c (c_expand_asm_operands): Constify filename parameter. - * c-tree.h: Update prototypes. - * c-parse.in: Constify filename member of %union, and if_stmt_file. - * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, - objc/objc-parse.c: Regenerate. - - * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. - * dwarfout.h: Update prototypes. - * expr.c (expand_expr): Constify a local char *. - * flags.h: Constify main_input_filename. - * function.c (expand_function_end): Constify filename parameter. - * genrecog.c (make_insn_sequence): Use a character array for - c_test_pos. - (main): Remove unused variables. - * input.h: Constify input_filename, main_input_filename, and - file_stack.name. Update prototypes. - * output.h: Declare first_global_object_name and - weak_global_object_name here, as const char *. - * stmt.c (expand_asm_operands): Constify filename parameter. - * toplev.c (compile_file, push_srcloc, debug_start_source_file): - Constify filename parameter. - (input_filename, main_input_filename): Constify. - * toplev.h: Update prototypes. - * tree.c: Include output.h. Don't declare - first_global_object_name or weak_global_object_name. Clean up string - bashing in get_file_function_name_long. - * tree.h (struct tree_decl): Constify filename member. - (input_filename): Constify. - Update prototypes. - * varasm.c (first_global_object_name, weak_global_object_name): - Constify. - (assemble_start_function, assemble_variable): Clean up string bashing. - - * gcc.c: Constify all spec-related strings initialized, - transitively, from string constants. Constify all strings - and string variables related to multilibs. - (set_spec, read_specs): Cast argument to free to PTR. - (used_arg): Do not modify multilib_matches. Use strncmp plus - length comparison to compare multilib switches. - * genmultilib: Constify everything declared in multilib.h. - -Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru> - - * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn - as deleted. - -Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr-protos.h (extra_constraint): change a type of - second argument from char to int to avoid warnings. - (asm_output_byte): Likewise. - - * config/avr/avr.c (MAX_LD_OFFSET) New macro. - (initial_elimination_offset): Handle elimination from - FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM. - (legitimate_address_p): Use MAX_LD_OFFSET. - (legitimize_address): Likewise. - (out_movqi_r_mr): Likewise. - (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'. - (out_movsi_r_mr): Use MAX_LD_OFFSET. - (out_movsi_mr_r): Likewise. - (out_movqi_mr_r): Likewise. - (out_movhi_mr_r): Likewise. - (notice_update_cc): Correct CC for the ashrqi3 with the shift - count as CONST_INT != 6. - (ashlqi3_out): Coding style modifications. Run `fatal_insn' if - shift count is a CONSTANT_P, but not a CONST_INT. - (ashlhi3_out): Coding style modifications. - (ashlsi3_out): Likewise. - (ashrhi3_out): Likewise. - (ashrsi3_out): Likewise. - (lshrhi3_out): Likewise. - (lshrsi3_out): Likewise. - (ashrqi3_out): Generate shift for any known constant count without - scratch register. Run `fatal_insn' if shift count is a CONSTANT_P, - but not a CONST_INT. - (lshrqi3_out): Coding style modifications. Run `fatal_insn' if - shift count is a CONSTANT_P, but not a CONST_INT. - (extra_constraint): change a type of - second argument from char to int to avoid warnings. - (asm_output_byte): Likewise. - (asm_file_end): Output size generated commands count as a hex - number too. - - * config/avr/avr.h (RETURN_ADDR_RTX): New macro. - - * config/avr/avr.md (addhi3): Fragment commented by &&0 is - removed. - (ashlqi3): Values of "length" attribute changed. Shift count - uses constraints 'n' instead of 'i'. - (ashrqi3): Likewise. Values of "cc" attribute changed. Generate - shifts without clobber register. - (lshrqi3): Shift count uses constraints 'n' instead of 'i'. - (call_insn): Correct test for which_alternative == 1 (was 0). - (call_value_insn): Likewise. - - * config/avr/t-avr: Remove definition of FLOAT while generates - fp-bit.c - -2000-05-09 Bruce Korb <bkorb@gnu.org> - - * fixinc/check.tpl: Template for checking fixes - * fixinc/inclhack.def: Added 'test_text' for many fixes - disable hpux8_bogus_inlines on SCO - * fixinc/fixinc.sco: Oh, yes, we don't need this any more. - -Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (expand_call): Reorganize somewhat in order - to avoid unnecesary recalculation inside loop and make - tail call failure code cleaner. - -Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * alias.c (nonlocal_reference_p): Minor reformatting. - * reload.c (find_equiv_reg): Simplify logic for - CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and - some some reformatting. - * reload1.c (reload_combine): Don't assume everything in - CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit. - -2000-05-08 Richard Henderson <rth@cygnus.com> - - * final.c (current_insn_predicate): New. - (final_scan_insn): Set it. - * output.h (current_insn_predicate): Declare. - - * ifcvt.c (cond_exec_process_insns): New argument prob_val. - Attach it to call insns. - (cond_exec_process_if_block): Track probability for true and - false branches. - (dead_or_predicable): Likewise. - - * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New. - (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. - (PROB_VERY_LIKELY, PROB_ALWAYS): New. - (estimate_probability, expected_value_to_br_prob): Use them. - - * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare. - * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'. - (ia64_expand_prediction): New. - (emit_insn_group_barriers): Don't look at notes. Emit barriers - as needed after calls. - (ia64_epilogue_uses): Mark b0 used. - * config/ia64/ia64.md (beq_true, beq_false): Remove. - (bne_true, bne_false): Remove. - (eq_return, eq_not_return, ne_return, ne_not_return): Remove. - (br_true, br_false): New. Use predicate_operator and - ia64_expand_prediction. - (return_true, return_false): Likewise. - (call_internal): Use ia64_expand_prediction. Don't emit stop bit. - (call_internal1, call_value_internal): Likewise. - (call_value_internal1, call_multiple_values_internal1): Likewise. - - * config/ia64/ia64.c (ia64_direct_return): Require frame size zero. - - * config/ia64/ia64.md (extendsfdf2): Split only after reload. - -2000-05-08 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (may_trap_p): Consider old-style and volatile - asms to trap. - -Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count. - -2000-05-08 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.h (predicate_operator): Declare. - - * config/ia64/ia64.md (extendsfdf2): Split the nop case out - of existance. - - * gensupport.c (process_rtx): Copy and post-process each member - of the define_insn rtvec individually. - -Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net> - - * cpplex.c (spell_token): New function. - (TOKEN_LEN): Add 1 for whitespace. - (_cpp_lex_file): Update to use spell_token. - * cpplib.h (E): Remove. - (TTYPE_TABLE): Update CPP_VSPACE entry. - -2000-05-08 Richard Henderson <rth@cygnus.com> - - * flow.c (init_propagate_block_info): Watch out for conditional - branch to next instruction, and thus one outgoing edge. - - * config/ia64/ia64.c (ia64_encode_section_info): Exit early - for global register variables; don't special case __[CD]TOR_LIST__; - mind ggc_p for string allocation. - -2000-05-08 Nick Clifton <nickc@cygnus.com> - - * config/i386/i386.h (ELIMINABLE_REGS): Fix comment. - -2000-05-08 Bruce Korb <bkorb@gnu.org> - - * fixinc/mkfixinc.sh: fixinc.sco is no longer used - i?86-*-msdosdjgpp* no longer uses fixincludes - * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated - * fixinc/inclhack.sh: deleted - * fixinc/hackshell.tpl: deleted - * fixinc/inclhack.tpl: deleted - * fixinc/Makefile.in: Remove dependencies on above - * fixinc/fixincl.sh: "DO NOT EDIT" text modified - -2000-05-08 Andreas Jaeger <aj@suse.de> - - * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor - support. - -2000-05-07 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed - substitutions. - -Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net> - - * cpplex.c: Move new lexer definitions and prototypes - to top. Conditional include these and the code if - NEW_LEXER is defined. Rename functions whose names - clash if this code included. - -Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com) - - * rtl.def (COND_EXEC): Clarify. - - * i386.md (extendsidi2): Clobber (reg:CC 17) in the - same fashion as zero_extendsidi2. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * config/ia64/ia64.c (predicate_operator): New. - (ia64_print_operand): Handle 'J'. - (rtx_needs_barrier): Handle COND_EXEC. - * config/ia64/ia64.h (BRANCH_COST): Define. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md: Docuement used unspec values. - (attr predicable): New. - (movxf, movxf_internal): New. - (extendsfdf2): Don't comment out nop. - (floatdidf2): Remove. - (truncxfsf2, truncxfdf2, floatdixf2): New. - (abssi2, absdi2): Put the neg in the "true" slot. - (conditional branch instructions): Mark not predicable. - (cmov*_internal): Use predicate_operator. Split to cond_exec. - (abs*_internal): Likewise. - (alloc, set_bsp): Mark not predicable. - (barrier, insn_group_barrier, flush_cache): Likewise. - (define_cond_exec): New. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * c-decl.c: Include "tm_p.h". - - * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness. - (fetchadd_operand, ia64_expand_fetch_and_op): Declare. - (ia64_expand_op_and_fetch): Declare. - * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace. - (setjmp_operand): Constify variables for XSTR. - (ia64_encode_section_info): Likewise. - (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed - values to int. - (ia64_asm_output_external): Constify name. - (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size. - (process_for_unwind_directive): Provide switch default. - (ia64_expand_compare_and_swap): Remove unused variables. - (ia64_expand_builtin): Likewise. - * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int - for printing. - - * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args. - (symbolic_operand, function_operand, setjmp_operand): Likewise. - (shift_count_operand, shift_32bit_count_operand): Likewise. - (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise. - (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise. - (ia64_function_arg_partial_nregs, ia64_function_value): Likewise. - (ia64_print_operand_address, ia64_secondary_reload_class): Likewise. - (ia64_expand_builtin): Likewise. - (call_multiple_values_operation): Make dest_regno unsigned. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * rtl.def (DEFINE_COND_EXEC): New. - * md.texi: Document it. - - * gensupport.c (input_file): Remove. - (struct queue_elem): Add lineno. - (rtx_ready_queue): Remove. - (errors): New. - (predicable_default): New. - (predicable_true, predicable_false): New. - (define_attr_queue, define_attr_tail): New. - (define_insn_queue, define_insn_tail): New. - (define_cond_exec_queue, define_cond_exec_tail): New. - (other_queue, other_tail): New. - (queue_pattern): New. - (process_rtx): Add patterns to the appropriate queues. - (is_predicable, identify_predicable_attribute): New. - (n_alternatives, collect_insn_data): New. - (alter_predicate_for_insn, alter_test_for_insn): New. - (shift_output_template, alter_output_for_insn): New. - (process_one_cond_exec, process_define_cond_exec): New. - (init_md_reader): Read the entire file. Process define_cond_exec. - (read_md_rtx): Return elements from the queues. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_set_1): Don't update conditional life info - if the register is not_dead. - -2000-05-06 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h. - (mostlyclean): Also delete fixincl, fixinc.sh, and - specs.ready, and make clean in the fixinc subdir. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * Makefile.in (gensupport.o): Compile for the host. - (host-prefix gensuuprt.o): Remove. - (genflags.o): Depend on gensupport.h and OBSTACK_H. - (genattrtab.o): Likewise. - (gencodes.o): Depend on gensupport.h. - (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise. - (genpeep.o, genattr.o, genoutput.o): Likewise. - - * gensupport.c (obstack, rtl_obstack): New. - (init_md_reader): Initialize rtl_obstack. - * gensupport.h (rtl_obstack): Declare. - (message_with_line): Declare. - - * genattr.c: Remove all traces of obstack manipulation. - * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. - * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. - - * genattrtab.c (obstack, rtl_obstack): Remove. - (main): Don't init rtl_obstack. - * genflags.c: Likewise. - - * genrecog.c (message_with_line): Move ... - * gensupport.c: ... here. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * c-typeck.c (build_c_cast): Remove dead code. - -2000-05-06 Richard Henderson <rth@cygnus.com> - - * flow.c (split_edge): Don't allocate global_live_at_start for - the new block unless the old blocks had them as well. - - * flow.c (mark_set_1): Respect not_dead when updating reg_live. - - * ifcvt.c (noce_process_if_block): Don't use an insn_b from - test_bb if a or b uses x. - -2000-05-06 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.h: Remove conditional #define of __extension__. - * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2, - RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros - (ENABLE_RTL_CHECKING only). - * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK, - CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros - (ENABLE_TREE_CHECKING only). - * varray.h: Add __extension__ to VARRAY_CHECK macro - (ENABLE_CHECKING only). - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - Use new tail-calling mechanism on ARM. - * arm.md (sibcall, sibcall_value): New expands. - (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns. - (tailcalling peepholes): Delete. - (push_multi): Simplify. - * arm.c (lr_save_eliminated): Delete definition. - (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete. - (output_return_instruction): Remove checks on lr_save_eliminated. - (output_arm_prologue): Remove old tail-calling code. - (arm_output_epilogue): New parameter, really_return. All callers - changed. Handle tail-calling epilogues. - * arm.h (lr_save_eliminated): Delete declaration. - (frame_pointer_needed): Delete declaration. - * arm-protos.h (arm_output_epilogue): Adjust prototype. - - * arm.md (is_thumb): Examine symbol thumb_code, not expression - TARGET_ARM. - * arm.c (thumb_code): Define it. - (arm_override_options): Set it. - * arm.h (thumb_code): Declare it. - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify. - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add - bogus clobber to insns. - (load_multiple_operation, store_mulitple_operation): Don't check - for it. - * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly. - - * arm.md (and_scc, ior_scc): Add missing mode. - - * arm.md (call_value_symbol): Remove predicate from op2. - - * arm.h (SPECIAL_MODE_PREDICATES): Define. - -Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (get_subtarget): New function. - (force_operand, expand_expr, do_store_flag): Use it. - - * toplev.c (compile_file): Don't take strlen of NAME if null. - -2000-05-06 David Edelsohn <edelsohn@gnu.org> - - * xcoffout.c (xcoff_current_include_file, - xcoff_current_function_file, xcoff_lastfile): Constify char *. - (xcoffout_source_file, xcoffout_source_line): Make filename 'const - char *'. - (xcoffout_declare_function): Make name 'const char *'. - (xcoffout_end_epilogue): Make fname 'const char *' - * xcoffout.h (xcoff_current_include_file, xcoff_lastfile, - xcoffout_declare_function, xcoffout_source_line): Match above. - - * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without - -maix64 is error. - * rs6000.c (print_operand): Fix lossage typo. - (output_cbranch): Remove "cr" decoration for now. - * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. - -Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by - constant count. - -2000-05-05 Bruce Korb <bkorb@gnu.org> - - * fixinc/genfixes: Improve the matching for make target names - -2000-05-05 Catherine Moore <clm@cygnus.com> - - * c-common.c (decl_attributes): For TYPE_DECLs attach the - attribute to the decl. - * c-decl.c (pushdecl): Propagate the USED attribute to the - type copy. - -2000-05-05 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the - same way emit_group_load does. - -2000-05-05 Mark Elbrecht <snowball3@bigfoot.com> - - * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name. - - * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR. - (main): Likewise. - -2000-05-05 Rodney Brown <RodneyBrown@mynd.com> - - * pa.h (FUNCTION_ARG_ADVANCE): Warning removal. - -Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org> - - * config/openbsd.h (LINK_SPEC): pass correct flags to ld - to support -shared, on platforms with dynamic libraries. - -Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be> - - * system.h (S_ISBLK): Provide fallback definition. - -2000-05-05 Geoff Berry <geoffb@bops.com> - - * extend.texi (Extended Asm): Document inability to give asm - statements access to condition codes. - -2000-05-05 Marek Michalkiewicz <marekm@linux.org.pl> - - * varasm.c (asm_emit_uninitialised): Use 0, not NULL - as arg 2 of UNIQUE_SECTION. - -Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com) - - * predict.c: Remove May 4 change. - * bb-reorder.c (make_reorder_chain): Do not perform block movement - if we have predicted the branch at 50-50 probability. - -2000-05-05 Richard Henderson <rth@cygnus.com> - - * flow.c (init_propagate_block_info): Fix merge error - in HAVE_conditional_execution code. - -Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal - shift cycle for unknown shift count. Also generates dec + brpl. - (ashlqi3_out): Don't generate dec + brpl which now generates by - `out_shift_with_cnt'. - (ashlhi3_out): Likewise. - (ashlsi3_out): Likewise. - (ashrqi3_out): Likewise. - (ashrhi3_out): Likewise. - (ashrsi3_out): Likewise. - (lshrqi3_out): Likewise. - (lshrhi3_out): Likewise. - (lshrsi3_out): Likewise. - -2000-05-04 Mark Elbrecht <snowball3@bigfoot.com> - - * gcc.c (free_split_directories): Correct typo in explanation - of make_relative_prefix. - -2000-05-04 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point - comparison codes to branch_comparison_operator. - -2000-05-04 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (noce_process_if_block): Always reset X in the A == B case. - -2000-05-04 Richard Henderson <rth@cygnus.com> - - * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi. - (DPBIT_FUNCS): Remove _sf_to_usi. - (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk. - - * ifcvt.c (noce_process_if_block): Fail if A or B modified - between condition and jump. - - * libgcc2.c (near eh_context_specific): Comment #endif string. - * longlong.h: Don't use strings with embedded newlines. - -2000-05-04 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000-protos.h: Add output_cbranch. - * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete. - (print_operand): Delete %t and %T codes. - (output_cbranch): New function. Support branch prediction. - * config/rs6000/rs6000.md: Use output_cbranch for - conditional branches and returns. - -2000-05-04 Jason Merrill <jason@casey.cygnus.com> - - * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned. - * stor-layout.c (place_field): Likewise. - * integrate.h (struct inline_remap): Make regno_pointer_align unsigned. - * expr.c (store_expr): Make align unsigned. - * explow.c (plus_constant_wide): Make low words unsigned. - * expmed.c (choose_multiplier): Likewise. - * fold-const.c (fold): Likewise. - * tree.h (build_int_2): Likewise. - * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise. - * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*. - (init_emit): Change cast to unsigned char*. - * varasm.c (compare_constant_1): Add cast to char*. - * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*. - * reload1.c (reload): Likewise. - - * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0). - -Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com) - - * predict.c (estimate_probability): If no prediction was found, then - predict the successor that is the next physical block (if such a - successor exists). - -2000-05-04 Richard Henderson <rth@cygnus.com> - - * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place. - -2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H. - -2000-05-04 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move - attribute macros from here ... - (CPP_SPEC): to here. - * i386/mingw32.h (CPP_PREDEFINES): Likewise. - (CPP_SPEC): Likewise. - * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. - - * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule. - (libgcc.a): Pass LIB1ASMSRC to libgcc.mk. - -2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype. - - * diagnostic (vbuild_message_string, build_message_string, - build_location_prefix, output_get_prefix, init_output_buffer, - output_notice, vline_wrapper_message_with_location, - v_message_with_decl, default_print_error_function): De-constify. - (set_real_maximum_length): Prototype. - - * diagnostic.h (struct output_buffer, init_output_buffer, - output_get_prefix, output_set_prefix): De-constify. - - * function.c (init_function_start): Constify. - - * gensupport.c (remove_constraints, process_rtx): Prototype. - - * gthr-posix.h: Indent uses of #pragma. - - * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table): - Prototype. - - * predict.c (find_expected_value): Delete prototype. - (expected_value_to_br_prob): Initialize variable `ev_reg'. - - * sbitmap.h (debug_sbitmap): Prototype. - - * ssa.c (compute_coalesced_reg_partition): Prototype. - - * stor-layout.c (debug_rli): Prototype. - - * tree.h (round_down): Prototype. - (init_function_start): Constify. - -2000-05-04 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.h: #define __extension__ away if GCC_VERSION < 2095 - (overly conservative). Change extern inline wrappers to - static inline, define them always, use PARAMS properly. - * cpplex.c (_cpp_get_directive_token): Don't issue pedantic - whitespace warnings for \f and \v at the beginning of a line. - -Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_insns): Free the flow edge list when it - is no longer needed - -2000-05-04 Bruce Korb <bkorb@gnu.org> - - * fixincl/inclhack.def: added broken_cabs - - Remove `extern double cabs' declarations from math.h - * fixincl/inclhack.sh: regen - * fixincl/fixincl.x: regen - * fixincl/fixincl.c: Remove BOGOSITY code - * fixincl/mkfixinc.sh: Remove code for installing "shell" version - -Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and - MEM_ALIAS_SET. - * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET - when calling MEM_COPY_ATTRIBUTES. - * emit-rtl.c (operand_subword, change_address): Likewise. - * explow.c (stabilize): Likewise. - * expr.c (protect_from_queue, emit_move_insn_1): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P - when calling MEM_COPY_ATTRIBUTES. - (make_extraction, simplify_shift_const, gen_lowpart_for_combine): - Likewise. - * cse.c (gen_lowpart_if_possible): Likewise. - * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. - * optabs.c (gen_move_insn): Likewise. - * recog.c (validate_replace_rtx_1): Likewise. - * simplify-rtx.c (add_mem_for_addr): Likewise. - * stmt.c (expand_anon_union_decl): Likewise. - * config/arm/arm.md: Likewise. - * config/h8300/h7300.c (fix_bit_operand): Likewise. - * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise. - (block_move_no_loop, block_move_sequence): Likewise. - * config/rs6000/rs6000.c (expand_block_move_mem): Likewise. - * config/alpha/alpha.c (get_aligned_mem): Likewise. - Clear MEM_ALIAS_SET. - * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling - MEM_COPY_ATTRIBUTES. - -2000-05-03 Robert Lipe <robertlipe@usa.net> - - * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare - to suppress libgcc1. - (i[34567]86-*-sco3.2v5*) Likewise. - (i[34567]86-*-sco3.2v4*) Likewise. - (i[34567]86-*-sco) Likewise. - (i[34567]86-*-solaris2) Likewise. - (i[34567]86-*-sysv5*) Likewise. - (i[34567]86-*-sysv4*) Likewise. - (i[34567]86-*-udk*) Likewise. - (i[34567]86-*-sysv*) Likewise. - -2000-05-03 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.h (U): New define, to correct type of string constants. - (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper - routines, to do casts when passing unsigned strings to libc. - * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them. - - * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *. - * cpphash.c (_cpp_quote_string): Make string an U_CHAR *. - * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *. - * cpplex.c (parse_ifdef, parse_include, validate_else): Make - second argument an U_CHAR *. - - * cppinit.c (builtin_array): Make name and value U_CHAR *, add - length field, clean up initializer. - (ISTABLE): Add __extension__ to designated- - initializers version. - * cpplex.c (CHARTAB): Likewise. - - * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS - case so the file won't be empty. - -Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (struct reorder_block_def): Member succ removed. - (REORDER_BLOCK_SUCC): Removed. - (enum reorder_skip_type): Removed. - (skip_insns_between_block): Renamed to skip_insns_after_block. - Removed second argument. Removed dead code and cleaned up. - (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC. - (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed - second parameter to skip_insns_after_block. - -Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.c (staticp, case LABEL_DECL): New case. - -2000-05-03 Richard Henderson <rth@cygnus.com> - - * Makefile.in (start.encap): Do not depend on LIBGCC1. - - * mklibgcc1.in: Fix typo last change. - -2000-05-03 Jason Merrill <jason@casey.cygnus.com> - - * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long. - (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional. - (GCC_CFLAGS): Use it. - (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS. - * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in, - objc/Make-lang.in: Use it. - -2000-05-03 Jason R Thorpe <thorpej@zembu.com> - - * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint. - -2000-05-03 Richard Henderson <rth@cygnus.com> - - * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate - LIBGCC1 empty with libgcc1.null. - -Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com> - - * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness - change. - -2000-05-03 Greg McGary <gkm@gnu.org> - - * tree.h (tree_common): Add bounded_flag member. Remove - inaccurate comment about number of remaining bits. - (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P, - BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, - MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, - TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, - TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros. - (TYPE_QUAL_BOUNDED): New constant. - (TYPE_QUALS): Handle bounded qualifier. - (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros. - (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, - TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, - TYPE_AMBIENT_BOUNDEDNESS): New macros. - (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants. - (tree_type): Add pointer_depth member. Remove - inaccurate comment about number of remaining bits. - (DECL_POINTER_DEPTH): Add macro. - (tree_decl): Add pointer_depth member. - -Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr-protos.h (test_hard_reg_class): Declared. - * config/avr/avr.c (ashrhi3_out): optimized shift by 15. - (lshrhi3_out): Likewise. - (ashrsi3_out): bugfix in shift by 8. - (test_hard_reg_class): New function. - * config/avr/avr.md: Bugfix inside conditions in peepholes. - (ashlhi3): removed define_expand of this pattern. - (*ashlhi3_insn): renamed to ashlhi3. - (ashlsi3): removed define_expand of this pattern. - (*ashlsi3_insn): renamed to ashlsi3. - (ashrqi3): removed define_expand of this pattern. - (*ashrqi3_insn): renamed to ashrqi3. - (ashrhi3): removed define_expand of this pattern. - (*ashrhi3_insn): renamed to ashrhi3. - (ashrsi3): removed define_expand of this pattern. - (*ashrsi3_insn): renamed to ashrsi3. - (lshrhi3): removed define_expand of this pattern. - (*lshrhi3_insn): renamed to lshrhi3. - (lshrsi3): removed define_expand of this pattern. - (*lshrsi3_insn): renamed to lshrsi3. - -2000-05-03 Rodney Brown <RodneyBrown@pmsc.com> - - * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with - inclusion of "system.h". - -Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.c (ia64_encode_section_info): Add check for - TREE_ASM_WRITTEN. - -2000-05-03 David Mosberger <davidm@hpl.hp.com> - - * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp - if -mauto-pic is on. - (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if - -mconstant-gp is in effect and function-descriptors are being used - to make indirect calls. - * config/ia64/ia64.h (MASK_CONST_GP): New macro. - (MASK_AUTO_PIC): Ditto. - (TARGET_CONST_GP): Ditto. - (TARGET_AUTO_PIC): Ditto. - (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options. - (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or - -mno-pic is in effect. - (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto. - * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if - -mauto-pic is in effect. - (gprel64_offset): New pattern. - (load_gprel64): Ditto. - (call): Handle -mauto-pic like -mno-pic (don't use fptr). If - -mconstant-gp is in effect, no need to preserve gp around direct - calls. - (call_value): Ditto. - * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define. - (FUNCTION_PROFILER): Define. - * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate - @fptr() directive when -mno-pic or -mauto-pic is in effect. - (ASM_OUTPUT_DESTRUCTOR): Ditto. - -2000-05-03 Richard Henderson <rth@cygnus.com> - - * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk. - (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets. - (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets. - (mklibgcc, libgcc.mk): New targets. - (libgcc.a): Use libgcc.mk. - (stmp-multilib): Likewise. - (stmp-multilib-sub): Remove. - (mostlyclean): Don't delete libgcc2 temp files. - * configure.in (AC_PROG_CC_C_O): Add. - (NO_MINUS_C_MINUS_O): Substitute it. - (all_outputs): Add mklibgcc. - * mklibgcc.in: New file. - -2000-05-03 Jason Merrill <jason@casey.cygnus.com> - - * cppexp.c (op_t): Make an int. - - * rtlanal.c (dead_or_set_regno_p): Remove unused variable. - - * varasm.c (initializer_constant_valid_p): Fix parenthesis. - - * gensupport.c (process_rtx): Fix macros used. - -2000-05-03 Richard Henderson <rth@cygnus.com> - - * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for - call-clobbered registers of a call. - -Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com> - - * gensupport.c: New file. - * gensupport.h: New file. - * Makefile.in (HOST_RTL): Depend on gensupport. - (gensupport.o) New rule. - * genattr.c: Use gensupport for reading .md files. - * genattrtab.c: Ditto. - * gencodes.c: Ditto. - * genconfig.c: Ditto. - * genemit.c: Ditto. - * genextract.c: Ditto. - * genflags.c: Ditto. - * genopinit.c: Ditto. - * genoutput.c: Ditto. - * genpeep.c: Ditto. - * genrecog.c: Ditto. - * rtl.def (define_insn_and_split): New DEF_RTL_EXPR. - * md.texi (Insn Splitting): Document define_insn_and_split. - -Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com> - - * flow.c (verify_flow_info): Added two more sanity checks. The - first checks that the blocks are numbered consecutively. The second - checks that n_basic_blocks is actually equal to the number of - basic blocks in the insn chain. - -2000-05-03 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h: Add accessor macros for token lists. - * cpplib.c, cpphash.c, cpplex.c: Use them. - -Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking - memory usage if not in a function. - * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only - return address if static. - -Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest - whether address may trap. - -Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder (chain_reorder_blocks): Changed code to test for - EDGE_FALLTHRU rather than making erroneous assumption that the - first outgoing edge is the fall-through edge. - -Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com> - - * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new - ABI for varargs, across all MIPS. This is incompatible because the - va_list (__builtin_va_list) structure is different, so a compilation - unit passing a va_list and a compilation unit being passed one, should - both be compiled with the same ABI. (The old structure had two - pointers, now it has three.) - -Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (struct reorder_block_def): Remove members end, - block_begin, and block_end. - (REORDER_BLOCK_OLD_END): Delete. - (REORDER_BLOCK_BEGIN): Delete. - (REORDER_BLOCK_END): Delete. - (chain_reorder_blocks): Remove dead code. - -Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (remove_scope_notes): Check for both types of scope - notes as the end of a basic block before deleting. - -2000-05-02 Mumit Khan <khan@xraylith.wisc.edu> - - * final.c (final_start_function): Fix spelling of "necessary". - -2000-05-02 Jason Merrill <jason@casey.cygnus.com> - - * toplev.c (debug_ignore_block): Return int. - * dwarf2out.c (dwarf2out_ignore_block): Likewise. - * toplev.h, dwarf2out.h: Adjust. - * emit-rtl.c (remove_unnecessary_notes): Test return value. - - * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary". - * toplev.c, final.c, rtl.h: Adjust. - -2000-05-02 Zack Weinberg <zack@wolery.cumb.org> - - * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro. - * configure.in: Look for makeinfo in the unified tree, then - for a system makeinfo which is sufficiently new. - * Makefile.in: If configure says makeinfo is too old, don't - build or install Info documentation. - -2000-05-02 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (collect_params): Fix off-by-one error. - (dump_hash_helper): Dump all four macro nodetypes. - -2000-05-02 Jakub Jelinek <jakub@redhat.com> - - * cpphash.c (trad_stringify): Adjust p after stringification as - well. - -2000-05-02 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (CPP_POP, parse_cleanup_t): Delete. - (cpp_buffer): Remove cleanup, seen_eof, manual_pop members. - - * cppfiles.c (file_cleanup): Delete. - * cpphash.c (macro_cleanup): Delete. - (collect_objlike_expansion, collect_funlike_expansion, - macarg, scan_arguments): Remove CPP_POP case. - - * cpplex.c (null_cleanup): Delete. - (cpp_pop_buffer): Do the work that was done in the cleanups - here. Call _cpp_unwind_if_stack from here. - (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput, - cpp_scan_buffer): Run until we see CPP_EOF and the top of - stack is the buffer _below_ the one we stacked. - (cpp_get_token): Always pop an exhausted buffer. Return - CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof. - * cpplib.c (skip_if_group): Don't call cpp_get_token to - increment the line number. - (_cpp_handle_eof): Rename to _cpp_unwind_if_stack. - - * fix-header.c (read_scan_file) [parsing getchar()]: Run until - we see CPP_EOF and the top of stack is the buffer _below_ the - one we stacked. - * scan-decls.c: Likewise. - -2000-05-02 Andrew Haley <aph@cygnus.com> - - * config/ia64/ia64.c (ia64_encode_section_info): Handle the case - where this function is called for the second time on a decl that - has had its section info changed in such a way as to move it out - of small data/bss. - * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition. - -2000-05-01 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before - the sequence we're moving, not to merge_bb->head. - -2000-05-01 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove - reference to alpha/t-linux. - (alpha*-*-linux-gnu*): Likewise. - * configure: Rebuild. - - * calls.c (expand_call): Don't emit reg notes for a sibcall. - - * flow.c (calculate_global_regs_live): Skip for_each_successor_phi - if not in SSA form. - - * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING. - -2000-05-01 Jason Merrill <jason@casey.cygnus.com> - - * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and - TREE_THIS_VOLATILE. - -2000-05-01 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (noce_emit_cmove): Conditionally compile call to - emit_conditional_move. - -2000-05-01 Jakub Jelinek <jakub@redhat.com> - - * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1 - as the dynamic linker. - -2000-05-01 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (open_include_file): Open file in blocking mode. - (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore. - Only exclude block devices and directories. - - * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now - static. Allocate the hashnode and its string in the same - block of memory. - (del_HASHNODE): Don't free h->name. - (_cpp_lookup): If there is no entry for this string, create - one, of type T_VOID. - (_cpp_lookup_slot): Delete. - * cpphash.h: Update prototypes. - - * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID, - not hp == NULL. - * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert, - do_unassert, cpp_defined): Use _cpp_lookup. Don't create a - node here, just fill in the value field properly. "Delete" - entries by setting the value field to T_VOID. Check for - hp->type == T_VOID, not hp == NULL. - - * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H). - * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include - hashtab.h. - -2000-05-01 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.c (print_operand_address): Do not add - zero to SP. - - * config/mn10300/mn10300.c (expand_epilogue): If SP is to be - adjusted by less than 256 bytes, use ret regardless of having any - callee-saved register to restore. - -2000-05-01 Laurynas Biveinis <lauras@softhome.net> - - * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo. - -2000-05-01 Mark Elbrecht <snowball3@bigfoot.com> - - * config/i386/djgpp.h (INT_ASM_OP): Define. - (CPP_PREDEFINES): Rename MSDOS to __MSDOS__. - (ASM_WEAKEN_LABEL): Define. - (MASK_BNU210): Define. - (SUBTARGET_SWITCHES): Define. - (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define. - (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P, UNIQUE_SECTION): Define. - -2000-05-01 Mumit Khan <khan@xraylith.wisc.edu> - - * i386/cygwin.h (INT_ASM_OP): Define. - -Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (address_cost): renamed to avr_address_cost. - * config/avr/avr.h (ADDRESS_COST): use avr_address_cost. - -Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in - __tmp_reg__ and __zero_reg__ initialization. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * flow.c (propagate_one_insn): Mark sets even when the insn is dead. - - * ifcvt.c (noce_process_if_block): Fail the conversion if X is - referenced bewteen the condition and the jump. Don't delete - anything but the jump. - -Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (scope_def): New struct. - (scope_forest_info): New struct. - (struct reorder_block_def): New member "scope". - (REORDER_BLOCK_SCOPE): New macro. - (relate_bbs_with_scopes): New function and prototype. - (make_new_scope): Likewise. - (build_scope_forest): Likewise. - (remove_scope_notes): Likewise. - (insert_intra_1): Likewise. - (insert_intra_bb_scope_notes): Likewise. - (insert_inter_bb_scope_notes): Likewise. - (rebuild_scope_notes): Likewise. - (free_scope_forest_1): Likewise. - (free_scope_forest): Likewise. - (dump_scope_forest): Likewise. - (dump_scope_forest_1): Likewise. - (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block. - Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new - block. - (reorder_basic_blocks): Added calls to build_scope_scope_forest - and remove_scope_notes before reordering is done. Added calls to - rebuild_scope_notes, free_scope_forest, and reorder_blocks after - after reordering is done. - -2000-40-30 Bruce Korb <bkorb@gnu.org> - - * fixinc/inclhack.def: Added definitions needed by OSR5, - removed two stale entries (defined away with OLD_CPP). - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes - from the last insn in the sequence. - -2000-04-30 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (cpp_idcmp): New function. - * cpplib.h: Prototype it. - * scan_decls.c (scan_decls): Use it to inspect token names. - * fix-header.c (read_scan_file): Likewise. Set system_header_p on - the file being run through the preprocessor. - (check_macro_names): Provide length of token to cpp_defined. - - * Makefile.in: Remove stale warning message. - - * cppfiles.c (redundant_include_p): Provide length of token to - cpp_defined. - * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash - values are unsigned int. - (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length. - (_cpp_lookup_slot): Do not calculate the hash, either. - * cpphash.h: Update prototypes. - * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert): - Hashes are unsigned int. Calculate hash here, pass by value - to _cpp_lookup_slot. - -2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk> - - * simplify-rtx.c (check_value_useless): Delete function. - (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter - by hand. - (cselib_invalidate_regno): Likewise. - (cselib_invalidate_mem_1): Likewise. - (references_value_p): Recognize useless values by the fact that they - have no locations. - (discard_useless_values): Likewise. - (cselib_record_set): This may turn a useless value - into a useful one. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * config/d30v: New port. - - * configure.in (d30v-*): Set fp format. - * configure: Rebuild. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * ifcvt.c: New file. - * Makefile.in (OBJS): Add it. - (ifcvt.o): New target. - * jump.c (jump_optimize_1): Remove all code related to if-conversion, - and conditional arithmetic. - (find_insert_position): Remove. - * timevar.def (TV_IFCVT, TV_IFCVT2): New. - * toplev.c (DFI_ce, DFI_ce2): New. - (dump_file): Add ce and ce2 dumps. - (rest_of_compilation): Run if_convert a couple o times. Set - cse_not_expected after cse2. Don't set no_new_pseudos until - after sched1 or recompute_reg_usage. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * config/alpha/t-crtbe (crtbegin.o): Add "-I.". - (crtend.o, crtbeginS.o, crtendS.o): Likewise. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * flow.c (struct reg_cond_life_info): New. - (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg. - (init_propagate_block_info): Initialize them. - (free_propagate_block_info): Destruct them. - (mark_set_1): Consider conditional life before killing a register. - (mark_regno_cond_dead): New. - (free_reg_cond_life_info): New. - (flush_reg_cond_reg_1, flush_reg_cond_reg): New. - (ior_reg_cond, not_reg_cond, nand_reg_cond): New. - (mark_used_reg): Record conditional life. - - * haifa-sched.c (schedule_insns): Disable death counting - sanity check for HAVE_conditional_execution. - -2000-04-30 Richard Henderson <rth@cygnus.com> - - * Makefile.in (TIMEVAR_H): New. - (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it. - (timevar.h): Remove rule. - -2000-04-29 Richard Henderson <rth@cygnus.com> - - * config/alpha/crtend.asm: Use C comments instead of #. - * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden. - - * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL. - -2000-04-29 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.h (enum node_type: Take out T_MCONST. - (union hashval): Move into struct hashnode. - (struct hashnode): Pack tighter. Remove file, line, col - members. - * cpphash.c: Constify most of the macro-definition structures. - (struct definition): Replace by struct object_defn - and struct funct_defn. Put file, line, column information - here. All users updated to match. - (_cpp_create_definition, _cpp_macroexpand): Remove special - case for #define WORD OTHERWORD. - * cpplib.c (do_undef): Remove T_MCONST case. - - * cpphash.h: Move struct reflist, struct definition, and the - DEFINITION typedef to cpphash.c. Use 'struct definition *' in - union hashval. _cpp_free_definition takes a HASHNODE pointer. - * cpphash.c (_cpp_free_definition): Free data pointed to by - MCONST, XCONST, MACRO, and FMACRO nodes properly. - (_cpp_create_definition, del_HASHNODE): Just call - _cpp_free_definition to clear out a hashnode. - * cpplib.c (do_pragma_poison): Likewise. - -Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (FIRST_DATA_REGNUM, - LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM, - FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros. - (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM. - (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P, - REGNO_AM33_P): Redefine in terms of the new macros. - (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. - (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, - STRUCT_VALUE): Likewise. - (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, - ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved. - -Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * regmove.c (struct record_stack_memrefs_data): New. - (record_stack_memrefs): New function. - (combine_stack_adjustments_for_block): Use it. - -Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (calls_function_1): Propertly handle TREE_LIST expressions; - use special_function_p to detect alloca. - -Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org> - - * gcc.texi: Fixes for makeinfo 4.0 --html. - -2000-04-28 Zack Weinberg <zack@wolery.cumb.org> - - * pcp.h: Delete file. - -2000-04-28 Kazu Hirata <kazu@hxi.com> - - * h8300.c (function_epilogue): Clean up flags when the last insn - in a function is a barrier. - -2000-04-28 Chris Demetriou <cgd@sibyte.com> - - * configure.in (sparc-hal-solaris2*): protect [] glob from - my expansion. - (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines - rather than hard-coded constants in target_cpu_default2. - * configure: Regenerate. - -2000-04-28 Jason Merrill <jason@casey.cygnus.com> - - * tree.c (get_callee_fndecl): Extract the initial value from - a readonly decl. - -2000-04-28 Richard Henderson <rth@cygnus.com> - - * varasm.c (record_constant_1): Record the CODE_LABEL when - taking the address of a LABEL_REF. - -2000-04-28 Richard Henderson <rth@cygnus.com> - Jan Hubicka <jh@suse.cz> - - * calls.c (combine_pending_stack_adjustment_and_call): Return the - adjustment; don't do the stack adjust. - (expand_call): Call compute_argument_block_size right before - allocating the block; update comment; don't do alignment sanity - checking for sibling call; use args_size instead of - unadjusted_args_size before args_size is adjusted. Use - combine_pending_stack_adjustment_and_call to compute stack adjust - for must_preallocate case. - - * expr.c (push_block): Remove shadow `temp' in inner scope. - -2000-04-28 Jason Merrill <jason@casey.cygnus.com> - - * toplev.c (rest_of_compilation): Call - note_deferral_of_defined_inline_function even if the function - can't be inlined. - -2000-04-28 Scott Bambrough <scottb@netwinder.org> - - * cpplex.c (_cpp_scan_line): Fix buffer overwrite. - -2000-04-28 Richard Henderson <rth@cygnus.com> - - * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo. - -2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * timevar.c (init_timevar): DeANSIfy function definition. - -2000-04-27 Alex Samuel <samuel@codesourcery.com> - - * Makefile.in (timevar.o): Depend on flags.h. - * timevar.c (unused_stack_instances): New variable. - (timevar_push): Take a timevar_stack_def from - unused_stack_instances if available. - (timevar_pop): Push the popped timevar_stack_def onto - unused_stack_instances. - (TIMEVAR_ENABLE): New macro. - (timevar_def): Make standalone a 1-bit field. Add field used. - (get_time): Rename parameter to now. Return after clearing it if - not TIMEVAR_ENABLE. - (init_timevar): Do nothing if not TIMEVAR_ENABLE. - (timevar_pop): Likewise. - (timevar_stop): Likewise. - (timevar_push): Likewise. Mark the timing variable as used. - (timevar_start): Likewise. - (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print - timevars that were never used. - -2000-04-27 Mark Mitchell <mark@codesourcery.com> - - * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are - always TREE_READONLY. - -2000-04-27 Ulrich Drepper <drepper@cygnus.com> - - * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference - for call instruction with mode QImode. - -2000-04-27 Alex Samuel <samuel@codesourcery.com> - - * Makefile.in (OBJS): Add timevar.o. - (toplev.o): Depend on timevar.h. - (ggc-simple.o): Likewise. - (ggc-page.o): Likewise. - (timevar.o): New rule. - (timevar.h): New rule. - - * timevar.h: New file. - * timevar.c: Likewise. - * timevar.def: Likewise. - - * toplev.h (gc_time, parse_time, varconst_time): Remove. - * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR - throughout. - (TIMEVAR): Remove macro. - (gc_time, parse_time, varconst_time, integration_time, jump_time, - cse_time, gcse_time, loop_time, cse2_time, branch_prob_time, - flow_time, combine_time, regmove_time, sched_time, - local_alloc_time, global_alloc_time, flow2_time, peephole2_time, - sched2_time, dbr_sched_time, reorder_blocks_time, - rename_registers_time, shorten_branch_time, stack_reg_time, - to_ssa_time, from_ssa_time, final_time, symout_time, dump_time, - all_time): Remove. - (compile_file): Don't initialize time variables. Call - init_timevar and start TV_TOTAL timer. Call timevar_print instead - of many calls to print_time. - (rest_of_compilation): Add timing for reload_cse_regs. - (get_run_time): Removed to timevar.c. - (print_time): Likewise. - (get_run_time): Implement using TV_TOTAL time variable. - (print_time): Get total run time from get_run_time. - * ggc-page.c (ggc_collect): Push and pop TV_GC instead of - computing elapsed time explicitly. - * ggc-simple.c (ggc_collect): Likewise. - (gc_time): Remove declaration. - -2000-04-27 Mark Mitchell <mark@codesourcery.com> - - * calls.c (combine_pending_stack_adjustment_and_call): New function. - (expand_call): Use it. - -2000-04-27 Jan Hubicka <jh@suse.cz> - - * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT - fields. - -Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.md (movhi): Simplify. Prefer data - registers. - -Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * function.c (epilogue_done): Pass whole insn to record_insns. - -Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * cse.c (CSE_ADDRESS_COST): Remove. - (find_best_addr): Add new parameter "MODE", use address_cost instead - of CSE_ADDRESS_COST - (address_cost): New. - (fold_rtx): Update call of find_best_addr. - * rtl.h (address_cost): Declare. - * loop.c (general_induction_var): Add new parameter "MODE", use - address_cost instead of ADDRESS_COST - (init_loop): Use address_cost instead of ADDRESS_COST. - (check_insn_for_givs): Update call of general_induction_var. - (find_mem_givs): Likewise. - (consec_sets_giv): Likewise. - * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost. - * i386.c (ix86_address_cost): New. - * i386-protos.h (ix86_address_cost): Declare. - -Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.md (movqi): Simplify. Prefer data - registers. - -Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * expr.c (store_expr): Use clear_storage instead of direct memset - libcall. - -Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.c (mn10300_address_cost): Test - ASHIFT, AND and LABEL_REF. - -Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * invoke.texi (-foptimize-sibling-calls): Fix. - -Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (load_mems) Don't use hard registers for the hoisting. - - * unroll.c (unroll_loop): Avoid overflow in the n_iterations - calculation; rename const_equiv array in the preconditioning code - from loop_unroll to loop_unroll_precondition - -2000-04-27 Richard Henderson <rth@cygnus.com> - - * flow.c (struct propagate_block_info): Remove new_dead, new_live; - add new_set. - (propagate_one_insn): Clear it. Don't update reg_live here. - (init_propagate_block_info): Update for pbi member changes. - (free_propagate_block_info): Likewise. - (mark_set_1): Know that zero_extract, sign_extract, and - strict_low_part don't kill their argument. Alter hard subregs. - Update new_set for non-CLOBBER sets. Update reg_live. - (find_auto_inc): Update reg_live, not new_dead. - (mark_used_reg): Update reg_live, not new_live. Examine new_set - to determine if the reg in question was set this insn. Only update - reg info with PROP_REG_INFO. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (allocate_reg_life_data): Set max_regno here ... - (life_analysis): ... not here. - - * flow.c (calculate_global_regs_live): Force stack pointer - live at end. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * jump.c (redirect_exp_1): Rework from old redirect_exp. Never - commit change group changes. - (invert_exp_1): Similarly. - (redirect_exp, invert_exp): Use them. - (redirect_jump_1): New. - (invert_jump_1): New. - (jump_optimize_1): Remove code subsumed by condexec.c. - * rtl.h (invert_jump_1, redirect_jump_1): Declare. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (dead_or_set_regno_p): Use find_regno_note. - - * genconfig.c (main): Set all HAVE_foo to 1. - - * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array. - -2000-04-26 Alex Samuel <samuel@codesourcery.com> - - * invoke.texi: Document -fssa flag. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (count_reg_sets_1): Remove. - (count_reg_sets, count_reg_references): Remove. - (recompute_reg_usage): Implement with update_life_info. - Reallocate life data. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (update_life_info): Consider blocks null to mean the - universal set. - (calculate_global_regs_live): Likewise. - (life_analysis): Do that instead of collecting all_blocks. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (tidy_fallthru_edge): Don't delete the jump when it's - a still-valid conditional jump. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly. - - * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability. - * flow.c (calculate_loop_depth): Remove. - * output.h (calculate_loop_depth): Don't declare. - * toplev.c (rest_of_compilation): Expand calculate_loop_depth - inline; run estimate_probability at the same time. - -2000-04-26 Neil Booth <NeilB@earthling.net> - - * cpplib.h: "~=" is not a single pp-token. - * cpplex.c: Correct commentary. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_set_1): New arguments code and flags; update all - callers. Track regno_first and regno_last; do HARD_REGNO_NREGS - test in one place. Tidy flags tests. Don't bias REG_N_REFS by - loop_depth when optimizing for size. Do new_dead update after - emitting REG_UNUSED notes. Merge mark_set_reg code. - (mark_set_reg): Remove. - (propagate_one_insn): Use mark_set_1 for call-clobbered registers; - arrange to not emit REG_UNUSED notes. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN. - * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (propagate_one_insn): Break out from propagate_block. - (init_propagate_block_info): Likewise. - (free_propagate_block_info): Likewise. - (propagate_block): Use them. Export. - * basic-block.h: Declare them all. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * basic-block.h (life_analysis): Declare here ... - * output.h: ... not here. - * flow.c (life_analysis): Remove nregs parameter; replace - remove_dead_code with flags. Remove ssa dead code check. - Only init alias analysis if we'll use it. - * reg-stack.c (reg_to_stack): Update life_analysis arguments. - * ssa.c (convert_to_ssa): Likewise. - (convert_from_ssa): Likewise. - * toplev.c (rest_of_compilation): Likewise. - -2000-04-26 Richard Henderson <rth@cygnus.com> - - * flow.c (flow_delete_block): Rename from delete_block. Export. - * basic-block.h (flow_delete_block): Declare. - -2000-04-26 David S. Miller <davem@redhat.com> - - * optabs.c (emit_libcall_block): Verify insns with INSN_P before - taking a PATTERN of it. - -2000-04-26 <NeilB@earthling.net> - - * cpplex.c (spell_other, spell_char): Remove. - (SPELL_CHAR): New. - (token_spelling, trigraph_map): Use unsigned chars. - (_cpp_lex_line): Tidy up the switch statement. - * cpplib.h: Implement spell_char with spell_string. - (C): New. - -2000-04-26 <RodneyBrown@pmsc.com> - - * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal. - * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal. - -2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi, - reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa, - dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save, - dwarf2out_return_save, dwarf2out_return_reg, - dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename, - add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label, - gen_compile_unit_die, dwarf2out_init): Constify a char*. - - * dwarf2out.h (dwarf2out_init): Likewise. - - * dwarfout.c (filename_entry, primary_filename, last_filename, - type_tag, output_compile_unit_die, dwarfout_init): Likewise. - - * tree.h (dwarf2out_def_cfa, dwarf2out_window_save, - dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save, - dwarf2out_return_reg): Likewise. - -2000-04-26 Andreas Jaeger <aj@suse.de> - - * extend.texi (Function Attributes): Fix description of pure - attribute. - -2000-04-26 Jason Merrill <jason@casey.cygnus.com> - - * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT - before calling rest_of_compilation. - -2000-04-26 Andreas Jaeger <aj@suse.de> - - * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in - last patch. - -2000-04-25 Richard Henderson <rth@cygnus.com> - - * cse.c (cse_insn): Emit barrier after unconditional jump. - - * calls.c (expand_call): Disable tail call generation once - rtx_equal_function_value_matters is false. - - * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges - like EDGE_EH edges. - -2000-04-25 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR. - - * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs. - - * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE - is the primary DIE for a member function. - (gen_decl_die): Call set_decl_origin_self here. - * dwarfout.c (output_decl): And here. - * integrate.c (output_inline_function): Not here. - Don't clear DECL_INLINE until after calling rest_of_compilation. - (set_decl_origin_self): No longer static. - * tree.h: Add prototype. - * toplev.c (note_deferral_of_defined_inline_function): Only write - out abstract instance for actual inlines. - -2000-04-25 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return - EXTENDED_REGS only if TARGET_AM33. - * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing - SP_REGS to register allocation and reloading unless absolutely - necessary. - (movsi3): Remove special-case of adding non-constants to SP. - -2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires - INCLUDES to search and does not provide any of its own. Also it - now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED - parameters. Also it does not call AC_DEFINE. - (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls - AC_DEFINE and provides for automatic entries for autoheader. - (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test. - - * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS - so we can pass -I flags and include gansidecl.h/system.h in this - test. - - * acconfig.h: Delete all NEED_DECLARATION_* entries. - -2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, - ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, - ENABLE_GC_ALWAYS_COLLECT): Delete entries. - - * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, - ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, - ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE - for these macros. Clean up spacing and linewraps. - -2000-04-26 Jason Merrill <jason@casey.cygnus.com> - - * calls.c (expand_call): Use get_callee_fndecl. - - * print-tree.c (print_node): Print the chain of an _EXPR. - -Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com> - Jim Wilson <wilson@cygnus.com> - Andrew Haley <aph@cygnus.com> - - * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc - and gp save/restore problems. - * config/ia64/crtend.asm: Add IA-64 unwind support. - * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size - in fr_pad_size calculation. - (save_restore_insns): Move PR save area. Correct uses of - RTX_FRAME_RELATED_P. - (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P. - (ia64_expand_epilogue): Add eh_epilogue support. - (ia64_function_prologue): Emit .prologue directive. - (ia64_init_machine_status, ia64_mark_machine_status): New functions. - (ia64_override_options): Set init_machine_status and - mark_machine_status. - (rtx_needs_barrier): Handle bsp reads and writes. - (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved): - New static variables. - (process_set, process_for_unwind_directive): New functions. - * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT, - ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR, - ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New - macros. - (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section. - (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define. - (struct machine_function): Define. - * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns. - -2000-04-25 Bruce Korb <bkorb@gnu.org> - - * fixinc/Makefile.in: make the removal of old programs more - robust - * fixinc/mkfixinc.sh: use the two new targets in the Makefile: - install-bin and install-sh - -2000-04-25 Nick Clifton <nickc@cygnus.com> - - * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not - defined, define to return zero. - (function_cannot_inline_p): If a function has any target - specific attributes, then use the macro - FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide - whether it can be inlined. If it cannot, issue a suitable - explanation. - - * tm.texi: Add a new node 'Inlining' to document the new macro - FUNCTION_ATTRIBUTE_INLINABLE_P. - -2000-04-25 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix - commentary. - -2000-04-25 Neil Booth <NeilB@earthling.net> - - Restore previous patch, plus the following fixes: - - * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in - flags, not CPP_OPEN_PAREN. - * cpplex.c (expand_token_space, init_token_list, - cpp_free_token_list): Put the dummy token at list->tokens[-1]. - (_cpp_lex_line, _cpp_lex_file): token list is 0-based. - -Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * config/i386/freebsd.h (INT_ASM_OP): Define. - -Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (strength_reduce): Fix typo in the last checkin. - -Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (finalize_record_size): Simplify to use existing - functions. - (compute_record_mode): No longer static. - * tree.h (compute_record_mode): New declaration. - -2000-04-25 Neil Booth <NeilB@earthling.net> - - * Revert my patch below until cause of build failures - determined. - -2000-04-25 Richard Henderson <rth@cygnus.com> - - * combine.c (combine_instructions): Add missing argument - to try_combine. - - * toplev.c (rest_of_compilation): Delay sibcall optimization - until after emit_eh_context. - -2000-04-24 Nick Clifton <nickc@redhat.com> - - * combine.c (combine_instructions): Do not try to combine a - sequence of insns when the second insn has been replaced by a - note. - -Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu> - - * gcc.c (load_specs): New static function. - (read_specs): Use it. - - * gcc.c (lookup_compiler): Make multiple passes for case - insensitive filesystems. - -2000-04-24 Neil Booth <NeilB@earthling.net> - - * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE. - * cpphash.h (_cpp_check_directive): new. - * cpplex.c (handle_newline, cpp_free_token_list, - init_trigraph_map, trigraph_ok, trigraph_replace, - backslash_start, skip_block_comment, skip_line_comment, - skip_whitespace, parse_name, parse_number, parse_string, - copy_comment, _cpp_lex_line, spell_char, spell_string, - spell_comment, spell_name, spell_other, _cpp_lex_file, - _cpp_output_list): new. - (expand_name_space): take length argument. - (init_token_list): add comment list initialisation. - (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE - instead of HSPACE_BEFORE. - - * cpplib.c (_cpp_check_directive): new - * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT, - DIGRAPH, UNSIGNED_INT, TOK_NAME): new. - (HSPACE_BEFORE): delete. - (TTYPE_TABLE): rearrange. - (struct cpp_toklist): update. - -2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR, - gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three - argument form of AC_DEFINE. - - * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER, - HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY, - WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK, - HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG, - HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise. - - * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE. - -2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES, - deduced.h): Use -isystem, not -I, for including system headers. - -2000-04-24 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.md (addsi3): Do not use small add instruction if - the source register is the frame pointer or arg pointer. - (addsi3_small_int): Disallow if source register is the frame - pointer or arg pointer. - -2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant - call to AC_MSG_RESULT. - -2000-04-24 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * invoke.texi: Correct grammatical errors, document - -fno-gnu-keywords as identical to -fno-asm for C++. - -2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION, - GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT, - GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE, - AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG, - EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_. - - * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S, - GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING, - GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR, - GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with - new macros names. - -2000-04-24 Mumit Khan <khan@xraylith.wisc.edu> - - * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. - (pop_alignment): Likewise. - (handle_pragma_token): Likewise. - -2000-04-24 Robert Lipe <robertlipe@usa.net> - - * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD. - -2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp> - - * combine.c (try_combine): Update reg_nonzero_bits of - newi2pat before newpat. - -Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (strength_reduce): Simplify test to INSN_P. - (record_giv): Attempt to simplify the add value, use CONSTANT_P - expressions instead of CONST_INT. - (express_from_1): Likewise. - -2000-04-24 Mark Mitchell <mark@codesourcery.com> - - * regs.h (reg_n_max): Don't declare. - * flow.c (reg_n_max): Don't define. - * regclass.c (renumber): Don't initialize to zero. - (regno_allocated): Likewise. - (reg_n_max): Define. - (allocate_reg_info): Don't initialize unnecessarily. - -Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com) - - * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p - and blockage_p in the newly allocated attribute. - -Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.md (addsi): `inc4' on address - registers does not modify cc, but `inc' on an extended - register does. - -Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru> - - * reload.c (find_equiv_reg): Checks all valueno regs - as a reload_reg_p regs. - -2000-04-23 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (collect_objlike_expansion): Add sanity check. - (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If - the buffer is the empty string, return. Mark __DATE__ and - __TIME__ as XCONST nodes, not MCONST. - (_cpp_macroexpand): Avoid pushing an empty buffer. - (funlike_macroexpand): Don't pop token_buffer here. - -Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro. - (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros. - (REGNO_EXTENDED_P, REGNO_AM33_P): New macros. - (REGNO_OK_FOR_BASE_P): Define in terms of them. - (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise. - (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro. - (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise. - -Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (simplify_giv_expr): Be more agressive on simplifying - constant MULT givs. - -2000-04-23 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.h (struct definition): Move file, line, col members... - (struct hashnode): ... here. Also add 'disabled' flag. - (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and - T_IDENTITY. Remove T_DISABLED. - Update prototypes. - - * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION. - (collect_expansion): Split into collect_objlike_expansion and - collect_funlike_expansion. - (_cpp_macroexpand): Split out scan_arguments, stringify, and - funlike_macroexpand. - (_cpp_compare_defs): Rename compare_defs, make static. - (_cpp_make_hashnode): Initialize hp->disabled. - (macro_cleanup): Adjust for new token types. Clear - m->disabled. - (_cpp_create_definition): Move code here to determine what - sort of macro it is, and code to check for redefinitions, from - do_define. Implement a few simple cases without creating a - full DEFINITION. - (_cpp_macroexpand, special_symbol, _cpp_dump_definition): - Handle the simple cases. - (push_macro_expansion): Set buf->has_escapes and hp->disabled - here. - - * cppinit.c (builtin_array): Change MCONST to XCONST - everywhere. - * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here; - fix check for disabled and function-like macros. - * cpplib.c (do_define): Move most logic to - _cpp_create_definition. - (do_undef): Handle new special token types. - -Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead - of CONSTANT_P for mult_val; always use validate_change to update insn. - -2000-04-22 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (trad_stringify, add_pat): New functions. - (collect_expansion): Restore support for -traditional syntax. - Use trad_stringify and add_pat. - (_cpp_macroexpand): Restore support for -traditional semantics. - * cpplex.c (_cpp_scan_line): Don't change space_before if we - get a COMMENT token. - (_cpp_lex_token): Provide COMMENT tokens to caller if - traditional and parsing_define_directive. - (skip_comment): Warn about // comments if -Wtraditional. - * cpplib.c (do_define): Fix typo. Create EMPTY nodes with - proper node type. - (do_undef): Don't warn about undefining EMPTY nodes. - -Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (strength_reduce): Fix biv removal code. - -2000-04-22 Richard Henderson <rth@cygnus.com> - - * predict.c (estimate_probability): Examine both sides of - a branch for no exits. Use 90% not 50% for predict taken. - Reorg for one copy of note generation code. - -2000-04-22 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. - -2000-04-22 Richard Henderson <rth@cygnus.com> - - * diagnostic.c (init_output_buffer): Don't initialize format_args. - (output_clear): Likewise. - (output_printf): Use va_copy. - (vline_wrapper_message_with_location): Likewise. - (v_message_with_decl): Likewise. - (line_wrapper_printf): VA_START infor buffer.format_args directly. - * system.h (va_copy): Provide default implementation. - -2000-04-22 Richard Henderson <rth@cygnus.com> - - * predict.c (expected_value_to_br_prob): Don't bomb if op1 of - the collected condition is not a constant. - -2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> - - * diagnostic.h: New file. - - * Makefile.in (diagnostic.o): Depends on diagnostic.h - - * diagnostic.c: Tweak. Rationalize the output logic. Adjust - various function prototypes. - (diagnostic.h): #include. - (struct output_buffer): Move into diagnostic.h. - (get_output_prefix): Rename to output_get_prefix. Export. - (init_output_buffer): Export. Break out. Ajust intialization. - (output_space_left, output_append): Export. - (output_newline): Rename to output_add_newline. Export. - (output_clear): Nullify additional output_buffer fields. - (output_puts): Rename to output_add_string. Export. - (dump_output): Rename to output_flush_on. Export. - (build_location_prefix): Constify return-type. - (emit_output_prefix): Rename to output_emit_prefix. Export. - (set_real_maximum_length): New function. - (output_set_maximum_length): Ditto - (output_clear): Ditto. - (output_add_character): Ditto. - (output_add_integer): Ditto. - (output_add_space): Ditto. - (output_format): Ditto. - (output_printf): Adjust buffer initialization. - (vline_wrapper_message_with_location): Ditto. - (v_message_with_decl): Ditto. Adjust call to output_puts - and get_output_prefix. - (default_print_error_function): Adjust buffer intialization. - -Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE - of VOID_TYPE. - -Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead - of explicit 0. - -Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more - accurate data about SP moves. - -Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added - aliases to AM33 registers. - -Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16 - to all EXTENDED bitmaps. - -Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare. - * config/mn10300/mn10300.h (ADDRESS_COST): New macro. - * config/mn10300/mn10300.c (mn10300_address_cost): New function. - -Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com> - - * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when - the operand is not constant. - -Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru> - - * reload.c (find_equiv_reg): Checks all valueno and regno regs - as a call-clobbered regs. - -Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG. - * rtl.h: Likewise. - * rtl.def: Update comment. - * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER. - * integrate.c (expand_inline_function): Likewise. - * profile.c (branch_prob): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG. - * print-rtl.c (print_rtx): Likewise. - * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise. - (reemit_notes): Likewise; also use enum insn_note. - - * stor-layout.c (layout_decl): Only set DECL_MODE if not already set. - (place_field): Properly compute know and actual alignment. - - * gengenrtl.c (gencode): Write obstack_alloc_rtx function start - in proper format. - - * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL - note for REG1. - -2000-04-21 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (struct arg, struct arglist): Const-ify strings. - (warn_trad_stringify, duplicate_arg_p): New helper functions. - (collect_expansion): Rewrite to scan over a token list. - Remove -traditional support. - (collect_formal_parameters): Rename to collect_params; rewrite - to scan over a token list. - (_cpp_create_definition): Adjust to scan a token list. - (_cpp_macroexpand): Remove -traditional support. - (_cpp_compare_defs): Whitespace is now canonicalized. - (comp_def_part): Delete function. - - * cpphash.h: Update prototypes. - * cpplex.c (init_token_list): Don't set lineno if there is no - buffer. - (pedantic_whitespace): New function. - (_cpp_scan_line): Mark tokens that had hspace before. Don't - consume a newline. Use pedantic_whitespace. - (_cpp_lex_token): Remove support for -traditional macros. - (_cpp_get_define_token): Delete. - (_cpp_get_directive_token): Do the real work here. Use - pedantic_whitespace. - (_cpp_init_input_buffer): Initialize pfile->directbuf. - - * cpplib.c (get_macro_name): Delete. - (do_define): Read the entire line into pfile->directbuf, then - feed the token list to _cpp_create_definition. - * cpplib.h (HSPACE_BEFORE): new define. - (struct cpp_reader): Add a toklist member, "directbuf". - - * predict.c (estimate_probability): New heuristic: if a jump - branches around a block with no successors, predict it taken. - Disentangle control flow. - -2000-04-20 Richard Henderson <rth@cygnus.com> - - * loop.c (emit_iv_add_mult): Revert last change. - -2000-04-20 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (enum cpp_ttype): Add token types for all - punctuators. Distinguish pp-numbers from valid C numbers. - Give some tokens better names. Initialize from macro. - (struct cpp_name, cpp_token, cpp_toklist): New data - structures. - Update prototypes. - * cpplex.c (bump_column, expand_name_space, - expand_token_space, init_token_list, cpp_output_list, - _cpp_scan_line): New functions. - (output_line_command): Add third argument, new line number. - * cpphash.h: Update prototypes. - * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new - token names. - -2000-04-20 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier. - -2000-04-20 Zack Weinberg <zack@wolery.cumb.org> - - * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the - object pointed to. - -Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (emit_iv_add_mult): Simplify it's input and emit - REG_EQUAL note explaining the calculated value. - - * calls.c (expand_call): Avoid unnecesary precalculation - and outgoing parameters space guarding for sibling calls. - (store_one_arg): Likewise. - -Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. - (rest_of_compilation): Write sibling dump file and account - for time as jump time. - * invoke.texi: Update documentation on dump flags. - -2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl> - - * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>. - -2000-04-19 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (special_symbol): Represent an empty macro with - "\r \r " not just "\r ". - (_cpp_macroexpand): Correct condition for the foo ( ) special - case. - (unsafe_chars): Handle EOF as second argument. - (push_macro_expansion): Simplify test for removing escape at - end. Do not trim both escapes if there is no text in between. - -2000-04-19 Jim Blandy <jimb@redhat.com> - - * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead - of PTR_SIZE, when appropriate. - -2000-04-19 Mark Mitchell <mark@codesourcery.com> - - * system.h (ONLY_INT_FIELDS): Make sure it is defined. - (USE_ENUM_BITFIELDS): Fix typo. - -Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (place_field): Set rli->offset_align properly. - -2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG, - INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY, - PARM_BOUNDARY): Remove unnecessary casts. - -Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (precompute_arguments): Remove must_preallocate and - args_size calls. - (expand_call): Update call of precompute_arguments. - - * loop.c (check_insn_for_bivs, for_every_insn_in_loop, - check_insn_for_givs): Break out from ... - (strength_reduce) ... here; use for_every_insn_in_loop to call - check_insn_for_givs. - * loop.h (for_every_insn_in_loop): Declare. - (loop_insn_callback): New type. - -2000-04-18 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (do_pragma_poison): Strings in the token buffer are - not nul-terminated. - -Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if - flag_pic and RELOC. - -2000-04-18 Zack Weinberg <zack@wolery.cumb.org> - - * cccp.c, cexp.y, cexp.c, cccp.1: Removed. - - * configure.in: Delete --disable-cpplib option and all - references to cpp_main. - * configure: Regenerate. - * Makefile.in: Remove all references to CCCP, CCCP_OBJS, - @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o, - cccp.o, cccp, or cppmain. Link cppmain.o straight to - cpp$(exeext). Add --no-headers to makeinfo command line when - generating INSTALL. Install and uninstall cpp.1 manpage, not - cccp.1. - * install.texi: Delete all references to cexp.y/cexp.c. - Delete ancient instructions for compiling GCC on 3b1. - * INSTALL: Regenerate. - - * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff, - mips/t-elf, mips/t-r3900: Remove references to cccp.c. - * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to - cexp.c/cexp.y. - * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING, - which is no longer tested anywhere. - - * cppinit.c (handle_option): Don't run error message through - gettext twice. - -Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot. - * cpperror.c (hashtab.h): Now include. - * cppexp.c (hashtab.h): Likewise. - * cpplex.c (hashtab.h): Likewise. - * cppfiles.c (hashtab.h): Likewise. - (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type - to htab_find_slot_with_hash. - * cpphash.c (hashtab.h): Now include. - (_cpp_lookup_slot): INSERT is now enum insert_option. - * cpphash.h (_cpp_lookup_slot): Likewise. - * cppinit.c (hashtab.h): Include earlier. - (initialize_builtins): Pass enum to htab_find_slot. - * cpplib.c (hashtab.h): Now include. - (do_define, do_undef): Pass enum type to _cpp_lookup_slot. - (do_pragma_poison, do_assert): Likewise. - * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to - htab_find_slot_with_hash. - * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise. - * tree.c (type_hash_add): Likewise. - (build1): Minor cleanup. - - * ggc-common.c: Add missing blanks. - * print-tree.c (print_node): Print DECL_OFFSET_ALIGN. - * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment. - - * stmt.c (mark_case_node): New function. - (mark_case_nesting): Call it. - - * expmed.c (emit_store_flag): If comparing two-word integer - with zero, can optimize NE, EQ, GE, and LT. - - * c-decl.c (mark_binding_level): Use 'for' instead of `while'. - * conflict.c: Minor cleanups. - * optabs.c: Add blank line - * simplify-rtx.c: Minor cleanups. - -2000-04-18 Stan Cox <scox@cygnus.com> - - * gengenrtl.c (genlegend): Fix misspelling. - -2000-04-18 Robert Lipe <robertlipe@usa.net> - - * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that - bitfields of the host compiler are not signed quantities. - * config.in: Regenerate. - * configure: Regenerate. - * system.h (USE_ENUM_BITFIELDS): Added. - (ENUM_BITFIELDS): Added. - * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD. - (SHORT_ENUM_BUG): Deleted. - * tree.h (tree_common): Members `code', `mode', `built_in_class', - now ENUM_BITFIELD. - * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted. - (CODE_FIELD_BUG): Likewise. - * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG. - (OLD_CC): Likewise. - * config/m68k/x-ccur (X_CFLAGS): Likewise. - -2000-04-18 Mark Mitchell <mark@codesourcery.com> - - * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the - mark is active. - -2000-04-17 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c (lex): Don't assume tokens are NUL terminated. - * cpplib.c (do_include, do_import, do_include_next, - read_line_number, detect_if_not_defined): Likewise. - * cpphash.c (collect_expansion): Likewise. - (special_symbol, _cpp_macroexpand): Check return from - cpp_file_buffer. - * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete - macros. Delete all uses. - - * gcc.dg/cpp-mi.c: Add two more test cases. - * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files. - -2000-04-17 Richard Henderson <rth@cygnus.com> - - * bb-reorder.c (fixup_reorder_chain): Don't look up new block again. - (reorder_basic_blocks): If no epilogue in rtl, force last block last. - -2000-04-17 Mark Mitchell <mark@codesourcery.com> - - * function.c (expand_function_start): Use hard_function_value to - compute the RTL to use for DECL_RESULT. - -Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.c (athlon_cost): Fix lea, divide and XFmode move costs. - (x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall): New global variables. - (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only - alloved; fix load penalties for Athlon. - * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall): Declare. - (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY, - TARGET_MEMORY_MISMATCH_STALL): New. - * i386.md (athlon scheduling parameters): Fix latencies according to - Athlon Optimization Manual. - (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to - vector. - (fsqrt instruction patterns): Set athlon_decode to direct. - (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for - PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines. - (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY - and TARGET_PARTIAL_REGISTER_STALL machines. - (pushdf_nointeger): New pattern. - (pushdf_integer): Rename from pushdf. - (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines. - (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines. - -2000-04-17 Richard Henderson <rth@cygnus.com> - - * loop.c (canonicalize_condition): Add WANT_REG argument. - Stop the search if we match it. - * expr.h (canonicalize_condition): Update decl. - * predict.c (expected_value_to_br_prob): Use it. Track last - expected value note. - (find_expected_value): Remove. - - * reorg.c (mostly_true_jump): Always use BR_PROB if present. - -2000-04-17 Zack Weinberg <zack@wolery.cumb.org> - - * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]). - (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of - a plain file. - * configure.in: Call AC_FUNC_MMAP_FILE. - * configure: Regenerate. - * config.in: Regenerate. - - * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP. - * fixinc/fixincl.c: Likewise. - -2000-04-17 Richard Henderson <rth@cygnus.com> - - * builtins.c (expand_builtin_expect): New. - (expand_builtin): Call it. - * builtins.def (BUILT_IN_EXPECT): New. - * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. - * extend.texi: Document it. - - * predict.c (expected_value_to_br_prob): New. - (find_expected_value): New. - * basic-block.h (expected_value_to_br_prob): Declare. - * toplev.c (rest_of_compilation): Invoke it. - - * rtl.h (NOTE_EXPECTED_VALUE): New. - (NOTE_INSN_EXPECTED_VALUE): New. - * rtl.c (note_insn_name): Update. - * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special - cases; handle NOTE_INSN_EXPECTED_VALUE. - -2000-04-17 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use - leaf sibcall delay slot if flag_pic. - (output_sibcall): Always emit call for leaf sibcall if flag_pic. - -2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto. - - * fixproto: If fix-header fails, exit with an error. - -Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * cse.c (struct check_depdendence_data): New. - (check_dependence): New function. - (invalidate): Use check_depdenence. - -2000-04-16 Mark Mitchell <mark@codesourcery.com> - - * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that - UNITS_PER_WORD is unsigned. - - * tree.h (struct tree_common): Remove misleading comment. - -2000-04-16 Dave Pitts <dpitts@cozx.com> - - * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole - message in quotes. Otherwise, IBM's make program treats the '#' as the - start of a comment and ignores the remainder of the line. - - * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed - upper case. - * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. - * cexp.y (initialize_random_junk): Likewise. - * cppfiles.c (find_include_file): Cast alloca return value. - * cppinit.c (initialize_standard_includes): Likewise. - * cpplib.c (cpp_define, cpp_undef): Likewise. - * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. - * final.c (output_asm_insn): Allow for holes in EBCDIC. - * fold-const.c (CHARMASK): New. - (real_hex_to_f): Use it. - * real.c (CHARMASK): New. - (etoasc, asctoeg): Use it. - (asctoeg): EBCDIC lower case characters preceed upper case. - - * i370.c (mvs_add_label): Change spacing for coding conventions. - * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the - outputing case vectors. - (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT. - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check, - since vector in in the data CSECT. - (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. - * i370.md (Many patterns): Put the length in the XL directives. - (movdi): Put back STM and MVC in definition. - (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370 - pattern using the TCA. - * oe.h (CPP_SPEC): Added to allow trigraphs. - * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does - not support the "long long" type. - -2000-04-16 Mark Mitchell <mark@codesourcery.com> - - * config/mips/mips-protos.h (mips_legitimate_address_p): New - function. - (mips_reg_mode_ok_for_base_p): Likewise. - * config/mips/mips.h (REG_OK_STRICT_P): Don't define. - (REG_OK_FOR_INDEX_P): Define unconditionally. - (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p. - (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p. - * config/mips/mips.c (mips16_simple_memory_operand): Adjust now - that GET_MODE_SIZE is unsigned. - (mips_reg_mode_ok_for_base_p): Define. - (mips_legitimate_address_p): Likewise. Adjust now - that GET_MODE_SIZE is unsigned. - (block_move_loop): Make the number of bytes unsigned. - (expand_block_move): Likewise. - (function_arg): Make the loop counter unsigned to match the - boundary condition. - -2000-04-16 Richard Henderson <rth@cygnus.com> - - * rtl.h (enum insn_note): New enumeration. Subsume - NOTE_INSN_DELETED and friends. - (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS. - * rtl.c (note_insn_name): Tweak string order. - -2000-04-15 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it - to offset * 2. - - * cpplex.c (output_line_command): Remove debugging prints. - (cpp_output_tokens): Don't write out a zero-length buffer or - try to see if it has a newline in it. - (_cpp_expand_to_buffer): Copy the source buffer before pushing. - (_cpp_read_and_prescan): Move shift-down of pushback bytes to - the end of the loop. Use memmove. Don't read past the end of - the buffer. Remove trailing newlines from error messages. - -2004-04-16 Neil Booth <NeilB@earthling.net> - - * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new. - * cpplib.c: Add new syntax flags to directive table, and - supporting macros. - -2000-04-15 Ulrich Drepper <drepper@redhat.com> - - * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once - using ret $N. - -2000-04-15 David Edelsohn <edelsohn@gnu.org> - - * toplev.c (display_help): Prefix "f" to "sched-verbose=". - * haifa-sched.c: Update -fsched-verbose comments to use "=". - -Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Makefile.in (ggc-page.o): Now includes toplev.h. - * ggc-page.c (toplev.h): Now included. - (gc_time): Remove declaration. - (ggc_collect): TIME now long. - * toplev.c (parse_time, varasm_time, gc_time): Still global; all - others static. - * toplev.h (gc_time, parse_time, gc_time): New declarations. - - * toplev.c: Make *_time variable long to reduce chance of overflow. - (TIMEVAR): Likewise for `otime'. - (print_time): Arg is now long; compute percentage in FP and round. - * toplev.h (print_time): Arg is long. - - * tree.c: Minor whitespace changes. - - * configure.in (alpha*-*-*): Add config/alpha/t-alpha. - * configure: Rebuilt. - * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. - (__fixunsxfDI): Renamed from __fixunsxfdi. - (__fixunsdfDI): Renamed from __fixunsdfdi. - (__fixunssfDI): Renamed from __fixunssfdi. - (__floatdisf): Use proper type in REP_BIT macro. - (__fixunsxfSI): Renamed from __fixunsxfsi. - (__fixunsdfSI): Renamed from __fixunsdfsi. - (__fixunssfSI): Renamed from __fixunssfsi. - * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. - Change location of macros and upper-case some names as above. - * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. - * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. - - * varasm.c (assemble_variable): Add cast to remove warning. - (immed_real_const_1): Only use CONST[01]_RTX if not in nested function. - - * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change. - * optabs.c (emit_libcall_block): If have REG_EH_REGION, update - region number to -1. - -2000-04-15 Richard Earnshaw (rearnsah@arm.com) - - * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then - call unshare_all_rtl. - - * arm.md (movhi): REGNO_POINTER_ALIGN is now bits. - -Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3): - Use .s1 not .s0 for all FP instructions. - -2000-04-14 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public - interfaces. - (safe_fwrite, output_line_command): New static functions. - (cpp_expand_to_buffer): Now private to cpplib. - (cpp_scan_buffer): Take a printer. - - * cpphash.h: Update prototypes. - * cpplib.h: Update prototypes. - (cpp_printer): New. - (cpp_buffer): Remove last_nominal_fname. - (cpp_reader): Remove lineno. - - * cppmain.c: Use a cpp_printer. - * fix-header.c: No need to inhibit line commands. Call - cpp_start_read with no printer. - - * cpperror.c (cpp_notice_from_errno): Provide default name. - * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions. - (find_include_file, cpp_read_file): Use make_IHASH. - (file_cleanup): Set control_macro and clear - input_stack_listing_current here. - (_cpp_execute_include): Don't output entering-file marker. - * cpphash.c (special_symbol): Look for the line number in the - buffer, not the reader. - (_cpp_macroexpand): No need to disable line commands. - (_cpp_dump_definition): No need to generate line commands. - (dump_hash_helper): Remove excess newline from output. - * cppinit.c (dump_special_to_buffer): No need to generate line - commands. - (cpp_printer_init): New. - (cpp_start_read): Take a printer, and start it up if it's not - NULL. No need to generate line commands. - (cpp_finish): Expect no buffers stacked at all. Take a - printer argument, and flush the output buffer if it's not - NULL. - * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer. - Don't put two hashes at the beginning of an assertion. - (cpp_get_token): Don't increment pfile->lineno or emit line - commands here. Return EOF if there's no buffer when we get - EOF. - * cpplib.c (do_define, skip_if_group): - No need to disable line commands. - (_cpp_output_line_command): Delete function. - (do_line): Don't emit line commands here, but set things up so - they will be emitted if necessary. Use _cpp_fake_ihash to - make unique nominal_fnames if necessary. - (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line - with 0 for column, not -1. - (_cpp_handle_eof): Don't set the control macro here. Don't - clear input_stack_listing_current here. Don't emit line - commands. - -2000-04-14 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty - always, use the default SVR4 start address. - - * config/rs6000/linux.h (LINK_SPEC): Don't define. - (LINK_SHLIB_SPEC): Define. - (LINK_START_DEFAULT_SPEC): Define. - (LINK_OS_DEFAULT_SPEC): Define. - - * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros. - - * config/rs6000/eabi.asm (__eabi): Call __init rather than - __do_global_ctors to handle constructors. - * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin. - (STARTFILE_YELLOWKNIFE_SPEC): Likewise. - (STARTFILE_MVME_SPEC): Likewise. - (STARTFILE_SIM_SPEC): Likewise. - (ENDFILE_ADS_SPEC): Use crtend. - (ENDFILE_YELLOWKNIFE_SPEC): Likewise. - (ENDFILE_MVME_SPEC): Likewise. - (ENDFILE_SIM_SPEC): Likewise. - (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS. - (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS. - (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects. - (ENDFILE_LINUX_SPEC): Use crtendS for shared objects. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o. - (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS. - (CRTSTUFF_T_CFLAGS_S): Define. - * config/rs6000/eabi-ctors.c: Delete. - - * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte - boundary. - (__fini): Likewise. - * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame. - boundary. - (__fini): Likewise. - -Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com> - - * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift - plus mask size is smaller or equal to the mode size. - -Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK - not yet set. - - * expr.c (reload.h): Now included. - (emit_block_move): Set volatile_ok when checking for movstr. - (emit_move_1): Check for replacements in addresses in multi-word case. - * Makefile.in (expr.o): Now includes reload.h. - - * flow.c (count_basic_blocks): Remove unused var PREV_CALL. - Never have a LIBCALL end a basic block. - (find_basic_blocks_1): Likewise. - Reorganize CALL_INSN cases. - - * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change. - -Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete - completers from mov.ret instruction. - -2000-04-14 Richard Henderson <rth@cygnus.com> - - * fold-const.c (extract_muldiv): Don't distribute and widen - multiply across plus for non-sizetype unsigned types. - -2000-04-14 Richard Henderson <rth@cygnus.com> - - * flow.c (find_auto_inc): Don't autoinc eliminable registers. - If the original source is dead in the incr insn, it's dead now. - -Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to - see if DECL_BIT_FIELD needs to still be set. - - * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. - - * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call - print_int_cst_octal with something that's not an INTEGER_CST. - - * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG - and not a SUBREG to a FLOAT rtl. - -Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com> - - * emit-rtl.c (try_split): Avoid infinite loop if the split - results in a sequence that contains the original insn. - -2000-04-13 Andreas Jaeger <aj@suse.de> - - * config/mips/mips.c (expand_block_move): Pass alignment - argument to move_by_pieces in bits, not bytes. - - * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and - __pic__ for little endian. - -2000-04-13 Andreas Jaeger <aj@suse.de> - - * config/i386/i386-protos.h: Add prototype for - uno_comparison_operator. - -Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage. - * calls.c (ECF_PURE): New flag. - (emit_call_1): Handle ECF_PURE calls. - (initialize_argument_information): Unset ECF_PURE flag too. - (precompute_arguments): Precompute for ECF_PURE too. - (expand_call): Handle ECF_PURE calls too. - (emit_library_call_value_1): Rename no_queue argument to fn_type, - accept value of 2 as pure function. - (emit_library_call_value, emit_library_call): Rename no_queue argument - to fn_type. - * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call. - - * tree.h (DECL_IS_PURE): New macro. - (struct tree_decl): Add pure_flag. - * c-common.c (enum attrs): Add attribute "pure". - (init_attributes): Initialize attribute "pure" - (decl_attributes): Handle attribute "pure". - * extend.texi (Attribute "pure"): Document. - * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from" - in pure function. - (flags_from_decl_or_type): Support attribute "pure". - -2000-04-13 Jason Merrill <jason@casey.cygnus.com> - - * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate - the token except for numbers and identifiers. - -Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com) - - * i386.c (ix86_expand_binary_operator, - ix86_expand_unary_operator): Check no_new_pseudos - instead of reload_in_progress and reload_completed. - (ix86_split_ashldi, ix86_split_ashrdi, - ix86_split_lshrdi): Check no_new_pseudos instead - of reload_completed. - -2000-04-12 Jeffrey A Law (law@cygnus.com) - - * function.c (purge_addressof): Unshare any shared rtl created by - purge_addressof and its children. - -2000-04-12 Mark Mitchell <mark@codesourcery.com> - - * function.c (aggregate_value_p): VOID_TYPE nodes are never - aggregates. - -2000-04-05 Andreas Jaeger <aj@suse.de> - - * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if - not compiling PIC code, add flags for mabi=64. - (SUBTARGET_CPP_SIZE_SPEC): New. - (SUBTARGET_CPP_SPEC): New. - (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default - for MIPS/Linux and lots of code needs these defines. - -Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com> - - * reorg.c (fill_slots_from_thread): Check side_effects_p when - trying the "opposite arithmetic" approach. - -Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI. - (struct sh_args): Add new field force_mem. - (INIT_CUMULATIVE_ARGS): Initialize it. - (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it. - -Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (expand_call): Do not reverse args in "equal from" field. - (emit_library_call_value_1): Emit_libcall_block for const and pure - function. - -Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine): Don't enable optimization for fixed - registers when encountering a BARRIER. - -Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * builtins.c (expand_builtin_memcmp): Do expansion even with - !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails. - - * calls.c (expand_call): Do NO_DEFER_POP unconditionally once - stack is propertly aligned; add sanity checking for aligned - stack pointer. - (expand_library_call_value_1): Add sanity checking for aligned - stack pointer. - -Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com> - - * calls.c (emit_library_call_value_1): Change 3rd arg to - locate_and_pad_parm to disregard the setting of partial. - -Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST. - - * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the - CALL_INSN from the normal case. - -Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): - New global variables. - (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the - adjustment. - * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): - Declare, - (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4, - TARGET_ADD_ESP_8): New macros. - * i386.md: Add peep2s to convert esp adjustments to push and pop - instructions. - (pushsi_prologue, popsi_epilogue): New patterns. - -2000-04-12 Jakub Jelinek <jakub@redhat.com> - - * real.c (toe64): Remove stale #endif from the last change. - -2000-04-12 Stephen L Moshier <moshier@mediaone.net> - - * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. - * real.c (toe64): Revert previous change. - -2000-04-12 Jakub Jelinek <jakub@redhat.com> - - * objc/objc-act.c: Include ggc.h. - (objc_tree_index, objc_global_trees): Convert most of the - static tree variables into a static array with previous names - as defines. - (objc_ellipsis_node): New variable. - (lang_init): Call objc_act_parse_init and c_parse_init. - Create objc_ellipsis_node. - (build_selector_translation_table): Use objc_ellipsis_node instead - of (tree)1. - (hack_method_prototype): Likewise. - (get_arg_type_list): Likewise. - (start_method_def): Likewise. - (continue_method_def): Likewise. - (gen_method_decl): Likewise. - (ggc_mark_imp_list): New function. - (ggc_mark_hash_table): New function. - (objc_act_parse_init): New function. - * objc/objc-act.h (objc_ellipsis_node): Add extern variable. - * c-parse.in (c_parse_init): For objc add roots of objc specific - local tree variables. - * objc/objc-parse.y: Rebuilt. - * objc/objc-parse.c: Rebuilt. - (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. - -Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com) - - * cse.c (delete_trivially_dead_insns): Also delete insns - that copy a register to itself where the destination is - a strict_low_part. - -2000-04-11 Richard Henderson <rth@cygnus.com> - - * flow.c (struct propagate_block_info): Add new_dead, new_live. - (propagate_block): Initialize them. Use them in parallel instead - of one tmp variable, ie revert much of the 0408 and 0407 functional - changes, but keep the structural changes. - (mark_set_regs): Take new_dead from propagate_block_info instead. - (mark_set_1, mark_set_reg): Likewise. - (mark_used_regs): Likewise with new_live. - (mark_used_reg): Likewise. Revert 0408 change. - -2000-04-11 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2 - restriction. - (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction. - -2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * config/elfos.h (SELECT_SECTION): Decide whether to use a data or - const section to output a CONSTRUCTOR based on the same conditions - used for VAR_DECLs. - -Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com) - - * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64. - * pa/pa-protos.h (output_call): Add additional argument indicating - if the call is a sibling/tail call. - (compute_zdepdi_operands, output_64bit_and): Prototype new functions. - (compute_64bit_ior, cmpib_comparison_operator): Likewise. - (function_arg, function_arg_partial_nregs): Likewise - * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT. - (emit_move_sequence): Zero extend certain constants as needed - for TARGET_64BIT. - (compute_zdepdi_operands, output_64bit_and): New functions. - (output_64bit_ior, function_arg): Likewise. - (cmpib_comparison_operator, function_arg_partial_nregs): Likewise. - (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT. - (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise. - (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise. - (output_bvb): Likewise. - (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT. - (output_call): New argument 'sibcall'. Generate sibcall sequences - as needed. - (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For - (ouput_arg_descriptor): Do not emit argument descriptors for - TARGET_64BIT. - * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already - defined. - (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define. - (FUNCTION_OK_FOR_SIBALL): Define. - (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define. - (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise. - (CPP_SPEC): Use new spec infrastructure. - (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT. - (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise. - (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise. - (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise. - (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise. - (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. - (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise. - (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise. - (FUNCTION_ARG); Call out to C code. - (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define. - (MIN_UNITS_PER_WORD): Likewise. - * pa/pa.md (cmpdi): New expander. - (scc patterns, movstrsi): Not available for TARGET_64BIT. - (64bit conditional arithmetic): New patterns. - (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns. - (movsicc): Not available if modes on all the operands to not match. - (movdicc): New expander and associated patterns. - (64bit branches): New patterns. - (pre_load, post_store): Generate appropriate code for TARGET_64BIT. - (pre_ldd, post_std): New patterns. - (64bit addil, load low part): New patterns. - (special movsf constant): Not available for TARGET_64BIT. - (movsf, movdf expanders): Force constants into memory. - (32bit movdf/movdi patterns): Disable for TARGET_64BIT. - (64bit movdf/movdi patterns): New patterns. - (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns - for TARGET_64BIT. - (extendqidi2, extendhidi2, extendsidi2): Similarly. - (adddi3 expander): Allow "arith_operand" for second input. - (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT. - (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT. - (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too. - (muldi3): New expander for TARGET_64BIT. - (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2) - for TARGET_64BIT. - (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable - patterns for TARGET_64BIT. - (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New - patterns for TARGET_64BIT. - (64bit bit insertion/extractions): New patterns for TARGET_64BIT. - (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT. - (sibcall_epilogue): New expander. - (casesi): Tweak for TARGET_64BIT. - (call expanders): Set & use the outgoing argument pointer. Use the - 64bit call patterns as needed. Add additional arg to output_call. - (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern. - (sibcall, sibcall_internal_symref): New expanders. - (sibcall_value, sibcall_value_internal_symref - (interspace_jump): Turn into an expander + matching patterns. - (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT. - * pa/pa64-regs.h: Eliminate trigraph sequences. - * pa/pa64-start.h (TARGET_PA_20): Fix typo. - -2000-04-11 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c, - cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace - cpp_token with cpp_ttype everywhere. - * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c: - Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or - CPP_BUF_COL. Line and column numbers are unsigned int, not - long. - * cpplex.c (cpp_buf_line_and_col): Delete. - * cpplib.h (struct cpp_buffer, struct cpp_reader): Change - 'long lineno' to 'unsigned int lineno'. - (CPP_BUF_LINE, CPP_BUF_COL): New macros. - -2000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * extend.texi: ISO C99 is not a draft anymore. - * invoke.texi: ISO C++ is not a draft anymore. - * cpp.texi: __cplusplus is required by the ISO standard. - - * extend.texi (-fthis-is-variable): Undocument. - * flags.h (warn_template_debugging): Remove declaration. - * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable, - -Wenum-clash, -Wtemplate-debugging): Undocument. - -2000-04-10 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT - integer. - (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT - integer. - (ARM_SIGN_EXTEND): Use HOST_UINT. - (STRIP_NAME_ENCODING): Prevent warnings about redefinitions. - (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions. - (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported. - (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported. - - * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT. - (arm_gen_constant): Use HOST_UINT. - (arm_canonicalize_constant): Use HOST_UINT. - (arm_reload_in_hi): Use HOST_UINT. - (arm_reload_out_hi): Use HOST_UINT. - (output_multi_immediate): Use HOST_UINT. - (int_log2): Use HOST_UINT. - (arm_poke_function_name): Use HOST_UINT. - (arm_output_epilogue): Use arm_volatile_func(). - (output_thumb_prologue): Use arm_strip_name_encoding(). - -Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential - of sequence point problems. - -2000-04-10 Nathan Sidwell <nathan@codesourcery.com> - - * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT): - Recomment. - * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment. - -Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * sbitmap.h: Whitespace changes and use upper-case macro args. - (struct simple_bitmap_def): All sizes now unsigned. - (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. - * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. - (sbitmap_vector_alloc): Parms and local vars now unsigned. - (sbitmap_zero): Cast bzero arg to PTR. - (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. - (sbitmap_union_of_diffs): Change loop index to unsigned and rework - loop to make structure clearer. - (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. - (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. - (sbitmap_a_and_b_or_c): Likewise. - (sbitmap_intersection_of_succs): Minor cleanups. - (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. - (sbitmap_union_of_preds): Likewise. - (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. - (debug_sbitmap): New function. - - * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE. - * c-typeck.c (convert_for_assignment): Likewise. - - * expmed.c (init_expmed): Don't free objects we make. - * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups. - - * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases. - (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field. - - * gcse.c (expr_hash_table_size): Now unsigned. - (compute_ae_gen): Local variable `i' now unsigned. - (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise. - (compute_transout, hoist_code): Likewise. - (compute_local_properties): Likewise, also hash_table_size. - (alloc_expr_hash_table): N_INSNS now unsigned. - (delete_null_pointer_checks): Mark arg F as unused. - - * regrename.c: Minor cleanups, including chang some variables - to unsigned int. - -2000-04-10 Neil Booth <NeilB@earthling.net> - - * cpplex.c (skip_block_comment): Use pointer arithmetic rather - than GETC (). - * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New. - -2000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * invoke.texi (-fno-gnu-keywords): Remove classof, headof, - __classof__, and __headof__ from the list of gnu keywords. - (-ansi): Remove -foperator-names from list of implied options. - Do not call it ANSI C++. - (-foperator-names): Document as -fno-operator-names. - -2000-04-09 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (timestamp): Delete. - (del_HASHNODE): If type is T_MCONST, free value.cpval. - (special_symbol): Remove unnecessary braces. Remove - T_VERSION. Treat T_STDC like T_CONST unless - STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__ - when one is encountered, then convert them into T_MCONST - nodes. - * cppinit.c (builtin_array): version_string is T_MCONST. - __STDC__ has a "1" in its cpval. Don't have a terminator - entry. Clean up which entries are dumped. - (initialize_builtins): Only __STDC__ gets the special - -traditional treatment. Count the length of builtin_array. - Render version_string here. - * cpphash.h: Remove T_VERSION. Add T_MCONST. - * cpplib.h (struct cpp_reader): Remove timebuf. - -2000-04-09 Richard Henderson <rth@cygnus.com> - - * genrecog.c (pred): Update comparison_operator for the unordered - operators. - - * config/i386/i386.c (no_comparison_operator): Disallow unordered - operators. - (fcmov_comparison_operator): Allow UNORDERED/ORDERED. - (uno_comparison_operator): New. - (put_condition_code): Handle UNORDERED/ORDERED. - (unsigned_comparison): Likewise. - (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. - (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. - (ix86_expand_fp_compare): Use them. Take scratch as argument, - update all callers. Handle all 8 unordered operators. - (ix86_expand_setcc): Lose the unordered argument, update all callers. - (ix86_expand_branch): Likewise. Don't fully expand fp branches. - * config/i386/i386.h (PREDICATE_CODES): Update. - * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. - (ix86_expand_branch, ix86_expand_setcc): Update. - * config/i386/i386.md (sunordered, sordered): New. - (suneq, sunge, sungt, sunle, sunlt, sltgt): New. - (bunordered, bordered): New. - (buneq, bunge, bungt, bunle, bunlt, bltgt): New. - (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. - (*fp_jcc_5, *fp_jcc_6, and splitters): New. - -2000-04-09 Philip Blundell <philb@gnu.org> - - * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too. - -Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com) - - * i386.md (fix_truncsfhi2, fix_truncdfhi2, - fix_truncxfhi2): New patterns. - * i386.c (output_fix_trunc): Handle converting to HImode. - -2000-04-08 Alex Samuel <samuel@codesourcery.com> - - * ssa.c (convert_to_ssa): Eliminate dead code when calling - life_analysis. - (convert_from_ssa): Call compute_bb_for_insn before life_analysis. - (for_each_successor_phi): Change parameter to basic_block. - (coalesce_regs_in_successor_phi_nodes): Likewise. - (coalesce_regs_in_copies): Likewise. - (compute_coalesced_reg_partition): Use basic_block instead of index. - * rtl.h (convert_to_ssa): Delete. - (convert_from_ssa): Likewise. - (successor_phi_fn): Likewise. - (for_each_successor_phi): Likewise. - (in_ssa_form): Likewise. - * basic-block.h (convert_to_ssa): Moved from rtl.h. - (convert_from_ssa): Likewise. - (successor_phi_fn): Likewise. - (in_ssa_form): Likewise. - (for_each_successor_phi): Likewise. Change parameter to basic_block. - * flow.c (calculate_global_regs_live): Pass a basic_block to - for_each_successor_phi. - -2000-04-08 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_used_reg): Use reg_set_p to determine if a register - was modified in the current insn. - -2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - * arm/thumb.md: Delete. - * arm/thumb-protos.h: Delete. - -2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - Merge changes from merged-arm-thumb-backend-branch onto trunk. - - 2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408 - into branch. - - * arm.md (nop): Use the standard RTL expression. Don't code as a - define_expand. - (*arm_nop, *thumb_nop): Delete. - - * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining - constants. Use casts instead. - (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi, - output_multi_immediate, arm_poke_function_name): Likewise. - * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND, - MASK_RETURN_ADDDR): Likewise. - - 2000-03-31 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 - into branch. - - * arm.md (eh_epilogue): New function. - * arm.h (struct machine_function): Move to here ... - * arm.c: ... from here. - (arm_output_epilogue): Support epilogues for __builtin_eh_return. - (thumb_exit): Extra parameter eh_ofs. All callers changed. - Handle epilogues for __builtin_eh_return. Make bit-fields unsigned. - - 2000-03-30 Nick Clifton <nickc@cygnus.com> - - * config/arm/semi.h (ASM_SPEC): Restore definition. - (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. - - * config/arm/elf.h (ASM_SPEC): Restore definition. - (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. - - * config/arm/arm.h (ASM_SPEC): Remove definition. - (SUBTARGET_EXTRA_ASM_SPEC): Remove definition. - - 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> - - * config/arm/arm.c: Disable -fschedule-insns for Thumb. - - 2000-03-24 Nick Clifton <nickc@cygnus.com> - - Various formating tidyups, elimination of compile time - warnings and synchronisation with internal sources: - - * config/arm/arm-protos.h (assemble_align): Add prototype. - (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. - (gen_comapre_reg): Rename to arm_gen_compare_reg. - (arm_return_addr_rtx): Rename to arm_return_addr. - - * config/arm/arm.c: Include except.h. - Define shorter typenames for strict minipool_node and struct - minipool_fix. - (arm_return_in_memory): For WinCE return all structures <= 32 bits - in memory. - (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. - (gen_comapre_reg): Rename to arm_gen_compare_reg. - - * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not - already defined. - (ASM_SPEC): Define if not already defined. - (ASM_OUTPUT_DEF_FROM_DECLS): Define. - - * config/arm/arm.md: Rename references to gen_rotated_half_load to - arm_gen_rotated_half_load, and references to gen_comapre_reg to - arm_gen_compare_reg. - (indirect_jump): Only accept register operands. - (load_indirect_jump): Keep this pattern since combine can generate - it. - - * config/arm/coff.h: Include aout.h. - (MULTILIB_DEFAULTS): Only define if not already defined. - - * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition - into arm.h (so that COFF ports can support thumb based aliases). - (ASM_SPEC): Move definition into arm.h - - * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove - redundant apcs spec. - (ASM_SPEC): Move definition to arm.h - - * config/arm/semi.h (ASM_SPEC): Move definition to arm.h - - * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support - for entries in the .bss section - - 2000-03-23 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0 - to thumb_far_jump_used_p. - - * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a - single integer parameter. - - * config/arm/arm.c (struct machine_function): Add two new - fields, 'far_jump_used' and 'arg_pointer_live'. - (thumb_far_jump_used_p): Once the decision has been made that - far jumps might be used, always return true. - If being called from the initial elimination offset macro then - do not bother to perform the test if the arg pointer is not - being used. - (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p(). - (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p(). - - 2000-03-23 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (output_return_instruction): Handle more cases where we can - return from a function with an ldr instruction. - (arm_output_epilogue): Likewise. - - * arm.c (thumb_expand_prologue): Don't clobber the frame pointer - if we need to push a large stack frame and there are no callee-saved - registers. - - * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid - in ARM code if the frame pointer has been eliminated. - - * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber - unspec_volatile arguments to avoid duplicates. - (consttable_1, consttable_2): Fixes for big-endian mode. - - * arm.md (all ARM-mode load insns): Add neg_pool_range attribute - as appropriate. - - Re-write constant pool code. - * arm.c (minipool_node, minipool_fix): New types. - (minifix): Delete type. - (arm_add_minipool_constant): Delete. - (arm_compute_minipool_offsets, arm_find_barrier, - arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise. - (get_jump_table_size): Now returns HOST_WIDE_INT. - (move_minipool_fix_forward_ref, add_minipool_forward_ref): New - functions. - (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise. - (assign_minipool_offsets, arm_print_value): Likewise. - (dump_minipool): Rewrite. - (arm_barrier_cost): New function. - (create_fix_barrier): New function. - (push_minipool_barrier): New function. - (push_minipool_fix): Record additional information about the fixup - required. - (note_invalid_constants): Remove push for (UNSPEC 3). Don't - check the mode of what needs fixing. - (arm_reorg): Rewrite. - - 2000-03-08 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md (indirect_jump): Force constant addresses into - a register. - - 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> - - * config/arm/arm.md: Add splitter to turn SF moves into SI moves. - - 2000-02-24 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (thumb_expand_prologue): Make sure that stack - adjust is word aligned. - (thumb_expand_epilogue): Make sure that stack adjust is word - aligned. - - * config/arm/elf.h (ASM_FILE_START): Fix type of version string. - - 2000-02-24 Bernd Schmidt <bernds@cygnus.com> - - * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame - pointer relative addresses. - - 2000-02-10 Richard Earnshaw <rearnsha@arm.com> - - * arm.c (find_barrier): Find the last barrier within the allowed - range. - - 2000-02-09 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm-protos.h: Replace PROTO with PARAMS. - - 2000-02-09 Nick Clifton <nickc@cygnus.com> - - * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to - ARM_FUNCTION_PROFILER. - - * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to - ARM_FUNCTION_PROFILER. - - * config/arm/linux-oldld.h: Imported from mainline sources. - - 2000-02-07 Nick Clifton <nickc@cygnus.com> - - * config/arm/lib1funcs.asm: Merge in thumb functions from - lib1thumb.asm. - - * config/arm/lib1thumb.asm: Delete. - - 2000-02-04 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Sychronised with current Red hat local - sources. - * config/arm/arm.h: Ditto. - * config/arm/arm-protos.h: Ditto. - - 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk> - - * arm.c (soft_df_operand): Reject SUBREGs containing a constant. - - * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two - byte stores. - - 2000-02-02 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (thumb_exit): Additional fix for same bug. - - * config/arm/arm.md (epilogue): Fix rtl checking abort because - (return) was emited using an emit_insn() call. - - 2000-01-31 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (output_thumb_prologue): Fix bug generating - thumb stack frame. - (thumb_exit): Move frame pointer back into hard frame pointer - register if backtracing is being used. - - 2000-01-13 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 - into branch. - - 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk> - - * config/arm/arm.md (neg_pool_offset): Provide default for new - attribute. - (arm_movsi_insn): Add neg_pool_offset attribute. - * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an - rtx for the insn that starts the scan and an unsigned long for its - address. Add MIN_OFFSET and PINSERTED args. All callers changed. - Change scan to ignore insns before MIN_OFFSET. Store size of inserted - instructions in *PINSERTED. - (struct minipool_fixup): Add MIN_ADDRESS elt. - (sort_fixups): Compute it. - (arm_reorg): Changes to support inserting pools before the insn to be - fixed up. - - 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk> - - * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm". - * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm". - * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm". - - Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/semi.h (TARGET_VERSION): Do not define if already - defined. - (TARGET_DEFAULT): Do not define if already defined. - - Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.md (anddi3): Allow disjoint source operands. - (iordi3): Allow disjoint source operands. - (xordi3): Allow disjoint source operands. - (negdi2): Permit construction for ARM and Thumb. - (arm_negdi2): Renamed version of old negdi2 pattern. - (thumb_negdi2): New pattern: Only permit non-overlapping - source and destination. - - Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the - scratch low register so that it will not be deleted. - - Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/pe.h (ARM_PE): Define. - - * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow - interfacearm attribute if this is a PE toolchain. - (output_return_instruction): Do not emit anything if the function - has the naked attribute set. - (is_called_in_ARM_mode): If the function has the interfacearm - attribute then return true. - (thumb_expand_prologue): Do not generate a prologue for naked - functions. - (thumb_expand_epilogue): Do not generate an epilogie for a naked - function. - (output_thumb_prologue): Do not bother if the function is naked. - Strip PE encoding from function name before emitting. - - Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com> - - * arm.md (pic_load_addr): Fix constraints. - - * arm.md (casesi_insn): Fix mis-applied patch. - - * arm.md ("core" function unit): Add rules for single- and - multi-cycle insns. - (All TARGET_THUMB patterns): Add "type" attribute information - where needed. - * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if - the following insn is a CALL. - - * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack - pointer. - * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the - ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME. - (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM. - - Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/linux-gas.h: oops - this file was missed out when the - branch was created... - - Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com> - - * thumb.c: Deleted. Move contents to ... - * arm.c: ... here. - * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove - rule for thumb.o - * configure.in (arm*-*-*): Remove thumb.o from extra_objs list. - * configure: Regen. - - * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't - declare a prototype for asm_output_align(); - - * arm.c (thumb_condition_code): Delete. - (arm_print_operand): Always use arm_condition_code array. - - * arm.c (thumb_return_addr_rtx): Delete. - (arm_save_machine_status, arm_restore_machine_status): Delete. - (arm_init_machine_status, arm_mark_machine_status): New functions. - (arm_init_expanders): Update accordingly. - (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite. - (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx. - * arm.h (RETURN_ADDR_RTX): Call arm_return_addr(). - - Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com> - - * configure.in : Fix arm-*-aout target to use new t-arm-aout - script. - * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout - targets. - - Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c (output_thumb_prologue): Fix bug creating - stack backtrace structure. - - * config/arm/arm-protos.h: Add prototypes for functions defined in - arm/pe.h. - - * config/arm/arm.c (arm_override_options): Fix selection of - attributes of default processor. - - * config/arm/coff.h: Delete needless #include. - - * config/arm/pe.c: Delete unused code. - - * config/arm/pe.h (CPP_DEFINES): Delete - (SUBTARGET_CPP_SPEC): Define. - (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. - - * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build. - - Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses - updated. - (CAN_DEBUG_WITHOUT_FP): Define. - (FIXED_REGISTERS): Make r11 call-saved. - (CALL_USED_REGISTERS): Likewise. - (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME. - (FRAME_POINTER_REQUIRED): Correct logic for determining when a - frame-pointer is required. - (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME. - * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g - if the target normally needs a stack frame in non-leaf functions. - (use_return_insn): Correct logic for determining when a return - instruction can be used. - (output_return_instruction): Handle the frame-pointer register as - a normal register when not TARGET_APCS_FRAME. - (arm_output_prologue): Likewise. - (arm_output_epilogue): Likewise. - (output_func_epilogue): Likewise. - (arm_expand_prologue): Likewise. - * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME. - - * arm.c (use_return_insn): No need to check floating point regs if - TARGET_SOFT_FLOAT. - (arm_find_minipool_constant): Correct typo; use GET_CODE to get - the code of value stored in the minipool array. - (arm_add_minipool_constant): Likewise. - -2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * basic-block.h (conflict_graph_enum_fn): K&R fix. - -2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * tree.c (tree_expr_nonnegative_p): New function. - - * tree.h (tree_expr_nonnegative_p): Declare. - - * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to - elide some sign_compare warnings. - (build_conditional_expr): Likewise. - -Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com) - - * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo. - - * i386.md (floathisf2, floathidf2, floathixf2): New patterns. - * i386.c (print_operand): Use the proper suffix for a 387 HImode - operand. Abort if a 387 operand has an unsupported size. - -2000-04-08 Neil Booth <NeilB@earthling.net> - - * cppexp.c (parse_charconst): Null does not end character - constants. - * cppinit.c (ISTABLE): Null character handled as whitespace. - * cpplex.c (null_warning): new function. - (skip_string): Emit warning if nulls encountered. - (_cpp_skip_hspace): Emit warning if nulls encountered. - (_cpp_lex_token): Emit warning if nulls encountered. Drop - them. - * cpp.texi: Update. - -2000-04-07 Richard Henderson <rth@cygnus.com> - - * flow.c (loop_depth): Remove. - (reg_next_use, cc0_live, mem_set_list): Replace with ... - (struct propagate_block_info): New. - (life_analysis): Don't allocate reg_next_use. - (propagate_block_delete_insn): Break out of propagate_block. - Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. - (propagate_block_delete_libcall): Likewise. - (propagate_block): Create a propagate_block_info struct to pass - to subroutines. Allocate one not two temporary regsets. Don't - clobber memory for const calls. Look for clobbers in - CALL_INSN_FUNCTION_USAGE. - (mark_set_regs): Recognize COND_EXEC. - (mark_set_reg): Break out of mark_set_1. - (mark_used_reg): Break out of mark_used_regs. - (mark_used_regs): Recognize COND_EXEC. - (insn_dead_p): Use propagate_block_info struct. - (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. - (find_auto_inc, try_pre_increment_1): Likewise. - (print_rtl_with_bb): Dump regs live at end too. - (count_reg_sets_1): Pass in loop_depth. - (count_reg_sets, count_reg_references): Likewise. - (recompute_reg_usage): Provide it. - -2000-04-07 Richard Henderson <rth@cygnus.com> - - * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H) - not the raw files. - -2000-04-07 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (do_elif): Skip the rest of the line if we're - not going to bother evaluating it. - (skip_if_group): Clear pfile->only_seen_white. Reorder loop - to avoid pointless calls to the lexer. - -Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. - -2000-04-07 Jason Merrill <jason@casey.cygnus.com> - - * calls.c (expand_call): emit_queue if we're trying a sibcall. - -2000-04-07 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove. - -2000-04-06 Geoff Keating <geoffk@cygnus.com> - - * Makefile.in: Build crtbeginS and crtendS like crtbegin and - crtend so they can be multilibbed. - (STAGESTUFF): Remove s-crt and s-crtS. - -2000-04-07 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (alpha_emit_conditional_move): Fail - if we discover we need a pseudo and no_new_pseudos is true. - * config/alpha/alpha.md (ne:DI insn): New. - (trunctfsf2, sne): Emit NE instead of non-canonical LTU. - -2000-04-07 Richard Henderson <rth@cygnus.com> - - * rtl.def (COND_EXEC): New. - * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. - * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. - - * genconfig.c (have_cond_arith_flag): Remove. - (have_cond_exec_flag): New. - (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. - (main): Print HAVE_conditional_execution. - - * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. - (sched_analyze_insn, print_pattern): Likewise. - * reload.c (find_equiv_reg): Likewise. - * rtlanal.c (reg_referenced_p): Likewise. - (note_stores, dead_or_set_regno_p): Likewise. - (reg_overlap_mentioned_p): Rewrite to use a switch. - - * ggc.h (struct rtx_def): Forward declare. - - * print-rtl.c (debug_rtx_range): New. - * rtl.h (debug_rtx_range): Declare. - - * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. - - * gcse.c (gcse_main): Don't rebuild the CFG here. - (delete_null_pointer_checks): Likewise. - * ssa.c (convert_to_ssa): Likewise. - * toplev.c (rest_of_compilation): Do it here instead. Combine - sequential calls to TIMEVAR. Consistently use `insns' instead of - `get_insns()'. Always split insns after reload when optimizing. - - * basic-block.h (merge_blocks_nomove): Declare. - (tidy_fallthru_edge): Declare. - * flow.c (merge_blocks_nomove): Document as merging into previous - blocks. Remove cruft from between blocks; remove all edges out of A. - (tidy_fallthru_edge): Export. - -2000-04-06 Alex Samuel <samuel@codesourcery.com> - - * ssa.c (compute_conservative_reg_partition): Declare with - void arguments. - * toplev.c (clean_dump_file): Remove previously-deleted function - inadvertantly merged back in. - * conflict.c (conflict_graph_add): Use a single call to - htab_find_slot to look up and insert. - -2000-04-06 Richard Henderson <rth@cygnus.com> - - * genrecog.c (*): Rename _last_insn to last_insn. - (make_insn_sequence): Set the position of the peephole2 C test - to be at the last insn. - -2000-04-06 Richard Henderson <rth@cygnus.com> - - * flow.c (compute_flow_dominators): Free worklist. - -2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de> - - * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. - -2000-04-06 Alex Samuel <samuel@codesourcery.com> - - * rtl.h (INSN_P): New macro. - (successor_phi_fn): New typedef. - (for_each_successor_phi): New prototype. - (in_ssa_form): New variable. - (PHI_NODE_P): Likewise. - * flow.c (calculate_global_regs_live): Add to new_live_at_end from - phi nodes in successors. - (mark_used_regs): Add PHI case. - (set_phi_alternative_reg): New function. - (life_analysis): Assert that dead code elimination is not selected - when in SSA form. - * toplev.c (to_ssa_time): New variable. - (from_ssa_time): Likewise. - (compile_file): Zero to_ssa_time and from_ssa_time. - Print time to convert to and from SSA. - (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. - (print_time): Compute percent fraction as integer. - * ssa.c (PHI_NODE_P): Moved to rtl.h. - (convert_to_ssa): Check if we're already in SSA. - Don't eliminate dead code in life_analysis. - Rerun flow and life analysis at bottom. - (eliminate_phi): Use canonical regnos when adding nodes. - (mark_reg_in_phi): New function. - (mark_phi_and_copy_regs): Likewise. - (convert_from_ssa): Rerun life analysis at top. - Use coalesced partition. - Check for removing a phi node at the end of the block. - (compute_coalesced_reg_partition): New function. - (coalesce_regs_in_copies): Likewise. - (coalesce_reg_in_phi): Likewise. - (coalesce_regs_in_sucessor_phi_nodes): Likewise. - (for_each_successor_phi): Likewise. - (rename_context): New struct. - (rename_block): Use a rename_context with rename_insn_1. When - renaming sets of a subreg, emit a copy of the entire reg first. - (rename_insn_1): Treat data as a rename_context *. Save current - insn in set_data. - (rename_set_data): Add field set_insn. - * Makefile.in (HASHTAB_H): Move up in file. - (OBSTACK_H): New macro. - (collect2.o): Use OBSTACK_H in dependencies. - (sdbout.o): Likewise. - (emit-rtl.o): Likewise. - (simplify-rtx.o): Likewise. - (fix-header.o): Likewise. - (OBJS): Add conflict.o. - (conflict.o): New rule. - * basic-block.h: Include partition.h. - (conflict_graph): New typedef. - (conflict_graph_enum_fn): Likewise. - (conflict_graph_new): New prototype. - (conflict_graph_delete): Likewise. - (conflict_graph_add): Likewise. - (conflict_graph_conflict_p): Likewise. - (conflict_graph_enum): Likewise. - (conflict_graph_merge_regs): Likewise. - (conflict_graph_print): Likewise. - (conflict_graph_compute): Likewise. - * conflict.c: New file. - -2000-04-06 Jason Merrill <jason@yorick.cygnus.com> - - * tlink.c (read_repo_files): Don't look for .rpo info for - linker flags. - -Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define. - -Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * config/sh/lib1funcs.asm (___udivsi3_i4): - ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr - only depends on FMOVD_WORKS. - -Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd, - make double constant 8-byte aligned. - -2000-04-06 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32, - movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, - movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. - (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. - Accept storing GENERAL_REGS into offsetable memory. - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow - building a TFmode constant other than 0.0L into GENERAL_REGS. - -2000-04-06 Clinton Popetz <cpopetz@cygnus.com> - - * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER. - -2000-04-06 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete. - (macro_cleanup): No need to cast pbuf->macro. - (collect_expansion): Use _cpp_get_define_token. Goto done if - it returns VSPACE. Remove check for trailing space after - CPP_COMMENT. - (_cpp_create_definition): Don't diddle flags here. Return - directly on error. - (unsafe_chars): Handle c1 being EOF. - (push_macro_expansion): Use unsafe_chars for both accidental-paste - checks. Don't push the buffer till after we're done with - them. - * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. - (PEEKN, FORWARD, GETC, PEEKC): Use them. - (cpp_push_buffer): Don't set new->alimit. Set new->mark - appropriately. - (_cpp_parse_assertion): Don't NUL terminate. - (_cpp_lex_token): Fix -traditional macro handling. Don't skip - hspace before calling _cpp_parse_assertion. Remove all sets - of only_seen_white. Treat '\f' as hspace. Don't do anything - special with '\n' here. - (maybe_macroexpand): Handle T_EMPTY hash entries without - pushing a buffer at all. - (cpp_get_token): Handle clearing only_seen_white here. Handle - incrementing the line number here. Clear - potential_control_macro as well as only_seen_white, if - appropriate. - (cpp_get_non_space_token): Don't eat CPP_POP tokens. - (_cpp_get_define_token): New function, basically like - _cpp_get_directive_token was but doesn't eat horizontal space. - Don't do anything with only_seen_white here. - (_cpp_get_directive_token): Just call _cpp_get_define_token - repeatedly till it returns non-hspace. - - * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. - (conditional_skip, skip_if_group): Return int. - (DIRECTIVE_TABLE): Change origin of all conditional directives - to "COND". - (TRAD_DIRECT_P): New macro. - (_cpp_handle_directive): Use _cpp_get_directive_token. Issue - an error for a bogus directive, unless -lang-asm. Use - TRAD_DIRECT_P. Loop calling handler functions till one returns - zero. - (get_macro_name): Don't diddle flags here. - (do_define): Diddle flags here. Use _cpp_get_directive_token. - Create T_EMPTY nodes for #define macro /* nothing */. - (do_undef): Don't copy the name. Use _cpp_get_directive_token. - Use hp->name when calling pass_thru_directive. - (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): - Return the result of conditional_skip and/or skip_if_group. - Don't call _cpp_output_line_command. - (consider_directive_while_skipping): Use _cpp_get_directive_token. - Issue -Wtraditional warnings as appropriate. Don't complain - about unrecognized directives. If we are to stop skipping, - return the number of the directive that ended the skip. - (skip_if_group): Use _cpp_get_directive_token. Turn off macro - expansion and line commands while skipping. Return the result - of consider_directive_while_skipping, if nonzero. - (do_endif): Just set potential_control_macro here. - (validate_else): Use _cpp_get_directive_token. - (do_assert, do_unassert): Don't save pointers into the - token_buffer across calls to the lexer. Use - _cpp_get_directive_token. - - * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a - pointer, not an offset. Replace 'data', which was a generic - pointer, with 'macro', which points to a struct hashnode. - (cpp_reader): Add 'potential_control_macro' pointer. - * cpphash.h (T_UNUSED): Replace with T_EMPTY. - (CPP_BUF_GET, CPP_FORWARD): Delete. - (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. - (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, - ACTIVE_MARK_P): Update. - (_cpp_get_define_token): New internal function. - * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. - -2000-04-05 Benjamin Kosnik <bkoz@cygnus.com> - - * configure.in: And here. - * configure: Regenerate. - * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if - --enable-libstdcxx-v3 is passed at configure time. - * config.h.in: Regenerate. - -2000-04-05 Mark Mitchell <mark@codesourcery.com> - - * final.c (final): Use xcalloc to allocate line_note_exists. - * function.c (free_after_compilation): Free the temp_slots. - (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots. - (combine_temp_slot): Free temp_slots when they get combined. - (purge_addressof): Fix typo in comment. - * stmt.c (mark_goto_fixup): Mark the fixup itself. - (expand_fixup): Allocate the fixup with ggc_alloc_obj. - - * ggc.h: Include varray.h. - (ggc_pending_trees): Declare. - (ggc_mark_tree_children): Remove declaration. - (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees. - * ggc-common.c (ggc_pending_trees): New variable. - (ggc_mark_roots): Call ggc_mark_trees. - (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all - the ggc_pending_trees. - * Makefile.in (GGC_H): New variable. Use it throughout in place - of ggc.h. - -Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned - GET_MODE_SIZE. - -Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (sh_insn_length_adjustment): New function. - * sh-protos.h (sh_insn_length_adjustment): Declare. - * sh.h (ADJUST_INSN_LENGTH): Use it. - -Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com> - - * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes - from the insn where REG_RETVAL is added. - (emit_no_conflict_block): Ditto. - - * md.texi (Standard Names): Clarify when movX is needed. - - * combine.c (simplify_comparison) [MINUS]: Do not replace - all (op (minus A B) 0) with (op A B). - -Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com) - J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (block_lump_real_i4): Add missing clobber of T_REG - (block_lump_real): Likewise. - -2000-04-05 Chris Demetriou <cgd@netbsd.org> - - * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the - remaining non-zero debugging masks. - -Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com) - - * basic-block.h (verify_flow_info): Declare. - (flow_loop_outside_edge_p): Declare. - * flow.c (verify_flow_info): Remove declaration. - (clear_log_links, flow_loop_outside_edge_p): Likewise. - -Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be> - - * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0', - not C++ comments. - -2000-04-05 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1, - snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1, - seqdi_zero_trunc+1): Allow splits only if registers are - different. - -2000-04-04 Ulrich Drepper <drepper@cygnus.com> - - * acconfig.h: Add HAVE_GAS_HIDDEN. - * config.in: Regenerated. - * configure.in: Add test for .hidden pseudo-op in gas. - * configure: Regenerated. - * crtstuff.c: Include auto-host.h. - Emit additional .hidden pseudo-op for __dso_handle if the - assembler knows about it. - -2000-04-04 Philippe De Muyter <phdm@macqel.be> - - * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0, - before freeing argnames. - * cpplib.c (do_ifndef): Cast return value of xstrdup. - -2000-04-05 Michael Meissner <meissner@redhat.com> - - * config/rs6000/rs6000.c (print_operand): Patch from Jonathan - Walton <jonboy@gordian.com> to make memory references with update - work wtih -mregnames. - -2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * regrename.c (regno_first_use_in): Wrap prototype in PARAMS. - (regrename_optimize): Rename variables `def_uses' and - `ext_basic_blocks' to avoid conflicts with similarly named - typedefs in traditional C. - - * calls.c (initialize_argument_information): Fix typo in previous - change. - -2000-04-04 Richard Henderson <rth@cygnus.com> - - * regrename.c (consider_available): Test fixed_regs not - PIC_OFFSET_TABLE_REGNUM. - -2000-04-04 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin, - crtend. - (CRTSTUFF_T_CFLAGS_S): Delete definition. - * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin. - (ENDFILE_LINUX_SPEC): Always use crtend. - * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts. - (powerpc-*-linux-gnu): Likewise. - * configure: Regenerate. - - * config/rs6000/eabi.h: Don't include sysv4.h. - (MULTILIB_DEFAULTS): Don't define. - * config/rs6000/eabiaix.h: Don't include eabi.h. - * config/rs6000/eabile.h: Delete. - * config/rs6000/eabilesim.h: Delete. - * config/rs6000/eabisim.h: Don't include eabi.h. - * config/rs6000/linux.h: Don't include sysv4.h. - (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine. - (MULTILIB_DEFAULTS): Don't redefine. - * config/rs6000/rtems.h: Don't include eabi.h. - * config/rs6000/sol2.h: Don't include sysv4le.h. - * config/rs6000/sysv4le.h: Don't include sysv4.h. - * config/rs6000/t-ppc: Delete. - * config/rs6000/t-ppcgas: Correct comment. - * config/rs6000/t-ppcos: Correct comment. Don't build - multilibs for -fPIC, rather use -fPIC -mstrict-align - as default. - * config/rs6000/t-ppc: Delete. - * config/rs6000/vxppc.h: Don't include sysv4.h. - * config/rs6000/vxppcle.h: Delete. - * configure.in: Use multiple header files for p2pc ELF targets - powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi, - powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu, - powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv, - powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is - always available for these platforms. - -2000-04-04 Richard Henderson <rth@cygnus.com> - - * calls.c (try_to_integrate): Initialize reg_parm_stack_space. - -2000-04-04 Stan Cox <scox@cygnus.com> - - * Makefile.in: Add rules for regrename.o - * regrename.c: New file. - * rtl.h (regrename_optimize): Add prototype. - * toplev.c (rename_registers_dump, flag_rename_registers): New variables - (compile_file, decode_d_option): Add support for -frename-registers. - (rest_of_compilation): Call regrename_optimize. - * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS): - New macros. - -2000-04-04 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * Makefile (gccbug): New target. - (doc): Depend on it. - * gcc.texi (Bugs): Link subnodes. - (gccbug): New node. - * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc. - Document severities, priorities, and classes in bug form. - -2000-04-04 Zack Weinberg <zack@wolery.cumb.org> - - * cpplex.c (trigraph_map, speccase): Combine into single - table, chartab. - (NORMAL, NONTRI): New macros. - (_cpp_read_and_prescan): Change to use unified table. Use - is_hspace to test for whitespace. - - * dbxout.c (CONTIN): If it doesn't have to do anything, give it a - definition that doesn't provoke the "empty body in an - if-statement" warning. - -2000-04-04 Clinton Popetz <cpopetz@cygnus.com> - - * builtins.c (expand_builtin_strlen): Force the source to - be a memory address. - -2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace. - -Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE, - ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants. - (ECF_IS_CONST): Rename to ECF_CONST. - (special_function_p): Make static, change interface. - (flags_from_decl_or_type, try_to_integrate): Break out from ... - (expand_call) ... here; convert number of variables to flags. - (emit_library_call_vlue_1): Likewise. - (setjmp_call_p): New function. - (initialize_argument_information): Accepts flags as argument; - return flags. - (precompute_arguments): Likewise. - * tree.h (special_function_p): Remove. - (setjmp_call_p): Add prototype. - -2000-04-04 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin - so that addresses are offsetable by up to 16 bytes. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for - non-optimizing TARGET_ARCH32 in DF or DI modes because it is not - offsetable. - - * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern. - (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64. - (movsf): Don't force any constant to memory if target is integer - hard register. - Move fp_zero_operand check below the const0_rtx check. - (movtf): Likewise. Also allow fp_zero_operand for stores into - memory. - (movdf): Likewise. Also allow fp_zero_operand for stores into - memory and into integer hard registers. - (clear_df, clear_dfp, movdf_const_intreg_sp32, - movdf_const_intreg_sp64): Remove. - (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and - conditions. - (movdf_no_e_insn_v9_sp32): New pattern. - (movdf_insn_v9only): Remove. - (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns. - (movdf_insn_sp64): Remove. - (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns. - (movdf_no_e_insn_sp64): Allow storing 0.0 into memory. - (following splits): Rewrite conditions. Add two new splits - for storing 0.0 into memory and registers. - (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove. - (movtf_insn_sp32): Redo constraints and conditions. - (movtf_insn_vis_sp32): New pattern. - (movtf_no_e_insn_sp32): Redo constraints and conditions. - (movtf_insn_hq_sp64): Likewise. - (movtf_insn_hq_vis_sp64): New pattern. - (movtf_insn_sp64): Redo constraints and conditions. - (movtf_insn_vis_sp64): New pattern. - (movtf_no_e_insn_sp64): Redo constraints and conditions. - (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers - or memory. - * config/sparc/sparc.c (sparc_override_options): Assume v9 if either - -mvis or -m64 to take down the number of various reload patterns. - -Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com) - - * pa/pa-64.h: New file. - * pa/pa64-regs.h: New file. - * pa/pa64-start.h: New file. - * pa/t-pa64: New file. - * pa/xm-pa64hpux.h: New file. - -2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.c (output_restore_regs): Prototype. - (sparc_emit_float_lib_cmp): Constification. - - * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise. - - * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify): - Prototype. - - * simplify-rtx.c (entry_and_rtx_equal_p): Constification. - (get_value_hash, hash_rtx): Likewise. - - * ssa.c (compute_conservative_reg_partition): Prototype. - - * tree.c (mark_hash_entry): Prototype. - -2000-04-03 Zack Weinberg <zack@wolery.cumb.org> - - * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING. - * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0. - * i386.md (call_value, call_value_pop): Remove unused variable 'addr'. - - * gcc.c (C specs): Pass -fno-show-column to the preprocessor. - * objc/lang-specs.h: Likewise. - -2000-04-03 Neil Booth <NeilB@earthling.net> - - * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR - and SYNTAX_ERROR2. Replace `' in messages with ''. - (op_to_str): Make re-entrant. - (_cpp_parse_expr): Implement new error macros. Use | rather - than || to logically or 2 boolean integers. Simply expression - checking we have a left operand iff needed. - -2000-04-03 Nick Clifton <nickc@cygnus.com> - - * Makefile.in (diagnostic.o): Depend upon diagnostic.c - -2000-04-03 Philip Blundell <philb@gnu.org> - - * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos. - -2000-04-03 Felix Lee <flee@cygnus.com> - - * fixinc/server.c (find_shell): New function. Avoid $SHELL. - (run_shell): Use it. - -2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk> - - * Makefile.in (stmp-int-hdrs): Make include subdir here... - (stmp-fixproto): ...rather than here. - -Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com> - - * pa.c (print_operand): Compute 'base' only inside the code paths - that use it. - -2000-04-03 Geoffrey Keating <geoffk@cygnus.com> - - * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than - CEIL_DIV_EXPR. - -2000-04-03 Philipp Thomas <pthomas@suse.de> - - * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo. - -Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu> - - * Makefile.in (alias.o): Depend on $(TREE_H). - -2000-04-02 Zack Weinberg <zack@wolery.cumb.org> - - * cppinit.c (cpp_start_read): Turn off -Wtraditional if - processing C++. - * cpplib.c (_cpp_handle_directive): Improve warnings for - traditional C and indented directives. - - * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex, - fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap, - fixinc/inclhack.def: Indent the # of #include_next one space. - * cp/rtti.c: Un-indent #if and #endif. - - * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a - syntax error, but an error has already been printed. - * cpplex.c (_cpp_parse_assertion): Give a more specific error - message when called with nothing remaining on the line. - (_cpp_lex_token): If _cpp_parse_assertion fails, return an - OTHER token, not an ASSERTION. - * cpplib.c (do_assert): When we create a 'base' node, clear - its aschain pointer. - -2000-04-02 Neil Booth <NeilB@earthling.net> - - * cppexp.c: New typedef op_t. struct operation and struct - token updated to use it. - (op_to_str): New function. - (_cpp_parse_expr): Error messages modified to use op_to_str. - -2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node - before checking MUST_PASS_IN_STACK. - -2000-04-02 Neil Booth <NeilB@earthling.net> - - * cppexp.c: New FINISHED dummy token. Combine operator initial - flags and initial priority into a single constant. New - EQUALITY macro. New operator flag SHORT_CIRCUIT. - (_parse_cpp_expr): Implement new constants. Take left operand - checks out of reduction loop. Handle SHORT_CIRCUIT. End of - parse indicated by reducing FINISHED token. Remove new lines - from cpp_error messages. - -2000-04-01 Mark Mitchell <mark@codesourcery.com> - - * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the - permanent obstack. - -2000-04-01 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c: Include symcat.h. Add 'origin' field to struct - directive. Add origin values to DIRECTIVE_TABLE. Generate - the strings and function names on the fly. Take the #sccs - entry out of the table if SCCS_DIRECTIVE is not defined. - (_cpp_handle_directive): Decide if the # was at the beginning - of the line here. Issue -pedantic warnings for extended - directives here. Warn about K+R directives with the # - indented, and C89/extended directives with the # not indented, - here. - (do_import, do_include_next, do_warning, do_ident, do_sccs, - do_assert, do_unassert): Don't issue pedantic warning here. - - * cpphash.h: Add CPP_WTRADITIONAL macro. - * cpplib.h (struct cpp_options): Rename warn_stringify to - warn_traditional; update comments. - * cppinit.c (handle_option): Set warn_traditional not - warn_stringify. - * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with - CPP_WTRADITIONAL (pfile). - * cpplex.c (_cpp_lex_token): Don't decide if directives should - be ignored in -traditional mode here. - - * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them - to initialize speccase[] and trigraph_map[]. Delete all - references to pfile->input_speccase. Always treat '?' as a - special character. Remove table-initialization code from - _cpp_init_input_buffer. - - * cpplib.h (struct cpp_reader): Remove input_speccase field. - * cppinit.c (cpp_cleanup): Don't free input_speccase. - -2000-04-01 Richard Henderson <rth@cygnus.com> - - * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once. - (mostlyclean): Likewise. - - * toplev.c (rtl_dump, jump_opt_dump, etc): Remove. - (struct dump_file_info, enum dump_file_index, dump_file): New. - (open_dump_file): Take a dump_file_index not a suffix, and a decl - not a string. Clean out file if we havn't yet done so. Do nothing - if the dump isn't enabled. - (close_dump_file): Do nothing if the dump isn't open. Dump - graph data if requested. - (dump_rtl, clean_dump_file): Remove. - (compile_file): Don't clean the dump files. Only finalize .bp dump - if flag_test_coverage or flag_branch_probabilities. Only finalize - .combine dump if optimizing. Iterate over dump_file to finalize the - graph dumps. - (rest_of_compilation): Update for open_dump_file/close_dump_file. - Convert all uses of dump_rtl. - (decode_d_option): Iterate over dump_file to implement 'a' and to - locate pass-specific dumps. - -2000-04-01 Neil Booth <NeilB@earthling.net> - - * cppexp.c: Redefine priority constants. - (_cpp_parse_expr): Replace left and right priority scheme with - single priority logic. Move LOGICAL to same place as COMPARE. - Remove bogus check for multiple unary +/- operators. - -2000-04-01 Neil Booth <NeilB@earthling.net> - - * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed - within the switch statement. Binary operations break out of - the switch naturally. '(' tokens handled by forcing - immediate shift. ')' handled by forcing immediate reduce to - the previous '('. New error messages. - -2000-03-31 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low - part', it's already in use. Use %K instead. Add a return at the - end of what is now %K. - * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. - -Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * builtins.c (expand_builtin_apply): Pass proper parameters to - allocate_dynamic_stack_space. - * calls.c (emit_call_1): Do not adjust stack pointer for SIB, - update stack_pointer_delta; do not update arg_size_so_far. - (compute_argument_block_size): Use stack_delta instead of - stack_pointer_pending and arg_size_so_far. - (expand_call): Add sanity checking for stack_pointer_delta; - save and restore stack_pointer_delta for SIB, use - stack_pointer_delta for alignment; do not update arg_space_so_far. - (emit_library_call_value): Use stack_pointer_delta for alignment. - (store_one_arg): Do not update arg_space_so_far. - * explow.c (adjust_stack, anti_adjust_stack): Update - stack_pointer_delta. - (allocate_dynamic_stack_space): Add sanity checking for - stack_pointer_delta. - * expr.c (init_expr, clear_pending_stack_adjust): Clear - stack_pointer_delta. - (emit_push_insn): Update stack_pointer_delta. - * function.h (struct expr_status): Add x_stack_pointer_delta; - remove x_arg_space_so_far. - (arg_space_so_far): Remove. - (stack_pointer_delta): New macro. - -2000-03-31 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h: Merge struct cpp_options into struct cpp_reader. - Reorder struct cpp_options and struct cpp_reader for better - packing. Replace CPP_OPTIONS macro with CPP_OPTION which - takes two args. Change all 'char' flags to 'unsigned char'. - Move show_column flag into struct cpp_options. Don't - prototype cpp_options_init. - * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, - cppinit.c, cpplex.c, cpplib.c: - Replace CPP_OPTIONS (pfile)->whatever with - CPP_OPTION (pfile, whatever), and likewise for - opts = CPP_OPTIONS (pfile); ... opts->whatever; - - * cppinit.c (merge_include_chains): Take a cpp_reader *. - Extract CPP_OPTION (pfile, pending) and work with that - directly. - (cpp_options_init): Delete. - (cpp_reader_init): Turn on on-by-default options here. - Allocate the pending structure here. - (cl_options, enum opt_code): Define these from the same table, - kept in a large macro. Add -fshow-column and -fno-show-column - options. - - * cpperror.c (v_message): If show_column is off, don't print - the column number. - - * cppmain.c: Update for new interface. - * fix-header.c: Likewise. - -2000-03-30 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new - definition. - * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that - are passed to any invocation of AR_FOR_TARGET. - (AR_CREATE_FOR_TARGET): New macro. - (AR_EXTRACT_FOR_TARGET): New macro. - (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET, - AR_EXTRACT_FOR_TARGET. - (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET - in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and - `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and - AR_EXTRACT_FOR_TARGET to sub-makes. - -2000-03-31 Neil Booth <NeilB@earthling.net> - - * cppexp.c: Delete SKIP_OPERAND. Correct priority - PAREN_INNER_PRIO. - (_cpp_parse_expr): Check for multiple unary +/- operators. - Correct priorities of ':' and '?'. Treat ')' as having a - value. Ensure conditional expression is not void. - -2000-03-31 Mark Mitchell <mark@codesourcery.com> - - * alias.c (canon_rtx): Make it global. - (rtx_equal_for_memref_p): CONST_INT equality is now pointer - equality. - * cse.c (struct table_elt): Add canon_exp. - (insert): Clear it. - (invalidate): Canonicalize expressions only once. - * rtl.h (canon_rtx): Declare. - -2000-03-30 Mark Mitchell <mark@codesourcery.com> - - * Makefile.in (emit-rtl.o): Depend on HASHTAB_H. - * alias.c (reg_known_value): Add comments. - (init_alias_analysis): Likewise. - * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same - address. - (cse_basic_block): Fix typo in comment. - * emit-rtl.c: Include hashtab.h. - (const_int_htab): New variable. - (const_int_htab_hash): New function. - (const_int_htab_eq): Likewise. - (rtx_htab_mark_1): Likewise. - (rtx_htab_mark): Likewise. - (gen_rtx_CONST_INT): Cache all CONST_INTs. - (unshare_all_rtx): Fix formatting. - (init_emit_once): Initialize const_int_htab. - * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same - address. - * rtl.texi: Document the fact that all CONST_INTs with the same - value are shared. - -2000-03-30 Richard Henderson <rth@cygnus.com> - - * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits. - -2000-03-30 Zack Weinberg <zack@wolery.cumb.org> - - * configure.in: Comment out --enable-c-cpplib stanza. - * configure: Regenerate. - -Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (store_constructor): Properly compute displacement and - alignment when offset is variable. - - * expmed.c (store_bit_field, store_fixed_bit_field): Fix more - cases of alignment in bytes. - -Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com) - - * c-parse.in (cast_expr): Move change from March 21 into c-parse.in - since it is used to generate c-parse.y. - * objc-parse.c, objc-parse.y: Regenerated. - - * function.c (expand_function_end): Pass alignment argument to - emit_block_move in bits, not bytes. - -Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (move_by_pieces_ninsns): Fix one more missing align - correction. - - * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits. - - * calls.c (expand_call): Pass bit alignment to mark_reg_pointer. - * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * stmt.c (expand_decl): Likewise. - (copy_rtx_and_substitute): Likewise. - * expr.c (expand_expr, expand_expr_unaligned): Likewise. - (clear_by_pieces): Fix error in last change. - * emit-rtl.c (init_emit): Set known registers alignment in bits. - * function.h (regno_pointer_align): Now unsigned. - * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN - is in bits. - * config/i386/i386.c (aligned_operand): Likewise. - * config/sparc/sparc.c (mem_min_alignment): Likewise. - * config/alpha/alpha.c (aligned_memory_operand): Likewise. - (unaligned_memory_operand): Likewise. - (alpha_expand_block_move, alpha_expand_block_clear): Likewise. - Also make alignments and sizes unsigned and some whitespace cleanup. - (alpha_va_start): Do nothing if VALIST's type is error_mark_node. - - * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst. - (expand_builtin_apply): Pass alignment to emit_block_move in bits. - (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. - (expand_builtin_memset): Likewise, but to clear_storage. - * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces. - (restore_fixed_argument_area): Likewise. - (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field. - (load_register_parameters): Likewise, to emit_group_load. - (expand_call): Likewise, to emit_group_store and emit_block_move. - (emit_library_call_value_1): Likewise, to emit_block_move. - (store_one_arg): Likewise, and to emit_push_insn. - * expmed.c (extract_bit_field): Alignment is in bits, not bytes. - (extract_fixed_bit_field, extract_split_bit_field): Likewise. - * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise. - (emit_block_move, emit_group_load, emit_group_store): Likewise. - (clear_by_pieces, clear_storage, emit_push_insn): Likewise. - (expand_assigment, store_expr, store_constructor_field): Likewise. - (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise. - (store_constructor, store_field, get_inner_reference): Likewise. - Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT. - (expand_expr, case COMPONENT_REF): Likewise. - (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes - and positions; reindent code. - * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned. - * function.c (purge_addressof_1): Pass bit align to store_bit_field. - (assign_parms): Likewise to emit_group_store. - * optabs.c (prepare_cmp_insn): Alignment is in bits. - (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned. - * stmt.c (expand_value_return): Pass align in bits to emit_group_load. - (expand_return): Likewise to {extract,store}_bit_field. - * stor-layout.c (get_mode_alignment): Minor cleanup. - * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits. - * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise. - -2000-03-29 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h: Undo effects of previous delta: - (ASM_SPEC): Do not define. - (SUBTARGET_EXTRA_ASM_SPEC): Do not define. - - * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix - typo. - -2000-03-29 Zack Weinberg <zack@wolery.cumb.org> - - * cppinit.c (cpp_start_read): Call initialize_dependency_output - only after reading in the primary source file. - -2000-03-29 Geoff Keating <geoffk@cygnus.com> - - * c-common.c (c_common_nodes_and_builtins): The first parameter to - __builtin_va_start and __builtin_va_copy is now either a 'va_list' - or a reference to a va_list. - * builtins.c (stabilize_va_list): Simplify now we don't have to - work around C array address decay. - * c-typeck.c (convert_for_assignment): Handle assignment to - a reference parameter by taking the address of the RHS. - * ginclude/stdarg.h (va_start): Don't take address of first parameter. - (va_copy): Likewise. - (__va_copy): Likewise. - * ginclude/varargs.h (va_start): Likewise. - (__va_copy): Likewise. - -Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com) - - * i386/djgpp.h: Remove extraneous "+". - - * stmt.c (stmt_loop_nest_empty): Fix thinko in last change. - - * calls.c (expand_call): Fix typo in last change. - -2000-03-29 Jason Merrill <jason@casey.cygnus.com> - - * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't - been expanded. - -Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (bit_from_pos, byte_from_pos): New functions. - (pos_from_byte, pos_from_bit, normalize_offset): Likewise. - (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them. - * tree.c (bit_position, byte_position): Likewise. - * tree.h: Declare new functions. - -2000-03-29 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Minor formatting changes/ - * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not - already defined. - (ASM_SPEC): Define if not already defined. - -2000-03-29 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (cpp_read_file): Don't pass zero-length string to - _cpp_calc_hash. - -2000-03-29 Jakub Jelinek <jakub@redhat.com> - - * dwarf2out.c (gen_enumeration_type_die): If enum has a negative - value, don't output it as unsigned. - -Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) - - * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. - -2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c (c_common_nodes_and_builtins): Don't special case - cplus_mode when declaring builtin bzero/bcmp, always avoid - prototype arguments. - -2000-03-29 Bruce Korb <bkorb@gnu.org> - - * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" - to a non-file - -Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz> - - Convert ACCUMULATE_OUTGOING_ARGS to an expression. - * calls.c (PUSH_ARGS_REVERSED) Change to expression. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. - (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. - (save_fixed_argument_area, restore_fixed_argument_area): - conditionize by #ifdef REG_PARM_STACK_SPACE only. - (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS - to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. - (precompute_register_parameters): Avoid #ifdefs on - ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. - (stire_one_args): Likewise. - (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. - (emit_library_call_value_1): Likewise. - (compute_argument_block_size): Align to STACK_BOUNDARY only for - ACCUMULATE_OUTGOING_ARGS. - * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default - value. - (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. - (use_crosses_set_p): Likewise. - * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to - #define ACCUMULATE_OUTGOING_ARGS 1. - * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS - frames. - * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New - constants. - (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. - (TARGET_SWITCHES): Add push-args, no-push-args, - accumulate-outgoing-args and no-accumulate-outgoing-args. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. - * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. - (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS - and PUSH_ROUNDING. - (emit_push_insn): Likewise. - * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. - (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. - * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. - (STACK_DYNAMIC_OFFSET): Define correctly for both - ACCUMULATE_OUTGOING_ARGS and normal mode. - * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. - * tm.texi (PUSH_ARGS): Document. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. - -Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * flags.h (flag_optimize_sibling_calls): Declare. - * calls.c (expand_call): Fail sibcall when - !flag_optimize_sibling_calls - * invoke.texi (flag_optimize_sibling_calls): Document. - * toplev.c (flag_optimize_sibling_calls): New global variable. - (f_options): Add flag_optimize_sibling_calls. - (rest_of_compilation): Conditionize - optimize_sibling_and_tail_recursive_calls by - flag_optimize_sibling_calls. - (main): Set flag_optimize_sibling_calls for -O2. - * stmt.c (expand_return): Conditionize tail recursion by - flag_optimize_sibling_calls. - -2000-03-29 Richard Henderson <rth@cygnus.com> - - * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. - (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. - -2000-03-29 Nathan Sidwell <nathan@codesourcery.com> - - * except.c (add_eh_table_entry): Mark type_info's as referenced. - -2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi - is given. - * config/rs6000/aix43.h (CPP_SPEC): Likewise. - * config/rs6000/rs6000.h (CPP_SPEC): Moved to... - * config/rs6000/aix.h: then modified likewise. - -2000-03-28 Richard Henderson <rth@cygnus.com> - - * rtl.h: Redistribute enum reg_note documentation. - Kill trailing whitespace. - * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. - Kill trailing whitespace. - -2000-03-28 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (hash_IHASH): Just return i->hash. - (cpp_included): Set dummy.hash using _cpp_calc_hash. Use - htab_find_with_hash. - (cpp_read_file): Likewise. - (find_include_file): Likewise. Properly initialize - ih->nshort. Share ih->name and ih->nshort if possible. - * cpphash.c (_cpp_calc_hash): New function. - (hash_HASHNODE): Just return h->hash. - (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use - htab_find_with_hash. - * cpphash.h: Prototype _cpp_calc_hash. - * cppinit.c (initialize_builtins): Provide a valid hash - to _cpp_make_hashnode, using _cpp_calc_hash. - - * cpphash.c (collect_expansion): # is not a special character - in object-like macros. In -traditional mode, /**/ is not - token paste at the beginning or end of the line. - * cpplib.c (do_include, do_import, do_include_next): If - parse_include fails, return immediately. - -2000-03-28 Jason Merrill <jason@casey.cygnus.com> - - * config/arm/arm.md (return peepholes): Update to reflect the new - call insn patterns. - * config/arm/arm.c (arm_volatile_func): Also check - current_function_nothrow. - (output_return_instruction, output_func_prologue): Use it. - (arm_output_epilogue, arm_expand_prologue): Likewise. - -2000-03-27 Tom Tromey <tromey@cygnus.com> - - * gcc.c (handle_braces): In {x*...} case, break out of loop if - switch is found. - -Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (store_constructor): SIZE now signed. - For EXPR_SIZE, don't evaluate size; just needed if constant. - * fold-const.c (fold): Fix a number of cases when folded tree is - wrong type. - * function.c (flush_addressof): Reenable. - * tree.h (flush_addressof): Likewise. - * toplev.c (independent_decode_option): Look at strings_processed. - * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. - -Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz> - - * sibcall.c (indentify_call_return_value): Find last call in the chain; - Allow stack adjustment after function call. - - * regmove.c (struct csa_memlist): Make mem field rtx *. - (record_one_stack_ref): Accept rtx * instead of rtx as parameter. - (try_apply_stack_adjustment): Replace whole MEM rtx. - (combine_stack_adjustments_for_block): Update calls - to record_one_stack_ref. - -2000-03-28 Neil Booth <NeilB@earthling.net> - - * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with - '\\' rather than a null character, so nulls are not special. Fix - "\\\n" handling in end-of-buffer conditions. Use trigraph map to - speed trigraph conversion. - (_cpp_init_input_buffer): Initialize trigraph map. - -2000-03-27 Alan Modra <alan@linuxcare.com.au> - - * config/i386/i386.c (output_387_binary_op): Correct intel - mode assembly output, and add spaces after commas in AT&T - output. Correct Unixware assembler comment. Document input - constraints. Comment fp operations. Reduce profligate buffer - size. Remove extraneous abort. Localize temp var. - (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. - (output_fix_trunc): Add spaces after commas in assembly output. - -2000-03-27 Richard Henderson <rth@cygnus.com> - - * i386-protos.h (ix86_match_ccmode): Declare. - * i386.c (ix86_match_ccmode): New. - (ix86_expand_fp_compare): Update for pattern renames. - (ix86_expand_strlensi_unroll_1): Likewise. - * i386.h (EXTRA_CC_MODES): Add CCZ. - (SELECT_CC_MODE): Use it for EQ/NE zero. - * i386.md (cmpsi_ccz_1): New. - (cmpqi_ccz_1): New. - (*testsi_ccz_1): New. - (testqi_ccz_1): New. - (cmpsi_ccno_1): Rename from cmpsi_0. - (testsi_ccno_1): Rename from testsi_1. - (testqi_ccno_1): Rename from testqi_1. - (*testqi_ext_ccz_0): Rename from testqi_ext_0. - (testqi_ext_ccno_0): Rename from *testqi_ext_1. - (*cmphi_0): Use ix86_match_ccmode. - (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. - (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. - (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. - (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. - (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. - (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. - (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. - (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. - (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. - (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. - (appropriate peepholes): Likewise. - (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. - (*subsi_3, *subhi_3, *subqi_3): Remove. - (*negdi2_1+1 splitter): Use CCZ for neg patterns. - (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. - (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. - (*neghi2_cmpz, *negqi2_cmpz): Similarly. - (x86_shift_adj_1): Use CCZ. - (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. - -2000-03-27 Stan Cox <scox@cygnus.com> - - * resource.h (mark_resource_type): New. - * resource.c (find_dead_or_set_registers, mark_target_live_regs, - find_free_register): Use mark_resource_type. - (mark_set_resources): Change include_delayed_effects - to mark_resource_type. - * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, - redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): - Use mark_resource_type. - -2000-03-27 Richard Henderson <rth@cygnus.com> - - * i386.md (call_pop_0, call_value_pop_0): New. - (call_pop_1): Remove constraint from unused arg. Support sibcalls. - (call_value_pop_1): Likewise. - (call_0, call_value_0): New. - (call_1, call_value_1): Remove constraint from unused arg. - -2000-03-27 Nick Clifton <nickc@cygnus.com> - - * invoke.texi (Spec Files): Document new spec % command created by - Tom Tromey's recent patch. - -2000-03-27 Jakub Jelinek <jakub@redhat.com> - - * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD - if not defined. - -Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_assignment): Fix typo in last change. - - * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. - -Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-convert.c (convert): Return if output or input type is ERROR_MARK. - * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI - and DECL_INLINE if FUNCTION_DECL. - (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. - (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. - Use DECL_WEAK, not DECL_RESULT, to flag for already seen. - (combine_parm_decls): Likewise. - * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. - * print-tree.c (print_node): Likewise. - Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and - DECL_TRANSPARENT_UNION on proper decl types. - Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. - * stor-layout.c (layout_decl): Only check DECL_PACKED and - DECL_BIT_FIELD of FIELD_DECL. - * tree.h (DECL_RESULT_FLD): New macro. - - * expr.c (expand_assignment): Add code to handle variable-sized - BLKmode case. - -2000-03-26 Richard Henderson <rth@cygnus.com> - - * calls.c (expand_call): Pass parms not original exp to - optimize_tail_recursion. Mind return value instead of looking - for a barrier. - * stmt.c (optimize_tail_recursion): Take parameter list, not entire - call_expr. Move checks for call_expr and current_function_decl ... - (expand_return): ... here. - -2000-03-26 Tom Tromey <tromey@cygnus.com> - - * gcc.c (handle_braces): Recognize `%{<S}' construct. - (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New - defines. - (process_command): Use them. - (check_live_switch): Likewise. - (give_switch): Skip ignored switches. - -2000-03-26 Jan Hubicka <jh@suse.cz> - - * jump.c (jump_optimize_1): Fix typo in elide optimizations - for minimal jump pass test. - -2000-03-26 Mark Mitchell <mark@codesourcery.com> - - * integrate.c (function_cannot_inline_p): Do inline functions that - return `void'. - -Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (layout_type, set_sizetype): early_type_list is - now a list of TREE_LIST entries, not types. - * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. - - * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. - * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and - int_bit_position. - * config/mips/mips.c (function_arg): Likewise; also remove cast - and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. - (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. - * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. - * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. - (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. - (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. - (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. - (struct mips_arg): arg_number, arg_words, fp_arg_words, and - num_adjusts now unsigned. - (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. - * config/sparc/sparc.c (struct function_arg_record_value_parms): - NREGS now unsigned. - (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT - as is BITPOS variable; use host_integerp and int_bit_position. - (function_arg_record_value_2): Likewise. - (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. - Variable REGNO now unsigned. - (function_arg_record_value): NREGS now unsigned. - -2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> - - * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. - -Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Rework fields used to describe positions of bitfields and - modify sizes to be unsigned and use HOST_WIDE_INT. - * alias.c (reg_known_value_size): Now unsigned. - * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. - (really_start_incremental_init): Use bitsize_zero_node. - (push_init_level, pop_init_level, output_init_element): Likewise. - Use bitsize_unit_node and bitsize_one_node. - (output_pending_init_elements, process_init_element): Likewise. - * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. - (make_extraction): Position and length HOST_WIDE_INT and unsigned - HOST_WIDE_INT, respectively. - (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. - (num_sign_bit_copies): Returns unsigned. - BITWIDTH now unsigned; rework arithmetic. - Remove recursive call from arg to MAX. - (combine_instructions, init_reg_last_arrays): NREGS now unsigned. - (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): - REGNO now unsigned. - (set_nonzero_bit_and_sign_copies): NUM now unsigned. - (find_split_point, expand_compound_operation, make_extraction): LEN - now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. - (make_field_assignment): Likewise. - (combine_simplify_rtx): Add cast. - (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. - (force_to_mode): WIDTH now unsigned; add cast. - (if_then_else_cond): SIZE now unsigned. - (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. - (extended_count): Now returns unsigned. - (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. - Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. - (simplify_comparison): MODE_WIDTH now unsigned. - (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. - (mark_used_regs_combine): Likewise; rework arithmetic. - (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. - (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. - (record_promoted_value): REGNO now unsigned. - (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. - (get_last_value): REGNO now unsigned. - (use_crosses_set_p): REGNO and ENDREGNO now unsigned. - (reg_dead_regno, reg_dead_endregno): Now unsigned. - (remove_death): Arg REGNO now unsigned. - (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. - (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO - now unsigned. - * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. - * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. - (struct cse_reg_info): REGNO now unsigned. - (cached_regno): Now unsigned. - (REGNO_QTY_VALID_P): Add cast. - (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. - (remove_invalid_regs): Likewise. - (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned - as are variables END and I. - (get_cse_reg_info, insert): Likewise. - (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. - (canon_hash): Likewise. - (insert_regs, lookup_for_remove): REGNO now unsigned. - (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. - New variable RN. - * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. - * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. - * emit-rtl.c (subreg_realpart_p): Add cast. - (operand_subword): Arg I is now unsigned as is var PARTWORDS. - (operand_subword_force): Arg I is now unsigned. - * except.c (eh_regs): Variable I is now unsigned. - * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. - * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; - length is unsigned HOST_WIDE_INT; likewise for internal variables. - (store_split_bit_field, extract_fixed_bit_field): Likewise. - (extract_split_bit_field, store_bit_field, extract_bit_field): - Likewise. - * expr.c (store_constructor_fields, store_constructor, store_field): - Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. - (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. - (do_jump): Likewise. - (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): - MAX_SIZE is now unsigned. - (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. - (emit_group_store): Likewise. - (emit_move_insn): I now unsigned. - (store_constructor): Use host_integerp, tree_low_cst, and - bitsize_unit_node. - (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. - Rework all calculations to use trees and new fields. - * expr.h (promoted_input_arg): Regno now unsigned. - (store_bit_field, extract_bit_field): Adjust types of pos and size. - (mark_seen_cases): Arg is HOST_WIDE_INT. - * flow.c (verify_wide_reg_1): REGNO now unsigned. - * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; - precisions and alignments are unsigned. - (optimize_bit_field_compare, fold_truthop): Likewise. - (int_const_binop): Adjust threshold for size_int_type_wide call. - (fold_convert): Likewise. - (size_int_type_wide): Make table larger and fix thinko that only - had half of table used. - (all_ones_mask_p, fold): Precisions are unsigned. - * function.c (put_reg_info_stack): REGNO is unsigned. - (instantiate_decl): Size is HOST_WIDE_INT. - (instantiate_virtual_regs): I is unsigned. - (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. - (promoted_input_arg): REGNO is unsigned. - * function.h (struct function): x_max_parm_reg is now unsigned. - * gcse.c (max_gcse_regno): Now unsigned. - (struct null_pointer_info): min_reg and max_reg now unsigned. - (lookup_set, next_set): REGNO arg now unsigned. - (compute_hash_table): REGNO and I now unsigned. - (handle_avail_expr): regnum_for_replacing now unsigned. - (cprop_insn): REGNO now unsigned. - (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. - * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. - * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. - * hard-reg-set.h (reg_class_size): Now unsigned. - * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. - * jump.c (mark_modified_reg): I now unsigned; add cast. - (rtx_equal_for_thread_p): Add cast. - * loop.c (max_reg_before_loop): Now unsigned. - (struct_movable): REGNO now unsigned. - (try_copy_prop): REGNO arg unsigned. - (regs_match_p): XN and YN now unsigned. - (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. - (strength_reduce): Likewise; NREGS also unsigned. - (first_increment_giv, last_increment_giv unsigned): Now unsigned. - * loop.h (struct iv_class): REGNO now unsigned. - (max_reg_before_loop, first_increment_giv, last_increment_giv): - Now unsigned. - * machmode.h (mode_size, mode_unit_size): Now unsigned. - (mode_for_size, smallest_mode_for_size): Pass size as unsigned. - * optabs.c (expand_binop): I and NWORDS now unsigned. - (expand_unop): I now unsigned. - * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do - print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. - * real.c (significand_size): Now returns unsigned. - * real.h (significand_size): Likewise. - * regclass.c (reg_class_size): Now unsigned. - (choose_hard_reg_mode): Both operands now unsigned. - (record_reg_classes): REGNO and NR now unsigned. - (reg_scan): NREGS now unsigned. - (reg_scan_update): old_max_regno now unsigned. - (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. - * reload.c (find_valid_class): BEST_SIZE now unsigned. - (find_dummy_reload): REGNO, NWORDS, and I now unsigned. - (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. - Likewise for variable R. - (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, - as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. - (find_equiv_reg): Add casts. - (regno_clobbered_p): Arg REGNO now unsigned. - * reload.h (struct reload): NREGS now unsigned. - (refers_to_regno_for_reload_p): Regno args are unsigned. - (regno_clobbered_p): Likewise. - * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. - (compute_use_by_pseudos): REGNO now unsigned. - (find_reg): I and J now unsigned, new variable K, and change loop - variables accordingly; THIS_NREGS now unsigned. - (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. - (spill_hard_reg): REGNO arg now unsigned; add casts. - (forget_old_reloads_1): REGNO, NR, and I now unsigned. - (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. - (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, - END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. - (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. - (choose_reload_regs): MAX_GROUP_SIZE now unsigned. - (emit_reload_insns): REGNO now unsigned. - (reload_cse_move2add): Add cast. - (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO - and rework loop. - * resource.c (mark_referenced_resources, mark_set_resources): New - variable R; REGNO and LAST_REGNO now unsigned. - (mark_target_live_regs): J and REGNO now unsigned. - * rtl.c (mode_size, mode_unit_size): Now unsigned. - * rtl.h (union rtunion_def): New field rtuint. - (XCUINT): New macro. - (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. - (operand_subword, operand_subword_force): Word number is unsigned. - (choose_hard_reg_mode): Operands are unsigned. - (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. - (find_regno_note, find_regno_fusage, replace_regs): Likewise. - (regno_use_in, combine_instructions, remove_death): Likewise. - (reg_scan, reg_scan_update): Likewise. - (extended_count): Return is unsigned. - * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, - INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. - (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. - (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. - (reg_reg_last_1): FIRS and LAST now unsigned. - (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. - (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO - now unsigned. - (find_regno_note, regno_use_in): Arg REGNO now unsigned. - (find_regno_fusage): Likewise; also var REGNOTE now unsigned. - (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. - (replace_regs): Arg NREGS now unsigned. - * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. - * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. - (simplify_binary_operation): Likewise. - (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and - THIS_LAST now unsigned. - (cselib_record_set): Add cast. - * ssa.c (ssa_max_reg_num): Now unsigned. - (rename_block): REGNO now unsigned. - * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; - sizes now unsigned. - (all_cases_count): Just return -1 not -2. - COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. - Rework tests to use trees whenever possible. - Use host_integerp and tree_low_cst. - (mark_seen_cases): COUNT arg now HOST_WIDE_INT; - Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. - (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. - * stor-layout.c (mode_for_size): SIZE arg now unsigned. - (smallest_mode_for_size): Likewise. - (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. - KNOWN_ALIGN is now an alignment, so simplify code. - Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. - (start_record_layout): Renamed from new_record_layout_info. - Update to new fields. - (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): - New functions. - (place_union_field): Renamed from layout_union_field. - Update to use new fields in rli. - (place_field): Renamed from layout_field. - Major rewrite to use new fields in rli; pass alignment to layout_decl. - (finalize_record_size): Rework to use new fields in rli and handle - union. - (compute_record_mode): Rework to simplify and to use new DECL fields. - (finalize_type_size): Make rounding more consistent. - (finish_union_layout): Deleted. - (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. - (layout_type, case RECORD_TYPE): Call new function names. - (initialize_sizetypes): Set TYPE_IS_SIZETYPE. - (set_sizetype): Set TYPE_IS_SIZETYPE earlier. - (get_best_mode): UNIT is now unsigned; remove casts. - * tree.c (bit_position): Compute from new fields. - (byte_position, int_byte_position): New functions. - (print_type_hash_statistics): Cast to remove warning. - (build_range_type): Use host_integerp and tree_low_cst to try to hash. - (build_index_type): Likewise; make subtype of sizetype. - (build_index_2_type): Pass sizetype to build_range_type. - (build_common_tree_nodes): Use size_int and bitsize_int to - initialize nodes; add bitsize_{zero,one,unit}_node. - * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. - (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. - (DECL_PACKED, DECL_BIT_FIELD): Likewise. - (DECL_FIELD_BITPOS): Deleted. - (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. - (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. - (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. - (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. - (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. - (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. - (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. - (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. - (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. - (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. - (DECL_ALIGN): Adjust to new field in union. - (DECL_OFFSET_ALIGN): New field. - (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. - (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. - (union tree_decl): Add struct for both aligns. - (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. - (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. - (struct record_layout_info): Rework fields to have offset - alignment and byte and bit position. - (start_record_layout, place_field): Renamed from old names. - (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. - (byte_position, int_byte_position): Likewise. - (get_inner_reference): Change types of position and length. - * unroll.c (unroll_loop): New variable R; use for some loops. - MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. - (calculate_giv_inc): Arg REGNO now unsigned. - (copy_loop_body): REGNO and SRC_REGNO now unsigned. - * varasm.c (assemble_variable): Clean up handling of size using - host_integerp and tree_low_cst. - (decode_addr_const): Use byte, not bit, position. - (output_constructor): bitpos and offsets are HOST_WIDE_INT; - use tree_low_cst and int_bit_position. - * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. - -Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. - (reorder_block_def): New members eff_head and eff_end. - (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. - (verify_insn_chain): New function. - (skip_insns_between_block): Add code to skip deleted insns. - Check for note before using. - (chain_reorder_blocks): Replace calls to skip_insns_between_block - with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. - Check for note before using. - (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. - (fixup_reorder_chain): Restructure, clean up, defect removal. - (reorder_basic_blocks): Remove last_insn and references to it. - Moved insn chain verification code into a new function (see above). - Delete defective code that sets last insn. - Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for - all blocks. - -2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. - -2000-03-24 Richard Henderson <rth@cygnus.com> - - * tree.c (lang_safe_for_unsave): Remove. - (unsafe_for_reeval): Transmute and rename from safe_for_unsave, - allowing for two levels of unsafeness. Remove lang hook. - * tree.h: Update declarations. - * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. - Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. - Always fail sibcalls when there are pending cleanups. - -2000-03-24 Geoff Keating <geoffk@cygnus.com> - - * flow.c (propagate_block): When we delete an ADDR_VEC, - also delete the BARRIER following it if there is one. - -2000-03-24 Richard Henderson <rth@cygnus.com> - - * builtins.c (expand_builtin_bzero): Convert `length' argument - to sizetype. - -2000-03-24 Jakub Jelinek <jakub@redhat.com> - - * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for - comparison if regno's are equal. - * calls.c (initialize_argument_informat): Add ecf_flags argument. - Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. - (expand_call): Update caller. - Avoid making a sibling call if argument size of the callee is larger - than argument size of the caller. - Call hard_function_value with outgoing set if in sibcall pass. - Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. - - * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): - Change LEAF_REGISTERS from an array initializer to actual array - identifier. Move static global variable into the function. - (leaf_function_p): Allow SIBLING_CALL_P calls even outside of - sequences for leaf functions. - * global.c (global_alloc): Likewise. - * tm.texi (LEAF_REGISTERS): Update documentation. - - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly - TARGET_FLAT leaf disabling hack. - (LEAF_REGISTERS): Changed from an array initializer to actual array - identifier to avoid duplication and remove the above hack. - (FUNCTION_OK_FOR_SIBCALL): Define. - * config/sparc/sparc.md (sibcall): New attr type. Use it almost - always like call attribute. - (eligible_for_sibcall_delay): New attribute. - (sibcall): New delay type. - (sibcall, sibcall_value, sibcall_epilogue): New expands. - (sibcall_symbolic_sp32, sibcall_symbolic_sp64, - sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. - * config/sparc/sparc.c (sparc_leaf_regs): New array. - (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): - New functions. - (output_function_epilogue): Move part of the code into - output_restore_regs. - (ultra_code_from_mask, ultrasparc_sched_reorder): Handle - TYPE_SIBCALL. - * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New - prototypes. - - * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change - until infrastructure is finished. - -Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. - (save_parm_insns): Not here. - -2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * builtins.c (expand_builtin_bzero): New function. - (expand_builtin): Handle bzero. - - * builtins.def: Add BUILT_IN_BZERO. - - * c-common.c (c_common_nodes_and_builtins): Provide builtin - prototype & function for bzero. - -2000-03-23 Michael Meissner <meissner@redhat.com> - - * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 - change adding TARGET_FP to the TF floating point insns, except for - trunctfsf2, which generates direct calls to truncdfsf2. - -2000-03-23 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, - try to protect against middle-end changes that break binary - compatibility. - (DWARF_FRAME_REGISTERS): New definition, likewise for backend. - -2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. - -Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * calls.c (expand_call): If TARGET is passed by reference and - is readonly, write a CLOBBER. - -2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * builtins.c (expand_builtin): Handle bcmp. - - * builtins.def: Add BUILT_IN_BCMP. - - * c-common.c (c_common_nodes_and_builtins): Provide builtin - prototype & function for bcmp. - -Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... - (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. - * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. - -Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com> - - * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') - alternative when using -fp64 -gp32. - -2000-03-22 Jason Merrill <jason@casey.cygnus.com> - - * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. - * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. - * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. - - * frame.h (frame_state): Revert last change. - * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. - * libgcc2.c (throw_helper): Revert last change. - -2000-03-22 Richard Henderson <rth@cygnus.com> - - * stmt.c (expand_asm_operands): Don't promote the temporary. - -2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - - * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. - * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, - c_get_alias_set): Likewise. - * c-decl.c (duplicate_decls): Likewise. - * c-typeck.c (default_conversion,build_unary_op): Likewise. - * calls.c (initialize_argument_information): Likewise. - * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): - Likewise. - * dwarfout.c (decl_class_context,output_type): Likewise. - * expr.c (get_inner_reference): Likewise. - * fold-const.c (simple_operand_p,fold): Likewise. - * function.c (aggregate_value_p): Likewise. - * stmt.c (expand_asm_operands): Likewise. - * varasm.c (named_section): Likewise. - -2000-03-22 Jason Merrill <jason@casey.cygnus.com> - - Implement dwarf2 exception handling for the ARM. - * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. - (DWARF_FRAME_RETURN_COLUMN): Define. - * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach - REG_FRAME_RELATED_EXPR note. - (emit_sfm): Likewise. - (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. - * dwarf2out.c (reg_save): Handle saving a register to itself. - (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. - * except.c (eh_regs): Don't use the static chain reg if it's - callee-saved. - * frame.h (frame_state): Add cfa_saved field. - * frame.c (execute_cfa_insn): Set it. - * libgcc2.c (throw_helper): Don't adjust sp if it's restored in - the epilogue. - * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. - Now takes a parm. - (instantiate_virtual_regs): Adjust. - * tm.texi: Adjust. - * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. - * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. - * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. - - * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. - (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. - -2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * builtins.def: New file. - - * Makefile.in (TREE_H): Depend on builtins.def. - - * builtins.c (built_in_names): Use builtins.def. - - * tree.h (built_in_function): Likewise. - -2000-03-22 Mark Mitchell <mark@codesourcery.com> - - * tree.c (size_in_bytes): Return size_zero_node, not - integer_zero_node. - -2000-03-22 Geoff Keating <geoffk@cygnus.com> - - * config/fp-bit.c (pack_d): Correct the case when a denormal - is rounded up and stops being denormal. - -2000-03-21 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (function_arg): Check for void_type_node - before using MUST_PASS_IN_STACK. - -2000-03-21 Stephane Carrez <stcarrez@worldnet.fr> - - * regmove.c (combine_stack_adjustments_for_block): Check that - the stack pointer is a valid memory address. - -Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c: re-install Mar 16 emit_library_call merge. - -2000-03-21 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (mem_min_alignment): If not optimizing, - we cannot be sure that if reload_completed base register will - be properly aligned. - -2000-03-21 Richard Henderson <rth@cygnus.com> - - * flow.c (delete_block): Fix typo last change. - -2000-03-21 Mark Mitchell <mark@codesourcery.com> - - * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, - not COMPLETE_TYPE_P, to check the type of the expression. - -2000-03-21 Michael Meissner <meissner@redhat.com> - - * config/alpha/alpha.md (floating point insns): Add TARGET_FP to - all floating point insns that just tested the macro - TARGET_HAS_XFLOATING_LIBS. - (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is - used to only use the gprs. - -2000-03-21 Nathan Sidwell <nathan@codesourcery.com> - - * tree.h (COMPLETE_TYPE_P): New macro. - (COMPLETE_OR_VOID_TYPE_P): New macro. - (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. - * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. - * c-aux-info.c (gen_type): Use them. - * c-common.c (c_expand_expr_stmt): Likewise. - * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, - grokdeclarator, grokparms, finish_struct, start_function, - store_parm_decls, combine_parm_decls): Likewise. - * c-parse.y (cast_expr): Likewise. - * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, - c_size_in_bytes, c_alignof, build_component_ref, - build_indirect_ref, build_array_ref, convert_arguments, - build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. - * calls.c (initialize_argument_information): Likewise. - * convert.c (convert_to_integer): Likewise. - * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. - * dwarfout.c (location_or_const_value_attribute, - output_enumeration_type_die, output_structure_type_die, - output_union_type_die, output_type): Likewise. - * expr.c (safe_from_p, expand_expr): Likewise. - * function.c (assign_parms): Likewise. - * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. - * tree.c (build_array_type, build_function_type, - build_method_type, build_offset_type, build_complex_type): Likewise. - * c-parse.c, c-parse.h: Regenerated. - -2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/rtems.h: Include config/rtems.h. - -Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru> - - * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if - decl is a FUNCTION_DECL - -Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf - function uses output registers. Don't save RP for leaf functions. - Do save RP even if no epilogue. - * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. - (CALL_USED_REGISTERS): Unmark in registers. - (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, - to near the middle. - -2000-03-20 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.md (bunordered): New expander. - (bordered): New expander. - (buneq): New expander. - (bunge): New expander. - (bungt): New expander. - (bunle): New expander. - (bunlt): New expander. - (bltgt): New expander. - - * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. - (ccr_bit_negated_p): New function. - (print_operand): For %C, generate appropriate cror for UNEQ, - UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. - -2000-03-20 Andreas Jaeger <aj@suse.de> - - * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" - warning. - - * tree.h (safe_for_unsave): Prototype. - -2000-03-20 Richard Henderson <rth@cygnus.com> - - * regmove.c (stack_memref_p): Fix typo, reorg for readability. - (combine_stack_adjustments_for_block): Don't allow sp references - in the side of a set we're not fixing up. - * toplev.c (rest_of_compilation): Run combine_stack_adjustments - after life_analysis. - -2000-03-20 Richard Henderson <rth@cygnus.com> - - * calls.c (expand_call): Don't bother generating tail call - sequences if there are pending cleanups. Use - expand_start_target_temps/expand_end_target_temps to elide - cleanups created during sibcall expansion. - -2000-03-20 Geoff Keating <geoffk@cygnus.com> - - * configure.in: Set $IFS to a value if it doesn't already have one - in the --enable-checking handling. - * configure: Regenerate. - -2000-03-20 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * c-parse.in (SAVE_WARN_FLAGS): Use size_int. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerated. - -Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz> - - * jump.c (delete_noop_moves): Remove code attempting to - combine stack adjustments. - -2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. - * except.c (emit_cleanup_handler): Use them. - (expand_end_all_catch): Likewise. - * function.c (fixup_var_refs): Likewise. - (expand_function_end): Clear catch_clauses_last. - * rtl.h (push_to_full_sequence, end_full_sequence): Declare. - * except.h (struct eh_status): New field x_catch_clauses_last. - (catch_clauses_last): New define. - - * Makefile.in (tree.o): Depend on HASHTAB_H. - * tree.c: Include hashtab.h. - (struct type_hash): Remove next field. - (TYPE_HASH_SIZE): Remove. - (TYPE_HASH_INITIAL_SIZE): New define. - (type_hash_table): Change type to htab_t. - (type_hash_eq, type_hash_hash, print_type_hash_statistics, - mark_hash_entry): New functions. - (init_obstacks): Allocate type hash. - (type_hash_lookup): Use htab functions. - (type_hash_add, mark_type_hash): Likewise. - (dump_tree_statistics): Call print_type_hash_statistics. - -2000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * rs6000/t-aix41: New file. - - * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it. - -Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com> - - * tm.texi (Driver): Fix typos and tweak entry for - INCLUDE_DEFAULTS. - Move misplaced STRUCT_FORCE_BLK entry ... - (Storage Layout): ... to here. - (Run-time Target): Recommend having TARGET_MASK_... helper macros. - -2000-03-19 Richard Henderson <rth@cygnus.com> - - * flow.c (delete_block): Delete the addr_vec along with the block. - (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that - reference labels. - - * fold-const.c (extract_muldiv): Apply type check for defined - overflow to multiply as well as divide. - - * stor-layout.c (layout_decl): Don't abort on any zero sized decl. - -2000-03-18 Mark Mitchell <mark@codesourcery.com> - - * emit-rtl.c (remove_unncessary_notes): Check that all - NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an - associated NOTE_BLOCK. - * function.h (identify_blocks): Update comments. - (reorder_blocks): Declare. - * function.c (identify_blocks): Don't take paramters. - (reorder_blocks): Don't take parameters. - * loop.h (find_loop_tree_blocks): Remove. - (unroll_block_trees): Likewise. - * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use - reorder_blocks instead of unroll_block_trees.h - * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise. - * stmt.c (find_loop_tree_blocks): Remove. - (unroll_block_trees): Likewise. - * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks - in whole-function mode. - * tree.h (reorder_blocks): Remove declaration. - - * expr.c: Include intl.h. - * Makefile.in (expr.o): Depend on intl.h. - -2000-03-18 Richard Henderson <rth@cygnus.com> - - * expr.c (emit_move_insn_1): Clarify cannot_inline message. - -2000-03-18 Mark Mitchell <mark@codesourcery.com> - - * tree.h (tree_index): Remove enumerals for integer types. - (integer_type_kind): New type. - (integer_types): New variable. - (char_type_node): Adjust. - (signed_char_type_node): Likewise. - (unsigned_char_type_node): Likewise. - (short_integer_type_node): Likewise. - (short_unsigned_type_node): Likewise. - (integer_type_node): Likewise. - (unsigned_type_node): Likewise. - (long_integer_type_node): Likewise. - (long_unsigned_type_node): Likewise. - (long_long_integer_type_node): Likewise. - (long_long_unsigned_type_node): Likewise. - * tree.c (integer_types): New variable. - (init_obstacks): Register it as a root. - -Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com> - - * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as - NEXT_INSN. Update last insn in chain. - -2000-03-17 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (dwarf2out_decl): Don't emit anything for types - with TYPE_DECL_SUPPRESS_DEBUG set. - -2000-03-18 Richard Henderson <rth@cygnus.com> - - * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value. - -2000-03-18 Richard Henderson <rth@cygnus.com> - - * i386.c (call_insn_operand): Always allow SYMBOL_REF, - care for HALF_PIC_P. - (expander_call_insn_operand): Remove. - (ix86_expand_epilogue): New arg `emit_return' to control return insn. - * i386.h (PREDICATE_CODES): Update. - * i386.md (all call expanders): Remove predicates, remove special - handling for half-pic. - (*call_1, *call_value_1): Handle SIBLING_CALL_P insns. - (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove. - (sibcall_epilogue): New. - -2000-03-17 Richard Henderson <rth@cygnus.com> - - * rtlanal.c (single_set): Reject if the parallel has anything - except SET or USE or CLOBBER. - -2000-03-17 Jeff Law <law@cygnus.com> - Richard Henderson <rth@cygnus.com> - - * Makefile.in (OBJS): Add sibcall.o. - (sibcall.o): New. - * sibcall.c: New file. - * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default. - (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New. - (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'. - Emit sibcall patterns when requested. Update all callers. - (expand_call): Generate CALL_PLACEHOLDER insns when tail call - elimination seems feasable. - * final.c (leaf_function_p): Sibling calls don't discount being - a leaf function. - * flow.c (HAVE_sibcall_epilogue): Provide default. - (find_basic_blocks_1): Sibling calls don't throw. - (make_edges): Make edge from sibling call to EXIT. - (propagate_block): Don't remove sibcall_epilogue insns. - * function.c (prologue, epilogue): Turn into varrays. Update all uses. - (sibcall_epilogue): New. - (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences. - (identify_blocks_1): Likewise. Break out from ... - (identify_blocks): ... here. - (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ... - (reorder_blocks): ... here. - (init_function_for_compilation): Zap prologue/epilogue as varrays. - (record_insns): Extend a varray instead of mallocing new memory. - (contains): Read a varray not array of ints. - (sibcall_epilogue_contains): New. - (thread_prologue_and_epilogue_insns): Emit and record - sibcall_epilogue patterns. - (init_function_once): Allocate prologue/epilogue varrays. - * genflags.c (gen_insn): Treat sibcall patterns as calls. - * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns. - Broken out from ... - (save_for_inline_nocopy): ... here. - (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. - Broken out from ... - (expand_inline_function): ... here. - (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL. - (subst_constants): Handle 'n' formats. - * jump.c (jump_optimize_minimal): New. - (jump_optimize_1): New arg `minimal'; update callers. Elide most - optimizations if it's set. - * rtl.c (copy_rtx): Do copy jump & call for insns. - * rtl.h (struct rtx_def): Document use of jump and call for insns. - (SIBLING_CALL_P): New. - (sibcall_use_t): New. - * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier. - Invoke optimize_sibling_and_tail_recursive_calls. - * tree.c (lang_safe_for_unsave): New. - (safe_for_unsave): New. - * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare. - - * alpha.h (FUNCTION_OK_FOR_SIBCALL): New. - * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New. - (*sibcall_osf_1, *sibcall_value_osf_1): New. - -2000-03-17 Mark Mitchell <mark@codesourcery.com> - - * objc/objc-act.c (encode_method_prototype): Pass types, not - PARM_DECLs, to int_size_in_bytes. - -Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template. - - * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again. - -Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Clean up usages of TREE_INT_CST_LOW. - * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerated. - * c-tree.h (min_precision): Move declaration to here. - * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. - (build_unary_op, add_pending_init): Use bit_position. - (pending_init_member, process_init_element): Likewise. - (really_start_incremental_init, push_init_level, pop_init_level): - Don't make copies of nodes or modify them in place, use consistent - types when tracking positions, and use tree routines computations. - (set_init_index, output_init_element): Likewise. - (output_pending_init_elements, process_init_element): Likewise. - * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, - tree_low_cst and int_bit_position; also minor cleanup. - (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. - (print_cst_octal): Precision is unsigned. - (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. - * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. - (simple_type_align_in_bits): Result is unsigned int. - Use tree_int_low_cst and host_integerp. - (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. - (field_byte_offset): Result is HOST_WIDE_INT. - Change types of internal variables so alignments are unsigned int, - offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. - Use host_integerp, tree_low_cst, and int_bit_position. - (add_bit_offset_attribute): Likewise. - (add_data_member_location_attribute): Use tree_cst_low. - (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. - (add_bit_size_attribute): Use tree_low_cst. - (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. - * dwarfout.c: Similar changes to dwarf2out.c. - * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. - * genoutput.c (n_occurences): Return -1 for null string. - (strip_whitespace): Accept null string and make into function. - (scan_operands): Reflect above changes. - * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. - (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. - * ssa.c (rename_registers): Add missing cast of arg to bzero. - * tree.c (int_size_in_bytes): Check for too big to represent. - (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. - * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): - New declarations. - (min_precision): Delete from here. - * varasm.c (decode_addr_const): Use host_integerp, bit_position, - and int_bit_position. - * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. - (encode_method_def): Likewise. - (build_ivar_list_initializer): Use int_bit_position. - (generate_shared_structures): Convert size. - (encode_type, encode_complete_bitfield): Use integer_zerop. - (encode_bitfield): Use tree_low_cst and int_bit_position. - -2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (CPP_SPEC): Fix typo. - -2000-03-17 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * call.c (special_function_p): It is only malloc if it returns - Pmode. - -2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. - (C33_FLAG, TARGET_C3X): Add macros. - (TARGET_SWITCHES): Add -m33 option. - * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33. - -2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add. - (PARALLEL_PACK_FLAG): Delete. - (TARGET_SWITCHES): Update. - (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG. - -Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * fold-const.c (fold): Fix a few cases when the returned result - is not of the same type as the input. - -2000-03-16 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time - warning. - -2000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * libgcc2.h: Move prototypes above macros with the same name. - Wrap some function prototypes in the conditional which indicates - whether they are supported, i.e. "BITS_PER_UNIT == 8". - -2000-03-16 Richard Henderson <rth@cygnus.com> - - * calls.c: Revert last two changes. - -2000-03-16 Bernd Schmidt <bernds@cygnus.co.uk> - - * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that - has exponent 0 is a zero. - - * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that - HASH may already be nonzero. Add code/mode into hash value - immediately after repeat label. - (cselib_lookup): Don't leave the hash table in an inconsistent - state before a hash lookup operation. - -Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (all HI and QI mode non-move patterns): Conditionize - by TARGET_[HQ]IMODE_MATH. - * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, - x86_promote_qi_regs): Declare. - (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS, - TARGET_PROMOTE_QI_REGS): New macros. - (PROMOTE_MODE): New macro. - * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, - x86_promote_qi_regs): New global variables. - -Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (emit_library_call_value_1): Break out from ...; handle - VOIDmode function calls too. - (emit_library_call_value): ... here. - (emit_library_call): Implement by calling emit_library_call_value_1. - -Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (expand_call): Do sanity checking on arg_space_so_far. - Update arg_space_so_far on stack adjustments. - (emit_library_call, emit_library_call_value): Likewise; take into - account arg_space_so_far and pending_stack_adjust when calculcating - the boundary. - -Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com> - - * flow.c: Move all basic block reordering code into its own file. - (create_basic_block): Externalize. - * bb-reorder.c: New file. Copy all basic block reordering code from - flow.c to this file. - (reorder_basic_blocks): Fix fencepost error in for-loop. - (reorder_basic_blocks): Remove braces from single statement for-loops. - * basic-block.h: Add declaration for create_basic_block. - * Makefile.in: Add rules for bb-reorder.o. - -2000-03-16 Neil Booth <NeilB@earthling.net> - - * cppinit.c (handle_option): Implement #unassert directive - as -A- command line option. - (print_help): Update. - * cpptexi.c: Update. - -Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * md.texi (Standard Names): Document `jump'. - -2000-03-15 Jason Merrill <jason@casey.cygnus.com> - - * calls.c (emit_call_1): Nothrow functions can still have nonlocal - gotos. - -2000-03-15 Geoff Keating <geoffk@cygnus.com> - - Merge changes from newppc-branch onto trunk. - - 2000-03-15 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (toc_hash_table): Update for new hash table functions. - (toc_hash_function): Likewise. - (toc_hash_eq): Likewise. - (toc_hash_mark_entry): Likewise. - (toc_hash_mark_table): Likewise. - (output_toc): Likewise. - (rs6000_add_gc_roots): Likewise. - - 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'... - (AR_FLAGS_FOR_TARGET): here. New macro. - - 2000-03-05 Clinton Popetz <cpopetz@cygnus.com> - - * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size, - fpmem_operand) Delete. - (xer_operand) New. - (rs6000_reg_names, alt_reg_names): Change fpmem to xer. - (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p. - (rs6000_save_machine_status, rs6000_restore_machine_status, - rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove - references to above variables. - (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P. - * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES, - DEBUG_REGISTER_NAMES): Chagne fpmem to xer. - (FPMEM_REGNO_P, FPMEM_REGNUM): Delete. - (XER_REGNO_P, XER_REGNO): New. - (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size. - (PREDICATE_CODES): Change fpmem_operand to xer_operand. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to - XER_REGNO_P. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, - REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS. - (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS. - - 2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here... - * rs6000.h: from here. - - * rs6000-protos.h (rs6000_select_section): Provide prototype. - (rs6000_select_rtx_section): Likewise. - (rs6000_encode_section_info): Likewise. - (sdata_section): Likewise. - (sdata2_section): Likewise. - (sbss_section): Likewise. - * sysv4.h (rs6000_select_section): Delete prototype. - (rs6000_select_rtx_section): Likewise. - (rs6000_encode_section_info): Likewise. - (sdata_section): Likewise. - (sdata2_section): Likewise. - (sbss_section): Likewise. - (REG_SAVE_AREA): Delete definition duplicated in rs6000.h. - - * sysv4.h: Delete various unnecessary #undef's and put a comment - on the remaining ones. - Change various comments according to coding standard. - - 2000-02-29 Clinton Popetz <cpopetz@cygnus.com> - - * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, - CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define. - (CR0_REGNO_P) Remove. - * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, - setup_incoming_varargs, mtcrf_operation, print_operand, - rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): - Use the above macros. - - 2000-02-24 Clinton Popetz <cpopetz@cygnus.com> - - * config/rs6000/rs6000.md: Added a new alternative for each - pattern that had a 'x' alternative but no 'y' alternative. - Added a new split for each of the above patterns. - - 2000-02-18 Geoff Keating <geoffk@cygnus.com> - - * aix41.h (ASM_CPU_SPEC): Delete. - (CPP_CPU_SPEC): Delete. - - * aix.h (RS6000_OUTPUT_BASENAME): Define. - (ASM_OUTPUT_LABEL): Define. - (ASM_GLOBALIZE_LABEL): Define. - (STRIP_NAME_ENCODING): Define. - * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define. - (STRIP_NAME_ENCODING): Don't define. - (ASM_OUTPUT_LABEL): Don't define. - (ASM_GLOBALIZE_LABEL): Don't define. - * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output - names, and ASM_OUTPUT_LABEL to output labels, rather than - asm_fprintf. - (ASM_OUTPUT_LABEL): Define. - (ASM_OUTPUT_INT): Use assemble_name. - (ASM_OUTPUT_DWARF_ADDR): Use assemble_name. - (STRIP_NAME_ENCODING): Don't undefine first. - (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for - ELF. - (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels - specified with 'asm' even with -fleading-underscore. - * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX. - (output_epilog): Likewise. - (output_toc): Likewise. - * tramp.asm: Handle -fleading-underscore correctly. - - * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and - -mminimal-toc. - (nonlocal_goto_receiver): Delete. - * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete. - - * rs6000.h (ASM_OUTPUT_DEF): Don't define. - (SET_ASM_OP): Define. - * sysv4.h (ASM_OUTPUT_DEF): Don't undefine. - - * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define. - (ASM_LONG): Define. - - * rs6000.c (rs6000_dll_import_ref): Delete, not used. - * rs6000-protos.h (rs6000_dll_import_ref): Delete. - - * rs6000.h: Add 'u' to more constants. - - 2000-02-18 David Edelsohn <edelsohn@gnu.org> - - * rs6000.md (mfcr+shift): Delete PowerPC64 version. - - 2000-02-15 David Edelsohn <edelsohn@gnu.org> - - * rs6000.c (reg_or_u_cint_operand): New function. - (logical_operand): Handle 64-bit hosts. - (logical_u_operand): New function. - (non_logical_cint_operand): Handle 64-bit hosts. - (non_logical_u_cint_operand): New function. - * rs6000.h (DATA_SECTION_ASM_OP): Add tab. - (PREDICATE_CODES): Define new functions. - * rs6000-protos.h: Declare new functions. - * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits. - (movdi_64): Bracket code intended for 64-bit hosts. Create - CONST_DOUBLE for 32-bit values. - (scc insns): Generate DImode compares. - (mfcr insns): Create DImode versions. - (sge matchers): New patterns. - - 2000-02-15 Gabriel Paubert <paubert@iram.es> - - * rs6000.md: Correct instructions length attributes and - constraints on unsigned compare instructions. - (*ne0): Disable for PowerPC64. - - 2000-02-11 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (output_function_profiler): Use .long for a 32-bit - quantity, fix profile1.C test failure under -fPIC. - - * rs6000.c: Add 'u' to many constants to suppress warnings. - (constant_pool_expr_1): Make static. - (rs6000_emit_eh_toc_restore): Remove unused 'r2'. - * rs6000.h: Add 'u' to many constants to suppress warnings. - - * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX - for the start of the TOC, instead of LCTOC..0. - * aix.h (toc_section): Use LCTOC..1 under AIX for the start - of the TOC. - * rs6000.md (load_toc_aix_si): Use LCTOC..1. - (load_toc_aix_di): Use LCTOC..1. - - * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function. - * rs6000.c (rs6000_legitimize_address): New function from - LEGITIMIZE_ADDRESS. Only use create_TOC_reference on - symbols in the constant pool that really are TOC references. - (print_operand_address): For ELF, write TOC offsets under - -fPIC as subtractions in the insn. - (output_toc): For ELF, define symbols in TOC as normal labels, - to match RTL. - (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx. - * rs6000-protos.h (rs6000_legitimize_address): Prototype. - (create_TOC_reference): Prototype only when RTX_CODE is defined. - * rs6000.md (movsi): Only use create_TOC_reference on - symbols in the constant pool that really are TOC references. - - * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define. - * rs6000.c (rs6000_reorg): Delete. - * rs6000-protos.h (rs6000_reorg): Delete. - - 2000-02-09 Geoff Keating <geoffk@cygnus.com> - - * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro. - - * aix.h (SETUP_FRAME_ADDRESSES): Define. - * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable. - [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function. - [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function. - * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore, - rs6000_aix_emit_builtin_unwind_init. - * rs6000.md (eh_epilogue) [TARGET_AIX]: Call - rs6000_emit_eh_toc_restore on AIX. - (return_eh_si): Use r2. - (return_eh_di): Use r2. - - * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH, - since we're breaking binary compatibility anyway. - - 2000-02-09 Clinton Popetz <cpopetz@cygnus.com> - - * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC, - constant_pool_expr_p): Declare them. - (constant_pool_expr_p): Declare it. - * config/rs6000/rs6000.c (toc_label_name): Define. - (rs6000_override_options): Set toc_label_name. - (input_operand): Allow any TOC_RELATIVE_EXPR_P. - (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1, - uses_TOC): New functions. - (print_operand): Delete old '*' case. - (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P, - and strip off rtl for TOC before calling output_addr_const. - (rs6000_emit_load_toc_table): Use toc_label_name. - * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog - the default. - (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete. - (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros. - (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P. - (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs - into explicit TOC_REGISTER offsets. - (TOC_REGISTER): New macro. - * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under - TARGET_TOC to reference TOC_REGISTER. - (load_toc_v4_PIC_1b): Add 4 to offset for toc reload. - * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call - uses_TOC before emitting label references. - - 2000-02-05 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (stack_tie): Fix warning. - - * eabi-ctors.c: Use 'asm' names for the start/end variables, - to handle -fleading-underscore. - * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U. - (USER_LABEL_PREFIX): New macro. - (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L. - (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. - * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and - call-linux can use the same multilibs. - * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv - and call-linux multilibs. Do multilib with -fleading-underscore. - (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change. - (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions - to call-aix. - - * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that - have MASK_SOFT_FLOAT set. - (CPP_FLOAT_DEFAULT_SPEC): New macro. - (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of - CPP_FLOAT_DEFAULT_SPEC. - - * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'. - * rs6000.md: Whitespace change. - * sysv4.h (LINK_TARGET_SPEC): Whitespace change. - * sysv4le.h (LINK_TARGET_SPEC): Whitespace change. - - 2000-02-05 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (eh_epilogue): New expander. - (eh_reg_restore): New expand/split/insn combination. - (return_eh_si): New insn. - (return_eh_di): New insn. - - * eabi-ci.asm: Put a label at the start of the .eh_frame section. - * eabi-cn.asm: Put a zero at the end of the .eh_frame section. - * eabi-ctors.c (__do_global_ctors): Register this object's - frame. Clean up. Call atexit() after the constructors. - (__do_global_dtors): Deregister this object's frame. Clean up. - Allow for recursive calls to exit(). - * rs6000.c (fixuplabelno): New variable. - * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not - TARGET_RELOCATABLE, it slows down exec() under linux. - (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE. - - * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro. - (ASM_OUTPUT_DWARF_DELTA_VAR): New macro. - (ASM_OUTPUT_DWARF_DELTA2): New macro. - (ASM_OUTPUT_DWARF_DELTA4): New macro. - (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro. - (ASM_OUTPUT_DWARF_ADDR): New macro. - (ASM_OUTPUT_DWARF_DATA4): New macro. - (ASM_OUTPUT_DWARF_DATA2): New macro. - (ASM_OUTPUT_DWARF_OFFSET4): New macro. - (ASM_OUTPUT_DWARF_OFFSET): New macro. - (UNALIGNED_INT_ASM_OP): New macro, fake definition. - - 2000-02-03 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (rs6000_sr_alias_set): New variable. - (rs6000_override_options): Initialise rs6000_sr_alias_set. - (rs6000_emit_stack_tie): New function. - (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P - in a way that dwarf2out can understand. - (rs6000_frame_related): New function. - (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify - RTX_FRAME_RELATED_P in a way that dwarf2out can understand. - Use rs6000_emit_stack_tie when needed. - (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set - RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed. - * rs6000.md (stack_tie): New insn. - (return_internal_si): Allow return value to be in the count - register. - (return_internal_di): Likewise. - - * rs6000.c (output_mi_thunk): Remove unused variable `sp'. - - 2000-02-03 Geoff Keating <geoffk@cygnus.com> - - * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h. - - 2000-01-31 Geoff Keating <geoffk@cygnus.com> - - * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. - - * rs6000.md (stmw): Use the right POWER opcode. - (lmw): Likewise. - - 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * rs6000-protos.h: New file. - - * rs6000.c: Include tm_p.h. Fix compile time warnings. - - * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time - warnings. - - * sysv4.h: Likewise. - - 2000-01-28 Geoff Keating <geoffk@cygnus.com> - - * ../../configure.in: Delete powerpcle-*-winnt* - and powerpcle-*-pe|powerpcle-*-cygwin*. - * ../../configure: Regenerated. - * cygwin.h: Delete. - * rs6000.h (OBJECT_WINDOWS_NT): Delete. - (TARGET_WINDOWS_NT): Delete. - (ABI_NT): Delete. - (CALL_NT_DLLIMPORT): Delete. - Delete NT-specific code. - * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code. - * win-nt.h: Delete. - * t-winnt: Delete. - * nt-ci.asm: Delete. - * nt-cn.asm: Delete. - * ntstack.asm: Delete. - - 2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.h (SELECT_RTX_SECTION): Move to aix.h. - (ASM_FILE_START): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_OUTPUT_LABELREF): Likewise. - (ASM_OUTPUT_SKIP): Likewise. - (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - (ASM_OUTPUT_ASCII): Likewise. - - 2000-01-27 Clinton Popetz <cpopetz@cygnus.com> - - * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and - reload_toc_labelno for non-prologue TOC reloads. Also, don't - increment rs6000_pic_labelno here. - (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table, - and increment rs6000_pic_labelno here. - - 2000-01-24 Geoffrey Keating <geoffk@cygnus.com> - - * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)])) - rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register - allocation knows (reg) is dead before the insn. - - 2000-01-21 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (movsi_to_cr): Correct typo in output template. - - 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> - - * rs6000.c (rs6000_pic_labelno): Always define. - (rs6000_pic_func_labelno): Delete. - (lmw_operation): Check for a zero base register, - which doesn't mean what we want. - (stmw_operation): New function. - (print_operand): Define new 'l' modifier. - (rs6000_stack_info): We must save all 64 bits of the registers - if TARGET_POWERPC64. - (rs6000_output_load_toc_table): Delete. - (rs6000_emit_load_toc_table): New function. - (rs6000_allocate_stack_space): Delete. - (rs6000_emit_allocate_stack): New function. - (rs6000_emit_prologue): New function. - (output_prolog): Use rs6000_emit_prologue. - (rs6000_emit_epilogue): Change a few variable names to be - more accurate. Restore all 64 bits of the registers if - TARGET_POWERPC64. Only restore the FP registers which were used - if they are being saved/restored one-at-a-time. - (output_mi_thunk): Delete inefficient code generation. - (output_function_profiler): Don't use rs6000_output_load_toc_table. - * rs6000.h: Declare rs6000_emit_load_toc_table, - rs6000_allocate_stack_space, stmw_operation. Don't declare - rs6000_output_load_toc_table. - * rs6000.md (elf_high): Allow register 0, but discourage it - heavily. - (elf_low): Support loading into register 0. - (load_toc_aix_si): New pattern. - (load_toc_aix_di): New pattern. - (load_toc_v4_pic_si): New pattern. - (load_toc_v4_pic_di): New pattern. - (load_toc_v4_PIC_1): New pattern. - (load_toc_v4_PIC_1b): New pattern. - (load_toc_v4_PIC_2): New pattern. - (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table. - (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table. - (prologue): New expander. - (movesi_from_cr): New pattern. - (stmw): New pattern. - (save_fpregs_si): New pattern. - (save_fpregs_di): New pattern. - - 2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (movsi): Don't use force_reg when no_new_pseudos. - (movdi): Likewise. - (movhi): Likewise. - (movqi): Likewise. - - 2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (movsi_got): 'unspec 8' returns a SImode result, - at present. - (movsi_got_internal): Likewise. - (movsi_got_internal+1): Likewise. - (set_sp): 'unspec 7' does a SImode clobber. - - 2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md (floatsidf2): Don't use the fpmem "register", just - allocate a stack temporary. - (floatsidf2_internal): Likewise. - (floatsidf2_internal+1): Likewise. Don't do bizzare hacks - with unspec. - (floatunssidf2): Don't use the fpmem "register", just - allocate a stack temporary. - (floatunssidf2_internal): Likewise. - (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks - with unspec. - (floatsidf2_loadaddr): Delete. - (floatsidf2_store1): Delete. - (floatsidf2_store2): Delete. - (floatsidf2_load): Delete. - (fix_truncdfsi2): Don't use the fpmem "register", just - allocate a stack temporary. - (fix_truncdfsi2_internal_si): Delete. - (fix_truncdfsi2_internal_di): Delete. - (fix_truncdfsi2_internal): New insn. - (fix_truncdfsi2_internal+1): Don't use the fpmem "register". - (fix_truncdfsi2_store): Delete. - (fix_truncdfsi2_load): Delete. - (fctiwz): Produce gen_fctiwz. - - 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> - - * eabi.h (INVOKE__main): Define. - * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN - specially. - (rs6000_emit_prologue): Likewise. - * rs6000.h (struct rs6000_stack): Don't keep track of whether - this is the main program. - - 2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (rs6000_va_arg): Delete some unused variables. - - 2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments - goes after the argument. - - 2000-01-12 Geoff Keating <geoffk@cygnus.com> - - * rs6000.md: Document 'unspec' values used. - (epilogue): New expander. - (movesi_to_cr_one): New expander. - (movesi_to_cr and following): New pattern. - (lmw): New pattern. - (return_internal_si): New pattern. - (return_internal_di): New pattern. - (return_and_restore_fpregs_si): New pattern. - (return_and_restore_fpregs_di): New pattern. - * rs6000.h: Declare new functions. - * rs6000.c (rs6000_stack_info): Use current_function_is_leaf - rather than rs6000_calls_p. - (rs6000_makes_calls): Delete. - (lmw_operation): New function. - (mtcrf_operation): New function. - (rs6000_emit_epilogue): New function. - (output_epilog): Call rs6000_emit_epilogue and final if - !TARGET_SCHED_PROLOG, instead of writing text unconditionally. - - 2000-01-12 Geoff Keating <geoffk@cygnus.com> - - * aix43.h (SUBSUBTARGET_SWITCHES): Document switches. - * aix41.h (SUBSUBTARGET_SWITCHES): Document switches. - * aix.h (SUBTARGET_SWITCHES): Document switches. - * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make - sched-prolog and sched-epilog the same. Document all the - switches. - (TARGET_OPTIONS): No longer allow -mdebug-. - - 2000-01-12 Geoff Keating <geoffk@cygnus.com> - - * rs6000.h (ASM_FILE_END): Move to aix.h. - (EXTRA_SECTIONS): Move to aix.h. - (READONLY_DATA_SECTION): Move to aix.h. - (EXTRA_SECTION_FUNCTIONS): Move to aix.h. - (SELECT_SECTION): Move to aix.h. - (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h. - (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM. - (LINK_REGISTER_REGNUM): New definition. - (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM. - (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both - AIX and SVR4. - * sysv4.h: Delete the code between the inclusion of rs6000.h - and svr4.h. - (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h. - (FP_ARG_MAX_REG): Move generic definition to rs6000.h. - (RS6000_REG_SAVE): Move generic definition to rs6000.h. - (RS6000_SAVE_AREA): Move generic definition to rs6000.h. - * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode. - (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si. - (fix_truncdfsi2_internal_di): New pattern. - (fix_truncdfsi2_store): The second arg here is Pmode too. - (fix_truncdfsi2_load): The second arg here is Pmode too. - (tablejumpdi): Now that switch tables hold only SImode values, - gcc needs to know how to add them to the pc which is DImode. - * rs6000.c (rs6000_stack_info): Use symbolic name for - LINK_REGISTER_REGNUM. - (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used. - (output_toc): Delete unused variables s1 and s2. - (output_ascii): Use fputs not fprintf on a variable string. - - 2000-01-07 David Edelsohn <edelsohn@gnu.org> - - * rs6000.c (processor_target_table): Add power3 as alias for 630. - * aix43.h: Revert Aug 2 change. - (HAS_INIT_SECTION): Define, not visible yet. - (LD_INIT_SWITCH): Define, not visible yet. - * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. - - 2000-01-04 Joel Sherrill (joel@OARcorp.com> - - * config/rs6000/rtems.h: Include config/rtems.h. - - 2000-01-04 David Edelsohn <edelsohn@gnu.org> - - * rs6000.h (HANDLE_PRAGMA_PACK): Define. - (SLOW_UNALIGNED_ACCESS): Define. - (CASE_VECTOR_MODE): Always use 32-bit offsets. - (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. - (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op. - (toc_section): Likewise and .toc pseudo-op. - (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in - 64-bit mode. - (TEXT_SECTION_ASM_OP): Likewise. - (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use - 32-bit offsets. - - 1999-12-17 Jakub Jelinek <jakub@redhat.com> - - * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure - UNITS_PER_WORD and BITS_PER_WORD are compile time constants when - compiling libgcc2. - - 2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.h: Move more stuff from here... - * aix.h: to here. - * sysv4.h: Cleanup accordingly. - * netware.h: Likewise - - 2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * rs6000.h: Continue cleanup. - * aix.h: Likewise. - * lynx.h: Likewise. - * netware.h: Likewise. - * sol2.h: Likewise. - * sysv4.h: Likewise. - * win-nt.h: Likewise. - - * rs6000.h (TARGET_SWITCHES): Add descriptions. - (TARGET_OPTIONS): Likewise. - - * sysv4.h (SUBTARGET_SWITCHES): Add descriptions. - (SUBTARGET_OPTIONS): Likewise. - - * rs6000.md: Fix compile time warnings. - - 2000-01-04 Geoff Keating <geoffk@cygnus.com> - - vxworks patches from the Cygnus tree originally by - Michael Meissner <meissner@cygnus.com> and Vladimir Makarov - <vmakarov@cygnus.com>. - * sysv4.h (SUBTARGET_SWITCHES): Add vxworks. - (ENDFILE_SPEC): Likewise. - (LIB_VXWORKS_SPEC): New macro. - (STARTFILE_VXWORKS_SPEC): New macro. - (ENDFILE_VXWORKS_SPEC): New macro. - (LINK_START_VXWORKS_SPEC): New macro. - (LINK_OS_VXWORKS_SPEC): New macro. - (CPP_OS_VXWORKS_SPEC): New macro. - (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs. - * vxppc.h: Rewrite to use proper configuration method. - * vxppcle.h: New file. - * ../../configure.in: Add powerpcle-wrs-vxworks*. - * ../../configure: Rebuilt. - - 2000-01-04 Geoff Keating <geoffk@cygnus.com> - - Lots of changes to rs6000.h, sysv4.h, aix.h, - aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h, - with the aim that rs6000.h is the first header - included and the others override it. - * aix.h: New file. - - * x-aix41-gld: Remove. - * x-aix43: Remove. - * x-aix41: Remove target-specific switches, and don't specify - -Wl,-bbigtoc as we don't need it any more. - * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above. - Use t-aix43 for AIX 4.3 and above. - * ../../configure: Regenerated. - - * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling - options, that don't do anything yet. - (MASK_SCHED_PROLOG): New macro. - (MASK_SCHED_EPILOG): New macro. - (TARGET_SCHED_PROLOG): New macro. - (TARGET_SCHED_EPILOG): New macro. - - 2000-01-04 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c: Correct comment, the `minimal' TOCs are actually - one per translation unit, not one per function. - (output_toc): Also do duplicate constant elimination - for per-translation-unit TOCs. - - * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add - a comment explaining _exactly_ when this pattern gets used. - (builtin_setjmp_receiver): New pattern for better clarity. - (init_v4_pic): Move it into a section dealing with TOC registers. - - 1999-12-30 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (toc_hash_table): New variable. - (rs6000_hash_constant): New function. - (toc_hash_function): New function. - (toc_hash_eq): New function. - (toc_hash_mark_entry): New function. - (toc_hash_mark_table): New function. - (output_toc): Don't output duplicate TOC entries in - a single file. - (rs6000_add_gc_roots): Add the hash table as a GC root. - * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43, - where they clearly shouldn't be. This may need to be fixed - later when there is a GNU ar for AIX. - * x-aix43: Don't define CLIB or AR_FOR_TARGET. - Don't define BOOT_LDFLAGS as it is now not necessary. - - 1999-12-29 Geoff Keating <geoffk@cygnus.com> - - * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *' - for va_list on AIX. Use unsigned_char_type_node rather than - constructing our own version on svr4. - - 1999-12-17 Geoff Keating <geoffk@cygnus.com> - - * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment, - since patently it's not. - - 1999-12-08 Geoff Keating <geoffk@cygnus.com> - - * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into - define_expand/define_insn pair, and handle restore of the - SVR4 -fpic register. - -Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com) - - * acconfig.h (HAVE_GAS_WEAK): New define. - * configure.in (assembler weak support): Check for .weak support. - * config.in, configure: Rebuilt. - * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if - HAVE_GAS_WEAK is defined. - -2000-03-15 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (arm_output_epilogue): Do not pass %c to - asm_fprintf(). - -2000-03-15 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (open_include_file): New function. - (find_include_file, cpp_read_file): Use it. - -2000-03-15 Jason Merrill <jason@casey.cygnus.com> - - * cpphash.c (dump_hash_helper): Take the slot, not the element. - -Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com> - - * flow.c (verify_flow_info): Check for unconditional return. - -Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.md (restore_stack_nonlocal): New. - * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop. - (__ia64_restore_stack_nonlocal): New. - * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal. - -2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * cpphash.c (collect_formal_parameters): Do not complain about - parameter names that just start with `__VA_ARGS__'. - -Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and - movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines. - * i386.c (pentiumpro_cost): Set mul cost to 4. - (x86_use_movx): Set for PPro. - -Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (ix86_compute_frame_size): stack_alignment_needed is - STACK_BOUNDARY for empty frames now. - -2000-03-14 Mark Mitchell <mark@codesourcery.com> - - * stor-layout.c (layout_union): Remove. - (layout_union_field): New function, split out from layout_union. - (finish_union_layout): Likewise. - (layout_field): Handle unions by calling layout_union_field. - (finish_record_layout): Handle unions. - (layout_type): Combine RECORD_TYPE, UNION_TYPE, and - QUAL_UNION_TYPE handling. - -Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz> - - * flow.c (fixup_reorder_chain): Avoid double labels in the basic block; - end of basic block is jump_insn, not barrier; use create_basic_block - instead of creating basic block by hand. - -2000-03-14 Jason Eckhardt <jle@cygnus.com> - - * flow.c (reorder_basic_blocks): Account for barriers when writing - over NEXT_INSN (last_bb->end). - (verify_flow_info): Add check for missing barriers. - -2000-03-14 Greg McGary <gkm@gnu.org> - - * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. - * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. - * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, - __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, - __unbounded, __unbounded__): New keywords. - * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. - * c-parse.y, c-parse.c, c-parse.h: Regenerate. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - -2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk> - - * cselib.h: New file. - * alias.c: Include "cselib.h". - (fixed_scalar_and_varying_struct_p): Accept the addresses of the - MEMs as two new arguments. - (get_addr): New static function. - (find_base_term): Handle VALUEs. - (memrefs_conflict_p): Likewise. - (true_dependence): Call get_addr on the addresses. - Call fixed_scalar_and_varying_struct_p with addresses that have been - passed through get_addr and canon_rtx. - (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency - with true_dependence. - Call get_addr on the addresses; don't call canon_rtx on the MEMs. - * loop.c: Include "cselib.h". - (load_mems): Process extended basic block that enters the loop with - cselib. Use that information to change initialization of the shadow - register so that a constant equivalence is seen by later passes. - * reload1.c: Include "cselib.h". - (reload_cse_invalidate_regno): Delete function. - (reload_cse_mem_conflict_p): Likewise. - (reload_cse_invalidate_mem): Likewise. - (reload_cse_invalidate_rtx): Likewise. - (reload_cse_regno_equal_p): Likewise. - (reload_cse_check_clobber): Likewise. - (reload_cse_record_set): Likewise. - (reg_values): Delete static variable. - (invalidate_regno_rtx): Likewise. - (reload_cse_delete_noop_set): New static function. - (reload_cse_simplify): New static function, broken out of - reload_cse_regs_1. - (reload_cse_noop_set_p): Delete unused argument INSN. - Just call rtx_equal_for_cselib_p on set source and destination. - (reload_cse_regs_1): Break out some code into reload_cse_simplify and - reload_cse_delete_noop_set. Delete code to keep track of values; use - cselib functions instead. Delete code to push/pop obstacks. - (reload_cse_simplify_set): Use cselib to find equivalent values. - Delete code to push/pop obstacks. - (reload_cse_simplify_operands): Likewise. - * rtl.def (VALUE): New rtx code. - * rtl.h (union rtunion_def): New elt rt_cselib. - (X0CSELIB, CSELIB_VAL_PTR): New macros. - * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h". - (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table, - unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values, - discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p, - hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash, - cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno, - cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx, - cselib_record_set, cselib_record_sets): New static functions. - (cselib_lookup, cselib_update_varray_sizes, cselib_init, - cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p, - references_value_p): New functions. - (MAX_USELESS_VALUES, REG_VALUES): New macros. - (table, cselib_current_insn, next_unknown_value, cselib_nregs, - n_useless_values, reg_values, callmem, cselib_obstack, - cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists): - New static variables. - * varray.h (union varray_data_tag): New elt te. - (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros. - * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update - dependencies. - -2000-03-14 Nick Clifton <nickc@cygnus.com> - - * gcc.c (do_spec_1): Catch the case where %* is used in a - substitution pattern, but it has not been initialised. - Issue a meaningful error message if an unrecognised operator - is encountered in a spec string. - -2000-03-14 Richard Earnshaw <rearnsha@arm.com> - - * function.c (prepare_function_start): Correctly initialize - cfun->stack_alignment_needed. - -2000-03-14 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (find_include_file): Don't assume nshort is a - substring of name. - -Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa configurations): Add pa32-regs.h to the - list of tm files as appropriate. - * configure: Rebuilt. - * pa.c (compute_frame_size): Remove explicit knowledge about FP - register numbering. - (hppa_expand_prologue, hppa_expand_epilogue): Likewise. - (fmpyaddoperands, fmpysuboperands): Likewise. - * pa.h: Remove various definitions which depend on knowing - how registers are numbered. - * pa32-regs.h: New file with PA32 register numbering specific - definitions. - -2000-03-14 Richard Henderson <rth@cygnus.com> - - * regmove.c (combine_stack_adjustments): New. - (stack_memref_p, single_set_for_csa): New. - (free_csa_memlist, record_one_stack_memref): New. - (try_apply_stack_adjustment): New. - (combine_stack_adjustments_for_block): New. - * rtl.h (combine_stack_adjustments): Declare. - * toplev.c (rest_of_compilation): Call it. - - * i386.md: Revert 2000-01-16 change. - -2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * gccbug.in: Add web category, gcc specific classes. - -2000-03-14 Nathan Sidwell <nathan@codesourcery.com> - - * stor-layout.c (finalize_record_size): Fix typo. - -2000-03-14 Stan Shebs <shebs@apple.com> - - * c-typeck.c (c_alignof): Error on incomplete types. - * extend.texi (Alignment): Document this. - -2000-03-13 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c: Include mkdeps.h. - (find_include_file, read_include_file): Remove _cpp_ prefix - from name, make static. - (_cpp_execute_include): New function, broken out of - do_include. - - * cpplib.c: Don't include mkdeps.h. - (struct directive): Remove type field. Reorder entries. The - function takes only one argument. - (struct if_stack): Make type field an int. - (directive_table): Rename to dtable. Generate it, the - prototypes of the directive handlers, and the enum for the - directive numbers, from a template macro. - (do_ifndef, do_include_next, do_import): New functions. - (do_define, do_include, do_endif, do_ifdef, do_if, do_else, - do_undef, do_line, do_elif, do_error, do_pragma, do_warning, - do_ident, do_assert, do_unassert, do_sccs): Take only one - argument. - (do_sccs): Define always, but alter behavior based on - SCCS_DIRECTIVE. - (_cpp_handle_directive, consider_directive_while_skipping): - Restructure for new directive table layout. - - (pass_thru_directive): Take a directive number, not a pointer - to a struct directive. - (parse_include): New function, broken out of do_include. - (do_include, do_import, do_include_next): Use parse_include - and _cpp_execute_include. - (do_elif, do_else): Test for T_ELSE specifically when checking - for #elif/#else after #else. - (parse_ifdef): New function, broken out of do_ifdef. - (validate_else): Expect a name arg without a leading #. - (if_directive_name): Delete. - (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call - directive handlers with only one argument. - - * cpphash.h: Update prototypes. - (enum node_type): Remove entries for directives. - * Makefile.in: Update dependencies. - - * cpphash.c (dump_hash_helper): Only dump nodes of type - T_MACRO. Emit a newline after each definition. - -2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * gccbug.in: New file. - * configure.in (all_outputs): Add gccbug. - * Makefile.in (install-common): Install gccbug. - (GCCBUG_INSTALL_NAME): New variable. - * configure: Rebuilt. - -2000-03-13 Jason Merrill <jason@casey.cygnus.com> - - * function.c (put_var_into_stack): Use type_for_mode to calculate - part_type. Use MEM_SET_IN_STRUCT_P. - * expr.c (store_field): Handle CONCAT. - (store_constructor): Use fields_length. - * tree.c (fields_length): New fn. - * tree.h: Declare it. - -2000-03-13 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (LIBCPP_OBJS): Add cpplex.o. - (cpplex.o): New target. - * po/POTFILES.in: Add cpplex.c. - - * cpplex.c (_cpp_grow_token_buffer, null_cleanup, - cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer, - cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer, - skip_block_comment, skip_line_comment, skip_comment, - copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line, - _cpp_parse_name, skip_string, parse_string, - _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token, - _cpp_get_directive_token, find_position, - _cpp_read_and_prescan, _cpp_init_input_buffer): Move here. - (maybe_macroexpand, _cpp_lex_token): New functions. - - * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark, - parse_goto_mark): Delete. - (_cpp_handle_eof): New function. - (_cpp_handle_directive): Rename from handle_directive. - (_cpp_output_line_command): Rename from output_line_command. - (do_if, do_elif): Call _cpp_parse_expr directly. - * cppfiles.c (_cpp_read_include_file): Don't call - init_input_buffer here. - * cpphash.c (quote_string): Move here, rename _cpp_quote_string. - * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive - here; pop the token_buffer and skip the rest of the line here. - * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer - here. - - * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P): - Define here. - (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK, - CPP_GOTO_MARK): New macros. - (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line, - _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token, - _cpp_read_and_prescan, _cpp_init_input_buffer, - _cpp_grow_token_buffer, _cpp_get_directive_token, - _cpp_handle_directive, _cpp_handle_eof, - _cpp_output_line_command): Prototype them here. - * cpplib.h (enum cpp_token): Add CPP_MACRO. - (CPP_RESERVE, get_directive_token, cpp_grow_buffer, - quote_string, output_line_command): Remove. - -2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk> - - * stmt.c (expand_end_case): RANGE may be signed, and when checking - whether it is too large we must also verify that it isn't negative. - -2000-03-13 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0. - (movsi_zero_liveg0): Remove. - (movsf_insn_novis_liveg0): Remove. - (negsi2): Remove. - (negsi2_not_liveg0): Rename to negsi2. - (one_cmplsi2): Remove. - (one_cmplsi2_not_liveg0): Rename to one_cmplsi2. - (one_cmplsi2_liveg0): Remove. - * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE, - MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove. - (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if. - (PREDICATE_CODES): Remove zero_operand. - * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and - TARGET_BROKEN_SAVERESTORE. - (zero_operand): Remove. - * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0, - -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore - options. - (SUBTARGET_OVERRIDE_OPTIONS): Remove. - * config/sparc/linux-aout.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Remove. - * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - - * config/sparc/sparc.md (return_df_no_fpu): New pattern. - -2000-03-13 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (do_pragma_implementation): Fix off-by-one error - truncating a string. Don't assume tokens are nul terminated. - Problem noted by Andreas Jaeger <aj@suse.de> - -2000-03-13 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (add_name_and_src_coords_attributes): Only add - DW_AT_MIPS_linkage_name for TREE_PUBLIC decls. - (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline. - -2000-03-13 Richard Earnshaw <rearnsha@arm.com> - - * stor-layout.c (new_record_layout_info): Fix typo inside ifdef - STRUCTURE_SIZE_BOUNDARY. - -2000-03-13 Mark Mitchell <mark@codesourcery.com> - - * tree.h (record_layout_info_s): New structure. - (record_layout_info): New type. - (new_record_layout_info): New function. - (layout_field): Likewise. - (finish_record_layout): Likewise. - * stor-layout.c (layout_record): Remove. - (new_record_layout_info): New function. - (layout_field): New function, broken out from layout_record. - (finalize_record_size): Likewise. - (compute_record_mode): Likewise. - (finalize_type_size): New function, broken out from layout_type. - (finish_record_layout): Likewise. - (layout_type): Use them. - -2000-03-12 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c: Don't include version.h. - (special_symbol) [case T_VERSION]: Look for the string in - hp->value.cpval; don't use version_string. - * cppinit.c (initialize_builtins): Set hp->value.cpval for - __VERSION__ to version_string. - * Makefile.in (cpphash.o): Update deps. - -2000-03-12 Zack Weinberg <zack@wolery.cumb.org> - - Convert cpplib to use libiberty/hashtab.c. - - * cpplib.h (struct cpp_reader): Make hashtab and - all_include_files of type 'struct htab *'. Delete HASHSIZE - and ALL_INCLUDE_HASHSIZE macros. - - * cpphash.h: Update prototypes. - (struct hashnode): Remove next, prev, and bucket_hdr members. - Make length a size_t. Add hash member. - (struct ihash): Remove next member. Add hash member. Make - name a flexible array member. - - * cppfiles.c: Include hashtab.h. - (include_hash): Delete. - (IHASHSIZE): New macro. - (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions. - (cpp_included): Do the hash lookup here. - (_cpp_find_include_file): Rewrite. - (cpp_read_file): Put the "fake" hash entry into the hash - table. Honor the control_macro, if it turns out we've seen - the file before. Don't push the buffer here. - (_cpp_read_include_file): Push the buffer here. - (OMODES): New macro. Use it whenever we call open(2). - - * cpphash.c: Include hashtab.h. - (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper, - _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode, - _cpp_lookup_slot): New functions. - (HASHSIZE): new macro. - (hashf, _cpp_install, _cpp_delete_macro): Delete. - (_cpp_lookup): Use hashtab.h routines. - - * cppinit.c: Include hashtab.h. - (cpp_reader_init): Call _cpp_init_macro_hash and - _cpp_init_include_hash. Don't allocate hashtab directly. - (cpp_cleanup): Just call htab_delete on pfile->hashtab and - pfile->all_include_files. - (initialize_builtins): Use _cpp_make_hashnode and - htab_find_slot to add hash entries. - (cpp_finish): Just call _cpp_dump_macro_hash. - * cpplib.c: Include hashtab.h. - (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to - create hash entries. - (do_pragma_poison, do_assert): Likewise. - (do_include): Don't push the buffer here. Don't increment - system_include_depth unless _cpp_read_include_file succeeds. - (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot - or htab_remove_elt. - (do_pragma_implementation): Use alloca to create copy. - - * Makefile.in: Update dependencies. - -2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cppinit.c (cl_directive_handler): More K&R fixing. - -Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.c (ia64_compute_frame_size): Align size to - STACK_BOUNDARY. - * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses. - -2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth): - Change from char[] to macros. - -2000-03-12 Neil Booth <NeilB@earthling.net> - - * cppinit.c (cpp_start_read): Update indirect function - call to K&R C. - -Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com> - - * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79 - entry. - - * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages. - -2000-03-11 Neil Booth <NeilB@earthling.net> - - * cppinit.c (struct pending option): Replace undef with a - pointer to a directive handling routine. - (struct cpp_pending): Replace separate assert_ and define_ - lists with one directive_ list. - (new_pending_define): Rename new_pending_directive. Extra - argument is the directive's handling routine. - (handle_option): Update to use new_pending_directive. - -2000-03-11 Neil Booth <NeilB@earthling.net> - - * cppfiles.c (file_cleanup, _cpp_find_include_file, - remap_filename, _cpp_read_include_file, actual_directory, - hack_vms_include_specification): Replace bcopy(), index() etc - calls. Add casts to some allocations. Make some variables - pointers to const [unsigned] char. - * cpphash.c (_cpp_install, macro_cleanup, collect_expansion, - collect_formal_parameters): Similarly. - * cppinit.c (struct pending_option, append_include_chain, - cpp_options_init, cpp_reader_init, initialize_standard_includes, - cpp_start_read, new_pending_define, handle_option): Similarly. - * cpplib.c (cpp_define, copy_comment, do_define, do_include, - do_undef, do_error, do_warning, do_pragma, do_pragma_once, - do_pragma_implementation, detect_if_not_defined, - do_ifdef, skip_if_group, cpp_get_token, parse_string, - do_assert, do_unassert): Similarly. - * cpplib.h (cpp_buffer, cpp_options): Update types. Update - function prototypes. - * mkdeps.c (deps_add_target, deps_add_dep): cast allocations. - -2000-03-10 Richard Henderson <rth@cygnus.com> - - * builtins.c (expand_builtin_strlen): Revert last change. - Use emit_insn_before if we're at the beginning of a sequence. - -2000-03-10 Jason Merrill <jason@casey.cygnus.com> - - * builtins.c (expand_builtin_strlen): Make sure that we have something - at the beginning of the sequence. - - * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for - deferred inlines. - - * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. - -2000-03-10 Richard Henderson <rth@cygnus.com> - - * except.c (can_throw): Use INTVAL on a CONST_INT. - (reachable_handlers): Likewise. - * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise. - -2000-03-10 Andreas Jaeger <aj@suse.de> - - * config/mips/linux.h: Undefine MD_EXEC_PREFIX and - MD_STARTFILE_PREFIX since those are not needed on linux. - (ASM_FILE_START): New, from mips/gnu.h. - -2000-03-09 Richard Henderson <rth@cygnus.com> - Alex Samuel <samuel@codesourcery.com> and others - - * Makefile.in (ssa.o): New rule. - (OBJS): Add ssa.o. - (STAGESTUFF): Add *.ssa and *.ussa. - (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa. - * rtl.def (PHI): New RTL expression. - * rtl.h (clear_log_links): New declaration. - (convert_to_ssa): Likewise. - (convert_from_ssa): Likewise. - * flow.c (split_edge): If the entry node falls through to the - split edge's source block, split the entry edge. - (clear_log_links): New function. - * toplev.c (ssa_dump): New variable. - (flag_ssa): Likewise. - (f_options): Add "ssa". - (compile_file): Create SSA dump files. - (rest_of_compilation): Go to and from SSA if enabled. - (decide_d_option): Handle -de for SSA dump files. - * ssa.c: New file. - -Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com> - - * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL - same as VAR_DECL. - -2000-03-09 Benjamin Kosnik <bkoz@cygnus.com> - - * config/alpha/linux.h (WCHAR_TYPE): Make consistent. - -Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com) - - * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case. - (MD_STARTFILE_PREFIX_1): New macro. - -2000-03-09 Robert Lipe <robertl@sco.com> - - * config/ia64/ia64.c: Include system.h. - -2000-03-09 Jason Merrill <jason@casey.cygnus.com> - - * except.c (nothrow_function_p): If -fno-exceptions, just return. - (init_eh_nesting_info): Likewise. - - * tree.h (struct tree_common): Rename raises_flag to nothrow_flag. - (TREE_NOTHROW): Rename from TREE_RAISES. - * toplev.c (rest_of_compilation): Set it. - * print-tree.c (print_node): Adjust. - * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES. - (stabilize_reference_1, get_unwidened, get_narrower): Likewise. - * calls.c (emit_call_1): Add 'nothrow' parm. Add - REG_EH_REGION note as appropriate. - (libfunc_nothrow): New fn. - (emit_library_call, emit_library_call_value): Use it. - (expand_call): Check TREE_NOTHROW. - - * varasm.c (make_decl_rtl): Skip initial '*' when setting - DECL_ASSEMBLER_NAME. - -2000-03-09 Andreas Jaeger <aj@suse.de> - - * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define. - (TARGET_MEM_FUNCTIONS): Define. - -2000-03-09 Jason Merrill <jason@casey.cygnus.com> - - * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int. - - * except.c (can_throw): See through a SEQUENCE. - (nothrow_function_p): New fn. - * except.h: Declare it. - * function.c (current_function_nothrow): New var. - (prepare_function_start): Initialize it. - * output.h: Declare it. - * toplev.c (rest_of_compilation): Set it. - * dwarf2out.c (dwarf2out_begin_prologue): Use it. - -2000-03-09 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (collect_formal_parameters): strncmp returns 0 for - match. (cpp_compare_defs): Count the nul separator when - advancing over argument names. - -2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk> - - * recog.c (preprocess_constraints): Matching constraints affect - same alternative/different operand, not same operand/different - alternative. - - * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable - register and a constant specially. - -2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * libgcc2.h: New file. - * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. - -Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com> - - * configure.in (ia64*-*-elf*, ia64*-*-linux*): New. - * configure: Regenerate. - * config/ia64: New. - -2000-03-08 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (LIBCPP_DEPS): New macro. - (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use - it to declare deps. - * cpperror.c: Include cpphash.h. - * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS - dingleberry. - (lex): Don't use CPP_WARN_UNDEF. - (_cpp_parse_expr): Return an int, the truth value. - * cppfiles.c: Include cpphash.h. - (_cpp_merge_include_chains): Move to cppinit.c and make static. - * cppinit.c (include_defaults_array): Disentangle. - (cpp_cleanup): Don't free the if stack here. - (cpp_finish): Pop off all buffers, not just one. - * cpplib.c (eval_if_expr): Return int. - (do_xifdef): Rename do_ifdef. - (handle_directive): Don't use CPP_PREPROCESSED. - (cpp_get_token): Don't use CPP_C89. - * fix-header.c: Don't use CPP_OPTIONS. - - * cpplib.h: Move U_CHAR, enum node_type, struct - file_name_list, struct ihash, is_idchar, is_idstart, - is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK, - CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC, - CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q, - CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER, - CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes - of _cpp_simplify_pathname, _cpp_find_include_file, - _cpp_read_include_file, and _cpp_parse_expr to cpphash.h. - Move struct if_stack to cpplib.c. Move struct cpp_pending to - cppinit.c. - Change all uses of U_CHAR to be unsigned char instead. - Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED. - -2000-03-08 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (dw_fde_struct): Add 'nothrow'. - (dwarf2out_begin_prologue): Set it. - (output_call_frame_info): Don't emit EH unwind info for leaves. - - * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow - can occur outside of an EH region. - * except.c: Correct comments about rethrow behavior. - (rethrow_symbol_map): Do nothing if !flag_new_exceptions. - -2000-03-08 Andrew MacLeod <amacleod@cygnus.com> - - * flow.c (make_edges): Always call make_eh_edge for calls. - -2000-03-08 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete. - (struct cpp_buffer): Remove fname and underflow fields. - (struct cpp_reader): Remove get_token field. - (struct include_hash): Rename to struct ihash. Add typedef to - IHASH. - (struct if_stack): Remove fname field. - (IF_STACK_FRAME): Rename to IF_STACK. - - * cpperror.c (print_containing_files): Trust that there are no - macro buffers below the top file buffer. - * cppfiles.c: Replace all references to 'struct include_hash' - with 'IHASH'. Rename initialize_input_buffer to - init_input_buffer. Don't set or reference cpp_buffer->fname, - use buffer->ihash->name instead. - * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL - not CPP_NULL_BUFFER. - * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not - IF_STACK_FRAME, IHASH not struct include_hash. - * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove - null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not - struct include_hash, NULL not CPP_NULL_BUFFER. Remove all - references to cpp_buffer->fname (delete entirely, or use - ->ihash->name instead) and IF_STACK->fname. - (cpp_push_buffer): Don't set new->underflow. - (do_include): Use cpp_file_buffer. - - * cpphash.c (collect_formal_parameters): Remove duplicate - increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is - used as a macro argument name. Don't append "..." to namebuf - for varargs macros. After we're done scanning, go through - namebuf and make it NUL separated, not comma separated. - (_cpp_compare_defs): Remove register tag from variables. - Expect defn->argnames to be NUL separated. - (_cpp_dump_definition): Expect defn->argnames to be NUL - separated and in forward order. - * cpphash.h: Update documentation of argnames field. - -2000-03-08 Richard Henderson <rth@cygnus.com> - - * builtins.c (expand_builtin_strlen): Be prepared for strlensi - to fail. Don't pre-expand the source operand. - - * i386.md (strlensi): Initialize eoschar and align before use. - -2000-03-08 Jason Merrill <jason@casey.cygnus.com> - - * expr.c (expand_expr, case ARRAY_REF): Still check for missing - CONSTRUCTOR element. - -2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com> - - * mips.c (mips_expand_prologue): If the last - named argument is the vararg marker "va_list", treat it as - an unnamed argument. - -2000-03-08 Clinton Popetz <cpopetz@cygnus.com> - - * dbxout.c (dbxout_parms): When correcting for promoted - big-endian parameters, use the mode of the DECL_RTL rather - than UNITS_PER_WORD. - -2000-03-08 Nathan Sidwell <nathan@codesourcery.com> - - * c-common.h (make_fname_decl): Declare. - * c-common.c (make_fname_decl): Define. - (declare_hidden_char_array): Remove. - (declare_function_name): Use make_fname_decl. - * c-decl.c (c_make_fname_decl): New function. - (init_decl_processing): Set make_fname_decl. - -Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com) - - * cccp.c (handle_directive): Initialize backslash_newlines_p. - -2000-03-07 Philipp Thomas <pthomas@suse.de> - - * po/POTFILES.in: Remove cppalloc.c from file list. - -2000-03-07 Steve Chamberlain <sac@pobox.com> - - * pj.c (pj_expand_prologue): current_function->args_info is - now current_function_args_info. - - * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX, - LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define. - -2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is - output as hexadecimal rather than the default octal. - -2000-03-07 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (special_symbol): Fix thinko in previous commit. - -2000-03-07 Neil Booth <NeilB@earthling.net> - - * cppexp.c (struct operation, left_shift, right_shift, - cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some - "int"s to "unsigned int"s. - * cpplib.c (detect_if_not_defined, do_assert, do_unassert): - Similarly. - * cpplib.h: Update for above. - * mkdeps.c (deps_init, deps_calc_target): Cast pointers - returned from allocations. - - * cppinit.c (opt_comp, parse_options): New functions. - (handle_option): Use parse_option to parse a single command - line option, that possibly takes an argument. - (cpp_handle_options): Sort the array of command line options on - first invocation (non-ASCII hosts only). - (print_help): Update. - -2000-03-07 Zack Weinberg <zack@wolery.cumb.org> - - * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in - backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>. - - * cppfiles.c (_cpp_find_include_file): Make sure ih->name is - initialized. - * cppinit.c (cpp_cleanup): Free imp->nshort also. - - * cpperror.c (cpp_print_containing_files, - cpp_print_file_and_line, v_cpp_message): Rename to - print_containing_files, print_file_and_line, and v_message. - * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename - to _cpp_parse_expr, parse_escape, and lex. - (parse_charconst): Remove broken multibyte support. - * cppfiles.c (include_hash): Make static. - (cpp_included): New function. - (merge_include_chains, find_include_file, finclude, - simplify_pathname): Rename to _cpp_merge_include_chains, - _cpp_find_include_file, _cpp_read_include_file, and - _cpp_simplify_pathname. - * cpphash.c (cpp_lookup, free_definition, delete_macro, - cpp_install, create_definition, macroexpand, compare_defs, - dump_definition): Rename to _cpp_lookup, _cpp_free_definition, - _cpp_delete_macro, _cpp_install, _cpp_create_definition, - _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition. - * cppinit.c (cpp_handle_option): Rename to handle_option, make - static. - * cpplib.c: Remove extern prototype of cpp_parse_expr. - - * cpphash.h: Update prototypes. - * cpplib.h: Likewise. Prototype _cpp_parse_expr here. - -2000-03-07 Andrew Haley <aph@cygnus.com> - - * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change; - PTRDIFF_TYPE should be based solely on Pmode. - (SIZE_TYPE): ditto. - -2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * rtl.h (rtunion_def): Constify member `rtstr'. - (emit_line_note_after, emit_line_note, emit_line_note_force, - emit_note, decode_asm_operands): Constify. - - * cse.c (canon_hash): Likewise. - - * dbxout.c (dbxout_block): Likewise. - - * diagnostic.c (file_and_line_for_asm, v_error_for_asm, - v_warning_for_asm): Likewise. - - * dwarfout.c (function_start_label): Likewise. - - * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note, - emit_line_note_force): Likewise. - - * final.c (last_filename, asm_insn_count, final_scan_insn, - output_source_line): Likewise. - - * function.h (struct emit_status): Likewise. - - * gcse.c (hash_expr_1): Likewise. - - * genattr.c (gen_attr, main): Likewise. - - * genattrtab.c (struct function_unit, current_alternative_string, - write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq, - attr_numeral, check_attr_test, check_attr_value, - convert_set_attr_alternative, convert_set_attr, - compute_alternative_mask, simplify_by_exploding, gen_attr, - gen_unit): Likewise. - - * genflags.c (gen_insn): Likewise. - - * gengenrtl.c (type_from_format): Likewise. - - * genopinit.c (gen_insn): Likewise. - - * genoutput.c (n_occurrences, process_template, process_template): - Likewise. - - * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): - Likewise. - - * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): - Likewise. - - * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable, - ggc_set_mark, ggc_get_size): Likewise. - - * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise. - - * optabs.c (init_one_libfunc): Likewise. - - * output.h (assemble_start_function): Likewise. - - * recog.c (decode_asm_operands): Likewise. - - * toplev.c (rest_of_compilation): Likewise. - - * tree.h (emit_line_note_after, emit_line_note, - emit_line_note_force): Likewise. - - * varasm.c (asm_output_bss, asm_output_aligned_bss, - asm_emit_uninitialised, assemble_start_function, - assemble_variable, const_hash, compare_constant_1, - find_pool_constant, mark_constant_pool, assemble_alias): Likewise. - - * xcoffout.h (DBX_FINISH_SYMBOL): Likewise. - - * alpha/alpha.md (call_vms, call_value_vms): Likewise. - - * arm/aof.h (ASM_OUTPUT_ASCII): Likewise. - - * arm/aout.h (ASM_OUTPUT_ASCII): Likewise. - - * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p, - arm_dllimport_name_p): Likewise. - - * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op): - Likewise. - - * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p, - arm_mark_dllexport, arm_mark_dllimport, - arm_pe_encode_section_info): Likewise. - - * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS, - ASM_FINISH_DECLARE_OBJECT): Likewise. - - * arm/thumb.c (thumb_function_prologue): Likewise. - - * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise. - - * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise. - - * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/i386-protos.h (asm_output_function_prefix): Likewise. - - * i386/i386.c (asm_output_function_prefix): Likewise. - - * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT, - ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII, - ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. - - * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise. - - * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. - - * m32r/m32r.c (m32r_encode_section_info): Likewise. - - * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mcore/mcore.c (mcore_encode_section_info): Likewise. - - * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/mips.h (ASM_OUTPUT_IDENT): Likewise. - - * mips/mips.md (movdi, movsi): Likewise. - - * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII): Likewise. - - * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog, - output_mi_thunk, output_toc): Likewise. - - * rs6000/rs6000.md (movsi): Likewise. - - * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. - - * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise. - - * v850/v850.c (print_operand, print_operand_address, - v850_encode_data_area): Likewise. - -2000-03-07 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.md (zero_extendsidi2): Always force operand - one to memory for mips16. - -Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. - (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. - (attribute_hash_list, type_hash_canon): hashcode is now unsigned. - (type_hash_lookup, type_hash_add, type_hash_list): Likewise. - (min_precision): Result is unsigned. - (add_double, neg_double, mul_double): Low word is unsigned. - (lshift_double, rshift_double, lrotate_double): Likewise. - (rrotate_double, div_and_round_double): Likewise. - (tree_floor_log2, compare_tree_int): New functions. - (preserve_rtl_expr_temps): New declaration. - * c-common.c (declare_hidden_char_array): Use compare_tree_int. - (decl_attributes): Use tree_log2 to find alignment. - Check for TREE_INT_CST_HIGH for format args. - (min_precision): Now unsigned. - Use tree_floor_log2. - (truthvalue_conversion): Delete long-disabled code. - * c-decl.c (finish_struct): Clean up tests on field width. - (finish_function): Use compare_tree_int. - * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. - * c-typeck.c (comptypes): Use tree_int_cst_equal. - (default_conversion, digest_init): Use compare_tree_int. - (build_binary_op): Use integer_all_onesp and compare_tree_int. - Fix type errors in forming masks. - * calls.c (initialize_argument_information): Use compare_tree_int. - * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. - * except.c (expand_eh_region_start_tree): Use compare_tree_int. - * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. - (store_field): Use compare_tree_int. - (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. - (expand_expr, case ARRAY_REF): Use compare_tree_int. - (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. - (do_store_flag): Use compare_tree_int. - * fold-const.c (encode, decode): Low part is always unsigned. - (force_fit_type, add_double, neg_double, mul_double): Likewise. - (lshift_double, rshift_double, lrotate_double): Likewise. - (rrotate_double, div_and_round_double, int_const_binop): Likewise. - (fold_convert): Use compare_tree_int. - (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. - (invert_truthvalue, case INTEGER_CST): Likewise. - (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. - * mkdeps.c (deps_dummy_targets): Make I unsigned. - * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. - (lshift_double, rshift_double, lrotate_double, rrotate_double): - Likewise. - * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. - (expand_end_case): Use compare_tree_int. - (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. - * stor-layout.c (mode_for_size_tree): Use compare_tree_int. - (layout_decl): Likewise. - (layout_record, layout_union): Make sizes unsigned. - (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. - (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. - * tree.c (struct type_hash): hashcode is unsigned. - (build_type_attribute_variant, type_hash_list): Likewise. - (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. - (attribute_hash_list, build_array_type, build_method_type): Likewise. - (build_complex_type): Likewise. - (real_value_from_int_cst): Remove unneeded casts. - (integer_all_onesp): Add casts. - (tree_floor_log2, compare_tree_int): New functions. - (build_index_type): Use tree_int_cst_sgn. - * varasm.c (assemble_variable): Use compare_tree_int. - -2000-03-06 Jason Merrill <jason@casey.cygnus.com> - - * cpphash.c (collect_expansion): Also catch ## at start of macro. - - * varasm.c (make_decl_rtl): Don't add a number to members of - local classes. - (make_function_rtl): Likewise. - -2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * gcse.c (compute_can_copy): Adjust if/else blocks from rth's - patch from 2000-01-28. - -2000-03-06 Clinton Popetz <cpopetz@cygnus.com> - - * config/sh/sh.c: (barrier_align): Handle a delay slot that is - filled with an insn from the jump target. - -2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x-protos.h (c4x_global_name): Constify char *. - (c4x_external_ref): Likewise. - * config/c4x/c4x.c (struct name_list): Likewise. - -1999-12-16 Ben Collins <bcollins@debian.org> - - * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth - argument to genmultilib. - * genmultilib: accept new MULTILIB_EXCLUSIONS option and output - the contents into the multilib.h header. - * gcc.c: Declare multilib_exclusions for the specs file. - (set_multilib_dir): Use it. - (print_multilib_info): Likewise. - * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option - to pass to genmultilib. - -2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * builtins.c (built_in_class_names, built_in_names): Constify a - char*. - - * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not - int. - (_mcleanup): Ensure value matches format specifier in sprintf. - - * cpphash.c (special_symbol): Don't needlessly cast away - const-ness. - - * cppinit.c (base_name): Delete unused prototype. - - * mkdeps.c (deps_init): Make definition K&R safe. - - * tree.h (built_in_class_names, built_in_names): Constify a - char*. - -2000-03-06 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept - floating point instructions for epilogue delay. - - * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs - to gas if it supports .register pseudo. - - * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to - LONG_DOUBLE_TYPE_SIZE if not defined. - Use MAX_LONG_DOUBLE_TYPE_SIZE instead of - LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. - * real.c: Likewise. - * gengenrtl.c: Likewise. - * print-rtl.c: Likewise. - * rtl.c: Likewise. - * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set - MASK_LONG_DOUBLE_128. - * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. - * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. - * config/sparc/linux64 (TARGET_DEFAULT): Likewise. - (SUBTARGET_SWITCHES): Define. - (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling - with -mlong-double-128. - (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. - (MAX_LONG_DOUBLE_TYPE_SIZE): Define. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. - (CC1_SPEC): Include -mlong-double-{64,128} as needed. - * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. - (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling - with -mlong-double-128. - (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. - (MAX_LONG_DOUBLE_TYPE_SIZE): Define. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. - * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, - TARGET_LONG_DOUBLE_128): Define. - * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. - * config/sparc/sparc.c (sparc_override_options): Disallow 64bit - long double on TARGET_ARCH64. - -2000-03-06 Mark Mitchell <mark@codesourcery.com> - - * function.c (free_temps_for_rtl_expr): Don't free slots - that have been pushed into a higher level. - - Revert this patch: - 2000-03-05 Mark Mitchell <mark@codesourcery.com> - -2000-03-05 Mark Mitchell <mark@codesourcery.com> - - * basic-block.h (ALLOCA_REG_SET): Remove. - (INITIALIZE_REG_SET): New macro. - * flow.c (update_life_info): Use it. - (calculate_global_regs_live): Likewise. - (propagate_block): Likewise. - * global.c (build_insn_chain): Likewise. - * haifa-sched.c (schedule_region): Likewise. - -2000-03-05 Stephane Carrez <stcarrez@worldnet.fr> - - * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer. - (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP. - (DWARF_ARANGES_PAD_SIZE): New define. - (output_aranges): Use it to pad the address range header. - (DWARF_ROUND): Fix for non power of 2 rounding. - -2000-03-05 Jason Merrill <jason@casey.cygnus.com> - - * mkdeps.c (deps_calc_target): Remove incorrect 'const'. - -2000-03-05 Mark Mitchell <mark@codesourcery.com> - - * tree.def (RTL_EXPR): Update documentation. - * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. - * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. - * function.c (preserve_rtl_expr_temp): New function. - (preserve_rtl_expr_temps): Likewise. - (preserve_rtl_expr_result): Use it. - - Revert this patch: - 2000-03-04 Mark Mitchell <mark@codesourcery.com> - -2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net> - - * regmove.c (copy_src_to_dest) Do not create src->dest move - for unchanging destination. - -2000-03-04 Mark Mitchell <mark@codesourcery.com> - - * function.h (struct sequence_stack): Remove rtl_expr. - (struct emit_staus): Likewise. - (seq_rtl_expr): Remove. - * tree.h (free_temps_for_rtl_expr): Don't declare. - (start_sequence_for_rtl_expr): Likewise. - * rtl.h (preserve_rtl_expr_result): Likewise. - * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr. - (start_sequence_for_rtl_expr): Remove. - (push_topmost_sequence): Don't save sequence_rtl_expr. - (pop_topmost_sequence): Remove comment about not restoring it. - (end_sequence): Don't set seq_rtl_expr. - (init_emit): Don't initialize it. - (mark_sequence_stack): Don't mark it. - (mark_emit_status): Likewise. - * except.c (protect_with_terminate): Use - start_sequence_for_rtl_expr, not start_sequence. - * expr.c (expand_expr, case RTL_EXPR): Don't call - preserve_rtl_expr_result or free_temps_for_rtl_expr. - * function.c (assign_stack_temp_for_type): Don't set rtl_expr. - (preserve_rtl_expr_result): Remove. - (free_temps_for_rtl_expr): Likewise. - (pop_temp_slots): Likewise. - (mark_temp_slot): Don't mark the rtl_expr. - * stmt.c (expand_start_stmt_expr): Use start_sequence, not - start_sequence_for_rtl_expr. - -2000-03-04 Zack Weinberg <zack@wolery.cumb.org> - - * mkdeps.c, mkdeps.h: New files. - * po/POTFILES.in: Add them. - * Makefile.in (LIBCPP_OBJS): Add mkdeps.o. - (cpplib.o, cppinit.o): Depend on mkdeps.h. - (mkdeps.o): New target. - - * cppfiles.c: Delete deps_output. - * cppinit.c: Include mkdeps.h. Delete known_suffixes, - OBJECT_SUFFIX, and base_name. - (cpp_cleanup): Use deps_free. Free ihash->name when clearing - the include hash. - (initialize_dependency_output): Use deps_init, - deps_add_target, deps_calc_target, and deps_add_dep. Remove - all the unnecessary string bashing. - (cpp_finish): Use deps_write. Remove an unnecessary nesting - level. - * cpplib.c (do_include): Use deps_add_dep. - * cpplib.h (struct cpp_reader): Replace deps_buffer, - deps_allocated_size, deps_size, deps_column members with - single pointer to a struct deps. Delete prototype of - deps_output. - - * cppinit.c: Fix thinko in previous patch. - -Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed. - * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise. - (mode_for_size_tree): New function. - (layout_decl, layout_type): Call it and clean up BLKmode checks. - * tree.h (mode_for_size_tree): New declaration. - - * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused. - -2000-03-04 Jason Merrill <jason@casey.cygnus.com> - - * stmt.c (is_body_block): Move... - * dwarfout.c, dwarf2out.c: ...from here. - * tree.h: Declare it. - * emit-rtl.c (remove_unncessary_notes): Don't remove the body block. - * final.c (final_start_function): Do call remove_unnecessary_notes - when scheduling. - -2000-03-03 Zack Weinberg <zack@wolery.cumb.org> - - * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX. - - * cpplib.h (_dollar_ok): New macro. - (is_idchar, is_idstart): Use it. - (IStable): Rename to _cpp_IStable. Declare it const if - gcc >=2.7 or C99. Delete all references to FAKE_CONST. - (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace, - is_space): Update for renamed IStable. - - * cppinit.c: Delete all references to FAKE_CONST and CAT - macros. Define init_IStable as empty macro if gcc >=2.7 or - C99. Change TABLE() to ISTABLE and hardcode name of table. - (cpp_start_read): Don't change the IStable based on - dollars_in_ident. - - * cpphash.c (unsafe_chars): Add pfile argument. All callers - changed. Handle '$' for char1 correctly. - * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers. - - * cppexp.c (tokentab2): Make const. - (cpp_lex): Make toktab const. - * cppinit.c (include_defaults_array): Make const. - (initialize_standard_includes): Make default_include const. - -2000-03-03 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning. - (dwarf2out_decl): Functions can now have DECL_IGNORED_P. - (gen_decl_die): Likewise. - * dwarfout.c (dwarfout_file_scope_decl): Likewise. - (output_decl): Likewise. - - * varasm.c (make_function_rtl): If we change the name used in the - rtl, update DECL_ASSEMBLER_NAME accordingly. - (make_decl_rtl): Likewise. - - * toplev.c (rest_of_compilation): Tweak formatting. - - * toplev.c (rest_of_compilation): find_loop_tree_blocks before - remove_unnecessary_notes. - (debug_ignore_block): New fn. - * toplev.h: Declare it. - * emit-rtl.c (remove_unncessary_notes): Call it. - * dwarf2out.c (dwarf2out_ignore_block): New fn. - * dwarf2out.h: Declare it. - * final.c (final_start_function): Don't call remove_unnecessary_notes - if we did insn scheduling. - -2000-03-03 Zack Weinberg <zack@wolery.cumb.org> - - * cppinit.c (cpp_handle_option): Set opts->pedantic directly. - * cpplib.h: Delete SET_CPP_PEDANTIC. - -Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if - result is a RECORD_TYPE. - -2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk> - - * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added. - -2000-03-03 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer - addition over compliments over shifts. - -Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine_note_use): Handle return register USEs. - REG case: Handle multi-hard-register hard regs. - -Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * md.texi: Document use of '*' in insn pattern name. - -2000-03-03 Jason Merrill <jason@casey.cygnus.com> - - * calls.c (special_function_p): operator new may not be malloc-like. - - * gcse.c (dump_hash_table): Really fix error in last change. - -2000-03-02 Denis Chertykov <denisc@overta.ru> - - * avr.c (print_operand): Use print_operand_address instead of - output_addr_const. - * avr/libgcc.S: Cleanup code. - -2000-03-02 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_set_const_1): Also try c + small constant. - -2000-03-02 Mark Mitchell <mark@codesourcery.com> - - * tree.h (TYPE_ALIGN_UNIT): New macro. - -2000-03-02 Clinton Popetz <cpopetz@cygnus.com> - - * i386.c: (constant_call_address_operand): Reject CONST_INT. - -2000-03-02 Jason Merrill <jason@casey.cygnus.com> - - * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set - for the buffer. - (SET_CPP_PEDANTIC): New macro. - * cpplib.c (do_include): Don't bother checking system_header_p. - (do_warning, do_ident, do_assert, do_unassert): Likewise. - * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC. - - * function.h (struct expr_status): Add x_arg_space_so_far. - (arg_space_so_far): New macro. - * expr.c (init_expr): Initialize it. - * calls.c (emit_call_1): Reset it. - (compute_argument_block_size, expand_call): Use it. - (expand_call, store_one_arg): Increment it. - -Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * varasm.c (output_constant): Strip off a CONVERT_EXPR to - a UNION_TYPE. - -2000-03-02 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (cpp_read_file): New function. - - * cpphash.c (collect_expansion): Make sure to reset last_token - to NORM when we hit a string. Handle trailing whitespace - properly when the expansion is empty. - (create_definition): Disable line commands while parsing the - directive line. - (dump_definition): If pfile->lineno == 0, output a line - command ahead of the dump, and add a trailing newline. - - * cppinit.c (append_include_chain): Add fifth argument, which - indicates whether or not system headers are C++ aware. - (initialize_standard_includes): New function, - broken out of read_and_prescan. Pass 'cxx_aware' value from - the include_defaults_array on to append_include_chain. - (dump_special_to_buffer): Const-ify char array. - (builtin_array): Don't dump __BASE_FILE__. - (cpp_start_read): Use cpp_read_file. Reorder code for - clarity. Don't output line commands here for -D/-A/-U - switches. Don't call deps_output for files included with - -include or -imacros. - - * cpplib.c (do_define): Don't pay any attention to the second - argument. - (cpp_expand_to_buffer): Disable line commands while scanning. - (output_line_command): Work in the file buffer. - * cpplib.h: Remove no_record_file flag from struct cpp_reader. - Fix formatting of comments. Prototype cpp_read_file. - -Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink - reference the language-equivalent of sizetype. - * c-typeck.c (comptypes): Treat sizetype like its language equivalent. - * fold-const.c (size_binop, size_diffop): Put back checks. - * gcse.c (dump_hash_table): Fix minor error in last change. - * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype. - Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of - all sizetypes. - -Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (expand_call) Do not attempt to combine stack adjustments - with inhibit_defer_pop set. - -2000-03-01 Mark Mitchell <mark@codesourcery.com> - - * stor-layout.c (layout_decl): Allow front-ends to explicitly set - the DECL_SIZE for a FIELD_DECL. - -2000-03-01 Bruce Korb <bkorb@gnu.org> - - * fixinc/inclhack.tpl: remove unused symlinks - * fixinc/README: GCC Maintainer info - * fixinc/inclhack.sh: regen - * fixinc/fixincl.sh: regen - -2000-03-01 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (collect_expansion): Trim trailing white space - from macro definitions, but don't go past the last insertion - point. - -Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (mulqi3): New pattern. - -2000-02-29 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New - token types. - (struct cpp_reader): Add parsing_if_directive and - parsing_define_directive flags. - (struct cpp_options): Remove output_conditionals flag. - (check_macro_name): Delete prototype. - - * cpphash.h (struct macrodef): Delete. - (struct reflist): Separate from struct definition. - (struct definition): Remove unused fields. Add column number. - (create_definition): Returns a DEFINITION *. Takes a - cpp_reader * and an int. - - * cpphash.c (SKIP_WHITE_SPACE): Delete. - (PEEKC): Copy defn from cpplib.c. - (rest_extension, REST_EXTENSION_LENGTH): Delete. - (struct arg): New. - (struct arglist): Simplify. - (collect_expansion): Rewrite. Get tokens by calling - cpp_get_token. Add more error checking. - (collect_formal_parameters): New function, broken out of - create_definition and reworked to use get_directive_token. - (create_definition): All real work is now in collect_expansion - and collect_formal_parameters. do_define handles finding the - macro name. Return a DEFINITION, not a MACRODEF. - (macroexpand): Replace bcopy with memcpy throughout. Replace - character-at-a-time copy loop with memcpy and pointer increments. - (compare-defs): d1->argnames / d2->argnames might be null. - - * cpplib.c (copy_rest_of_line): Delete function. - (skip_rest_of_line): Do all the work ourselves. - (skip_string): New function. - (parse_string): Use skip_string. - (get_macro_name): New function. - (check_macro_name): Delete. - (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q. - (cpp_skip_hspace): Use CPP_BUMP_LINE. - (handle_directive): ICE if we're called on a macro buffer. - (do_define): Determine macro name and type (funlike/objlike) - here. Expunge all uses of MACRODEF. - (cpp_push_buffer): Set line_base to NULL. - (do_undef, read_line_number): Don't worry about getting a POP token. - (eval_if_expression): Set/reset parsing_if_directive around - cpp_parse_expr. Don't clear only_seen_white. - (skip_if_group): Remove output_conditionals logic. Use - skip_rest_of_line. - (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE - tokens under appropriate conditions. - (cpp_unassert): Call do_unassert not do_assert. Oops. - - * cppexp.c (parse_defined): New function, break out of - cpp_lex. - (cpp_lex): We now get CPP_ASSERTION tokens and can check them - ourselves, with cpp_defined. - * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput. - - * gcc.dg/20000209-2.c: Turn off -pedantic-errors. - * gcc.dg/strpaste-2.c: New. - -2000-02-29 Mark Mitchell <mark@codesourcery.com> - - * fold-const.c (size_binop): Don't asert inputs are the same and - have TYPE_IS_SIZETYPE set. - (size_diffop): Likewise. - -2000-02-29 Jason Merrill <jason@casey.cygnus.com> - - * dwarfout.c (output_block): Output abstract blocks even if they - don't have TREE_ASM_WRITTEN set. - - * calls.c (emit_library_call): Check for null REG. - -2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * c-decl.c (current_function_decl): Move to toplev.c. - (init_decl_processing): Don't add current_function_decl as a ggc - root here. - * dbxout.c (dbxout_symbol): Change return type to int. - (dbxout_symbol_location, dbxout_syms): Likewise. - (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without - any locals. Use current_function_func_begin_label if set. - * dbxout.h (dbxout_symbol, dbxout_syms): Change return type. - * dwarf2out.c (dwarf2out_begin_prologue): Set - current_function_func_begin_label. - * final.c (final_start_function): Reset it. - * toplev.c (current_function_decl): Define it here. - (current_function_func_begin_label): New variable. - (main): Add both as ggc roots. - * tree.h (current_function_func_begin_label): Declare. - -Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcse.c: Cleanups throughout: mostly white-space, but also - some minor rearrangement of code. - -Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com) - - * calls.c (emit_library_call): Do not abort if FUNCTION_ARG - returns a PARALLEL. Use emit_group_load and use_group_regs - as needed. - (emit_library_call_value): Similarly. - - * pa/t-pa: Use quadlib.c instead of quadlib.asm. - * pa/quadlib.asm: Remove. - * pa/quadlib.c: New file. - - * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format. - * configure: Rebuilt. - -2000-02-29 Philip Blundell <pb@futuretv.com> - - * config/arm/conix-elf.h: New file. - * configure.in (arm*-*-conix*): New configuration. - * configure: Regenerate. - -2000-02-28 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (gen_block_die): Output abstract blocks even if they - don't have TREE_ASM_WRITTEN set. - -Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * Eliminate DECL_FIELD_SIZE. - * builtins.c (built_in_class_names, built_in_names): New variables. - * c-decl.c (finish_struct): Set specified size in DECL_SIZE. - * expr.c (expand_expr, case COMPONENT_REF): Get field size from - DECL_SIZE, not DECL_FIELD_SIZE. - * print-tree.c (print_node): Remove code that prints extra blank - lines in some cases. - Properly handle inline and builtin function cases. - * stor-layout.c (layout_decl): Get specified size from DEC_SIZE. - * tree.h (built_in_class_named, built_in_names): New declarations. - (union tree_decl): Rename internal unions to u1 and u2 and change - some of their components. - Add new field built_in_class. - (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE): - Reflect above changes. - (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise. - (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted. - * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE. - (encode_field_decl): Likewise; also remove obsolete test for bitfield. - -2000-02-28 Dmitri Makarov <dim@windriver.com> - - * extend.texi: Document ARM's support for long/short calls. - - * invoke.texi: Document ARM's -mlong-calls command line switch. - - * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. - (arm_encode_call_attribute): Add prototype. - (arm_set_default_type_attribute): Add prototype. - (arm_strip_name_encoding): Add prototype. - - * config/arm/arm.c (arm_init_cumulative_args): replace - initialisation og 'long_calls' field with initialisation of - 'call_cookie' field. - (enum arm_pragma_enum): New enum. - (arm_pragma_long_calls): New static variable. - (arm_process_pragma): Also process "#pragma long_calls_off". - (arm_valid_type_attribute_p): Accept short_call attribute. - (arm_comp_type_attributes): Check long/short call attributes. - (arm_encode_call_attribute): New function: Encode long_call - or short_call attribute in function name. - (arm_set_default_type_attributes): New function: Assign - default attributes to newly defined type. - (current_file_function_operand): New function: Return true if - the symbol is a function which has already been compiled. - (arm_is_longcall_p): New function: Return true if the - indicated function should be called via a long call. - (arm_get_strip_length): New function. Returns number of - prefix characters to be stripped from a function's name. - (arm_strip_name_encoding): New function. Strip prefix characters - from a function's name. - - * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field - with 'call_cookie'. - (SHORT_CALL_FAG_CHAR): Define. - (LONG_CALL_FAG_CHAR): Define. - (ENCODED_SHORT_CALL_ATTR_P): Define. - (ENCODED_LONG_CALL_ATTR_P): Define. - (ARM_NAME_ENCODING_LENGTHS): Define. - (STRIP_NAME_ENCODING): Define. - (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. - (ARM_ENCODE_CALL_TYPE): Define. - (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. - (ARM_DECLARE_FUNCTION_SIZE): Define. - (SET_DEFAULT_TYPE_ATTRIBUTES): Define. - - * config/arm/arm.md (call): Call arm_is_longcall_p to decide - if a long call is needed. - (call_value): Ditto. - (call_symbol): Ditto. - - * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of - ARM_DECLARE_FUNCTION_SIZE. - - * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. - (SUBTARGET_NAME_ENCODING_LENGTHS): Define. - (ARM_STRIP_NAME_ENCODING): Undefine. - (STRIP_NAME_ENCODING): Undefine. - (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. - (ASM_DECLARE_FUNCTION_NAME): Ditto. - (ASM_OUTPUT_COMMON): Ditto. - (ASM_DECLARE_OBJECT_NAME): Ditto. - - * config/arm/pe.c (arm_dllexport_name_p): Check for - ARM_PE_FLAG_CHAR. - (arm_dllimport_name_p): Ditto. - (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. - (arm_mark_dllimport): Ditto. - -Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. - -2000-02-28 Mark Mitchell <mark@codesourcery.com> - - * xcoffout.c (xcoffout_begin_function): Fix typo in previous change. - -2000-02-28 Zack Weinberg <zack@wolery.cumb.org> - - * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE. - * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if - NO_BUILTIN_WCHAR_TYPE is not defined. - (CPP_WCHAR_TYPE): Delete. - * cccp.c (main): Don't change wchar_type if cplusplus. - (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE. - -2000-02-28 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long". - -Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com> - - * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define. - (ASM_WEAKEN_LABEL): Define. - -Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz> - - * expr.c (store_constructor): Do not emit USE. - * rtl.h (stupid_life_analysis): Remove. - -Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * function.c (number_blocks): Reset next_block_index based on - what debugging format is used, not what is defined. - - * lcm.c: Minor reformatting throughout. - (reg_dies, reg_becomes_live): Properly handle multiple hard regs. - - * toplev.c (rest_of_compilation): Account for time in - optimize_mode_switching. - - * jump.c (jump_optimize_1): Don't call delete_barrier_successors - if only marking labels. - -Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (expand_call): Attempt to combine stack adjustments with - pending stack adjustments. - -Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * loop.c (reg_in_basic_block_p): Don't abort when falling through - to the end of the function. - -2000-02-27 Mark Mitchell <mark@codesourcery.com> - - * emit-rtl.c (remove_unncessary_notes): Remove notes for empty - blocks. - * final.c (next_block_index): Remove. - (max_block_depth): Likewise. - (pending_blocks): Likewise. - (init_final): Don't initialize them. - (final_start_function): Don't set next_block_index. Set up - BLOCK_NUMBER. - (final_scan_insn): Use BLOCK_NUMBER, not next_block_index. - * function.h (number_blocks): New function. - * function.c (get_block_vector): New function. - (identify_blocks): Use it. - (reorder_blocks): Set NOTE_BLOCK. - (number_blocks): New function. - * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag. - * tree.h (BLOCK_NUMBER): New macro. - (tree_block): Add block_num field. - * dbxout.c (next_block_number): Remove. - (dbxout_init): Don't set it. - (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN - set. Use BLOCK_NUMBER, rather than next_block_num, to determine - block numbers. - * toplev.c (rest_of_compilation): Always call - find_loop_tree_blocks. Fix indentation. - * dwarf2out.c (next_block_number): Remove. - (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, - to determine block numbers. - (gen_inlined_subroutine_die): Likewise. - (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set. - (decls_for_scope): Don't increment next_block_number. - * dwarfout.c (next_block_number): Remove. - (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, - to determine block numbers. - (output_inlined_subroutine_die): Likewise. - (output_block): Only output blocks that have TREE_ASM_WRITTEN set. - (output_decls_for_scope): Don't increment next_block_number. - * sdbout.c (next_block_number): Remove. - (sdbout_block): Use BLOCK_NUMBER. - (sdbout_begin_block): Simplify. - * xcoffout.c (next_block_number): Remove. - (xcoffout_block): Use BLOCK_NUMBER, not next_block_number. - (xcoffout_begin_block): Don't set next_block_number. - (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not - next_block_number. - -Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * builtins.c (c_strlen): Use size_diffop and return ssizetype value. - (expand_builtin_strcpy): Pass correct type to size_binop. - (expand_builtin_strcmp): Likewise. - Clean up conditional structure. - * c-decl.c (init_decl_processing): Don't call set_sizetype twice. - (complete_array_type): Don't use size_binop for MAXINDEX. - * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. - (c_sizeof_nowarn, c_size_in_bytes): Likewise. - (c_alignof): Use size_one_node. - (build_unary_op): Pass arg of proper type to size_binop. - (really_start_incremental_init, push_init_level): Use sizetype for - constructor{,_bit,_unfilled}_index. - (pop_init_label, output_init_element): Likewise. - (output_pending_init_elements, process_init_element): Likewise. - * calls.c (compute_argument_block_size): Field VAR is ssizetype. - * expr.c (store_expr): Use size_int. - (store_constructor): Use proper types for size_binop args. - (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. - (expand_expr_unaligned): Likewise. - (string_contant): Return object of sizetype. - * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. - (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. - (ARGS_SIZE_TREE): Pass proper types to size_binop. - * fold-const.c (int_const_binop): Refine when size_int is called. - (fold_convert): Likewise. - (size_int_wide): Rework to take KIND as arg, only take low order - bits, handle new sizetype_tab datatype, and chain entries in - size_table. - (size_int_type_wide): New function. - (size_binop): Validate types of arguments. - (ssize_binop): Deleted. - (size_diffop): New function. - (extract_muldiv): Only fold division into multiplication for sizetypes. - * function.c (assign_parms): Use size_diffop and make sure - VAR field is of ssizetype; also pass proper type to size_binop. - (locate_and_pad_parm, pad_to_arg_alignment): Likewise. - (round_down): Deleted from here. - * store-layout.c (sizetype_tab): Now an array. - (sizetype_set, early_root_list): New variables. - (variable_size): Use size_one_node. - (round_up): Pass proper type to size_binop. - (round_down): Moved to here and corrected as above. - (layout_record): Pass proper arg types to size_binop. - (layout_type): Likewise. - If sizetype_set is zero, record the type just laid out. - (make_unsigned_type): Don't call set_sizetype; - (make_signed_type): Likewise; also, call fixup_signed_type. - (initialize_sizetypes): New function. - (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and - set name of bitsizetype to "bit_size_type". - Fix up type of sizes of all types made before call. - * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. - * tree.c (fix_sizetype): Deleted. - (build_common_tree_nodes): Call initialize_sizetypes. - (build_common_tree_nodes_2): Don't call fix_sizetype. - * tree.h (TYPE_IS_SIZETYPE): New macro. - (initialize_sizetype): New declaration. - (enum size_type_kind): New type. - (struct sizetype_tab): Deleted. - (sizetype_tab): Now array; adjust sizetype macros. - (size_diffop, size_int_type_wide): New functions. - (size_int_wide): Change number of args and type; access macros changed. - (ssize_int, sbitsize_int): New macros. - * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. - (ROUND_TYPE_SIZE_UNIT): New macro. - -2000-02-27 Zack Weinberg <zack@wolery.cumb.org> - - * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *. - -Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long): - Mark as possibly unused. - - * cse.c (cse_insn): Delete dead code involving tablejump. - Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. - - * Makefile.in (libcpp.a): Start by deleting it. - -2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * cpplib.h (enum file_change_code): Added rename_file. - * cpplib.c (do_line): If a filename is given, set file_change to - rename_file. - (output_line_command): If file_change is rename_file, always - output a # directive with the file name. - - * cpplib.c (do_pragma): Accept #pragma without consecutive token. - -2000-02-26 Mark Mitchell <mark@codesourcery.com> - - * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE - when copying a PARM_DECL or RESULT_DECL. - -2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fix-header.c (recognized_function): Also fix prototypes for - functions taking "void". - -2000-02-26 Geoff Keating <geoffk@cygnus.com> - - * reload1.c (do_output_reload): Check reg_reloaded_valid before - looking at reg_reloaded_contents. - -2000-02-26 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (STMP_FIXINC): New toggle. - (LIBGCC2_DEPS): Delete all references. - (stmp-headers): Delete target. All references either deleted - or changed to stmp-int-headers. - (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO. - (LIBCPP_OBJS): Take out cppalloc.o. - (cppalloc.o): Delete target. - (stmp-int-hdrs): Depend on $(STMP_FIXINC). - (gen-protos, fix-header): Link with libiberty.a. - * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC - to empty. - - * configure.in: Remove refs to strerror. - * acconfig.h: Take out NEED_DECLARATION_STRERROR. - * system.h: Take out strerror stanza. - - * cpperror.c (my_strerror): Delete function. - (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror. - * cppmain.c (main): Call xmalloc_set_program_name first thing. - * cppalloc.c: Delete file. - * gen-protos.c: Don't provide xrealloc. - - * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use - xstrerror throughout. - -2000-02-26 Bruce Korb <bkorb@gnu.org> - - * fixinc/inclhack.def (undefine_null): the bypass pattern needs to - match for DOS headers, too. - * fixinc/inclhack.sh,fixincl.x: Regenerate. - -2000-02-26 Geoff Keating <geoffk@cygnus.com> - - * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default - is right for most ELF targets. - * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. - Let the default file use %U properly. - * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the - default. - - * config/fp-bit.c (pack_d): Properly handle rounding of denormal - numbers. - -Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * toplev.c (documented_lang_options): Correct spelling error. - (decode_d_option, decode_f_option, main): Likewise. - - * toplev.c (print_time): Avoid SIGFPE when all_time is zero. - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at - to tell assembler it is permitted to expand large constants. - -2000-02-25 Mumit Khan <khan@xraylith.wisc.edu> - - * protoize.c: (AUX_INFO_SUFFIX): New macro. - (aux_info_suffix): Use. - (SAVE_SUFFIX): New macro. - (save_suffix): Use. - (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null. - (gen_aux_info_file): Use aux_info_suffix instead of ".X". - (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames. - - * invoke.texi (Running Protoize): Update documentation. - -2000-02-25 Mark Elbrecht <snowball3@bigfoot.com> - - * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines. - -2000-02-25 John Wehle (john@feith.com) - - * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to. - -2000-02-25 Anthony Green <green@cygnus.com> - - * toplev.c (rest_of_compilation): Rebuild jump labels if - combine_instructions has created a new direct jump. - * combine.c (try_combine): Add new_direct_jump_p argument. Set it - when appropriate. - (combine_instructions): Call try_combine with new argument. - Return non-null value when new direct jump instruction is created. - * rtl.h: combine_instructions returns an int. - -Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Replace the PATTERN of the insn with an new - jump when changing a computed jump into a jump to a known - target. - -Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk> - - * resource.c (mark_referenced_resources): Changed use SET_DEST (...) - to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER. - - * i386.md (define_expand "clrstrsi"): Fix typo. - -Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com> - - * rtl.texi: Fix typo. - -Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by - UNITS_PER_WORD. Change caller initial_elimination_offset. - (rounded_frame_size): Take into account that argument pushed has - changed. Fix TARGET_ALIGN_DOUBLE problem. - -2000-02-25 Geoff Keating <geoffk@cygnus.com> - - * haifa-sched.c (schedule_block): Explain the real reason - we delete REG_SAVE_NOTEs on the first insn of a block. - Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP. - -2000-02-24 Mark Mitchell <mark@codesourcery.com> - - * input.h (push_srcloc): New function. - (pop_srcloc): Likewise. - * toplev.c (push_srcloc): Define it. - (pop_srcloc): Likewise. - -2000-02-24 Richard Henderson <rth@cygnus.com> - - * flow.c (life_analysis): When collecting reg info, clear - regs_ever_live. - -Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - Fix bug exposed by reload.c no longer rounding the frame - size to BIGGEST_ALIGNMENT: - * sh.c (rounded_frame_size): New function. - (sh_expand_prologue, sh_expand_epilogue): Use it. - (initial_elimination_offset): Likewise. - -Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change: - * sh-protos.h (sh_need_epilogue): Declare. - * sh.c (sh_need_epilogue_known): New static variable. - (sh_need_epilogue): New function. - (function_epilogue): Clear need_epilogue_known. - * sh.md (return): Split into expander / insn pattern. - Make the expander conditional on ! sh_need_epilogue (). - -2000-02-24 Nathan Sidwell <nathan@codesourcery.com> - - * machmode.h (get_mode_alignment): Declare. - (GET_MODE_ALIGNMENT): Call it. - * stor-layout.c (get_mode_alignment): New function. Make - sure alignment is always power of 2. - -2000-02-23 Zack Weinberg <zack@wolery.cumb.org> - - * i386.h: Remove useless definition of "I386" and misleading - comment above it. - -2000-02-23 Zack Weinberg <zack@wolery.cumb.org> - - * tree.h (TREE_SET_PERMANENT): New macro. Document conditions - under which TREE_PERMANENT will be set. - * tree.c (make_node, copy_node, make_tree_vec, tree_cons, - build1): Use TREE_SET_PERMANENT. - * print-tree.c (print_node): Don't report value of - TREE_PERMANENT if ggc_p is true. - - * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to - decide whether to give a type a new alias set. - * objc/objc-act.c (build_objc_string_object): Never copy the string. - * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective - of value of 'obstack'. - - -2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (c4x_process_after_reload): Split all insns. - -2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. - * cpplib.c (cpp_get_token): Produce them. - * cppexp.c (cpp_lex): Handle them. - -2000-02-23 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c (arm_comp_type_attributes): Simply and - comment tests on type attributes. - -Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * final.c (shorten_branches): Make value passed to LOOP_ALIGN - conform to documentation. - * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align - to check for special cases. - * sh-protos.h (sh_loop_align): Declare. - * sh.c (sh_loop_align): Define. - -2000-02-22 Andrew Haley <aph@cygnus.com> - - * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas. - (SIZE_TYPE): Is 32 bits when using -mgp32. - (PTRDIFF_TYPE): Ditto. - -Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * diagnostic.c (init_output_buffer): Handle case of null PREFIX. - -2000-02-23 Zack Weinberg <zack@wolery.cumb.org> - - * config/i386/i386.h: If IN_TARGET_LIBS is defined, make - BIGGEST_FIELD_ALIGNMENT a constant. - -2000-02-21 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (output_line_info): Put the marker for the end of - the line number info at the actual end. - (gen_struct_or_union_type_die): Use decl_function_context - to check for local classes. - * dwarfout.c (output_type): Likewise. - -Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) - - * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference - for arguments with a mode, but no type. - (FUNCTION_ARG_CALLEE_COPIES): Similarly. - * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm. - * pa/long_double.h: New file. - * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11 - both have 128bit wide long doubles. - * configure: Rebuilt. - -2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * defaults.h (ASM_OUTPUT_ASCII): Constify a char*. - - * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain, - fixup_reorder_chain, skip_insns_between_block): Add static prototypes. - (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS. - - * haifa-sched.c (rank_for_schedule): Don't cast away const-ness. - - * integrate.c (compare_blocks, find_block): Likewise. - - * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2. - - * rtl.h (set_file_and_line_for_stmt): Constify a char*. - - * stmt.c (stmt_status, set_file_and_line_for_stmt, - expand_asm_operands): Likewise. - -Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com> - - * predict.c (estimate_probability): Added the pointer heuristic to - the collection of static branch predictors. - -2000-02-21 Catherine Moore <clm@cygnus.com> - - * config/mips/mips.h (ASM_SPEC): Add -mfix700. - * invoke.texi (-mfix7000): Document. - -2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> - - * diagnostic.c (init_output_buffer): Make it possible to output at - least 32 characters if we're given a too long prefix. - -2000-02-20 Mark Mitchell <mark@codesourcery.com> - - * varasm.c (initializer_constant_valid_p): Call - lang_expand_constant to simplify the constant. - -2000-02-20 Bruce Korb <bkorb@gnu.org> - - * fixinc/inclhack.def(stdio_va_list): - typedef needs to be disabled. - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -2000-02-20 Geoff Keating <geoffk@cygnus.com> - - * print-rtl.c (print_rtx): Don't print addresses when - flag_dump_unnumbered. - -2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sparc.c (sparc_output_scratch_registers): Mark parameter with - ATTRIBUTE_UNUSED. - (sparc_va_arg, sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Cast value to unsigned in - comparison. - (sparc_emit_float_lib_cmp): Remove unused variable `cmp'. - - * sparc.md: Add default case in switch. - -2000-02-19 Richard Henderson <rth@cygnus.com> - - * c-typeck.c (add_pending_init): Don't abort for multiple - fields at the same offset. - (pending_init_member): Test the correct member. - -2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node) - instead of SImode. - (start_catch_handler) : Same. - -2000-02-19 Brad Lucier (lucier@math.purdue.edu) - - * Makefile.in: Have flow.o depend on $(EXPR_H) - -Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * c-common.c (decl_attributes): Set DECL_SIZE_UNIT. - * c-decl.c (duplicate_decls, finish_enum): Likewise. - (finish_decl): Remove -Wlarger-than code from here. - * flags.h (id_clash_len): Now int. - (larger_than_size): Now HOST_WIDE_INT. - * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed. - Clean up checking to see if in table. - (make_bit_field_ref): Remove extra parm to bitsize_int. - * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT. - * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT. - * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size - and for computing size of decl. - * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT. - Move -Wlarger-than code to here. - (layout_record): Remove extra arg to bitsize_int. - Set TYPE_BINFO_SIZE_UNIT. - (layout_union): Remove extra arg to bitsize_int. - Use proper type for size of QUAL_UNION. - (layout_type): Remove extra arg to bitsize_int. - * toplev.c (id_clash_len): Now int. - (larger_than_size): Now HOST_WIDE_INT. - (decode_W_option): Clean up id-clash and larger-than- cases. - * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts. - (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined. - * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New. - (struct tree_decl): New field size_unit. - (size_int_wide): No HIGH operand; NUMBER is now signed. - (size_int_2): Deleted. - (size_int, bitsize_int): Don't use it and rework args. - * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT. - -Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com) - - * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call. - -2000-02-18 Geoff Keating <geoffk@cygnus.com> - - * invoke.texi (Warning Options): Add an explanation of why - you might want the -Wfloat-equal flag. - -Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. - * cppinit.c (new_pending_define): Add cast to avoid warning. - * expmed.c (extract_bit_field): Likewise. - * flow.c (enum reorder_skip_type): New type. - (skip_insns_between_blcok): New it. - Rework to avoid warning about possibly undefined variable. - * function.c (assign_parms): Make thisparm_boundary unsigned. - * genrecog.c (write_switch): Cast XWINT result to int. - * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. - * mips-tfile.c (init_file): Make two versions of FDR intializer: - one for MIPS and one for Alpha. - (get_tag, copy_object): Add casts to avoid warnings. - * optabs.c (init_one_libfunc): Cast NAME to (char *). - * reload.c (find_reloads): Make TYPE enum reload_type. - * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". - * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. - * varasm.c (compare_constant_1): Add cast to avoid warning. - * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC - to (char *). - (alpha_expand_unaligned_load, alpha_expand_unaligned_store): - Cast switch operand of size to int. - (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. - * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort - in unhandled case. - -2000-02-18 Nick Clifton <nickc@cygnus.com> - - * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate - anything for an alignment of zero. - - * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate - anything for an alignment of zero. - -2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> - - * gcc.texi (Bug Reporting): Refer to bugs.html. - (Bug Lists): Likewise. - * system.h (GCCBUGURL): New preprocessor define. - * rtl.c (fancy_abort): Use it. - * gcc.c (main): Likewise. - -2000-02-18 Richard Henderson <rth@cygnus.com> - - * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove. - (life_analysis_1): Subsume into ... - (life_analysis): ... here. Force PROP_REG_INFO off after reload. - Use update_life_info for the relaxation. - (update_life_info): Update REG_BASIC_BLOCK for registers live on - entry and regs_live_at_setjmp. - (set_noop_p): Simplify. - (notice_stack_pointer_modification_1): Renamed from s/_1//. - (record_volatile_insns): Split into ... - (delete_noop_moves): ... here, - (notice_stack_pointer_modification): ... here, - (insn_dead_p): ... and here. - (propagate_block): Don't query INSN_VOLATILE. - (mark_used_regs): Mind !PROP_REG_INFO. - * toplev.c (rest_of_compilation): Call mark_constant_function here, - not in life_analysis. - -Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com) - - * loop.c (canonicalize_condition): New function, - broken out of get_condition. - (get_condition): Use it. - * expr.h (canonicalize_condition): Prototype it. - - * tree.h (tree_int_cst_msb): Declare. - * tree.c (tree_int_cst_msb): New function. - -2000-02-17 Mark Mitchell <mark@codesourcery.com> - - * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt - isn't set. - - * invoke.texi (-fmessage-length=n): Document. - -2000-02-17 Jason Merrill <jason@casey.cygnus.com> - - * bitmap.c (bitmap_operation): Don't leak bitmap elements. - -2000-02-17 Mark Mitchell <mark@codesourcery.com> - - * function.c (thread_prologue_and_epilogue_insns): Put a line note - after the prologue. - -2000-02-17 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.c: Replace includes of system headers with - #include "system.h". - -2000-02-16 Richard Henderson <rth@cygnus.com> - - * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]: - Add crtbeginS.o and crtendS.o. - * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o. - (ENDFILE_SPEC): Use crtendS.o. - * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets. - - * alpha/crtbegin.asm (__do_frame_takedown): Merge into ... - (__do_global_dtors_aux): ... here. Call __cxa_finalize if - shared and present. - (__dso_handle): New variable. - * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime - bias to __CTOR_END__. - -2000-02-16 Richard Henderson <rth@cygnus.com> - - * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T). - -Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * longlong.h (__clz_tab): Declare as static to match definition. - -2000-02-16 Mark Elbrecht <snowball3@bigfoot.com> - - * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h. - (XREF_FILE_NAME): Define. - - * i386/djgpp.h (DATA_SECTION_ASM_OP): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - (IDENT_ASM_OP): Define. - (TEXT_SECTION_ASM_OP): Define. - (CPP_SPEC): Define. - (CTORS_SECTION_ASM_OP): Define. - (CTOR_SECTION_FUNCTION): Use it. - (DTORS_SECTION_ASM_OP): Define. - (DTOR_SECTION_FUNCTION): Use it. - -2000-02-16 Zack Weinberg <zack@wolery.cumb.org> - - * reg-stack.c (emit_swap_insn): Do not put a new insn before a - NOTE_BASIC_BLOCK. - - * flow.c (dump_regset, debug_regset, dump_bb, debug_bb, - debug_bb_n): New functions. - (dump_flow_info, print_rtl_with_bb): Use dump_regset. - * basic-block.h: Prototype new functions. - -Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru> - - * configure.in: Add support for avr target. - * configure: Rebuilt. - - * invoke.texi: Add AVR invocation docs. - * install.texi: Add information about AVR. - * md.texi: Add AVR constraint letters description. - * extend.texi: Add description for AVR specific attributes. - -2000-02-16 Jason Merrill <jason@casey.cygnus.com> - - * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C". - -2000-02-16 Nick Clifton <nickc@cygnus.com> - - * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw. - (make_insn_raw): Move RTL check here. - -2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * version.c: Include gansidecl.h and version.h. - - * version.h: Wrap entire file in macro __GCC_VERSION_H__. - - * configure.in (gcc_version): When setting, narrow search to - lines containing `version_string'. - - * Makefile.in (mainversion): Likewise. - (GCC_H): New variable. - (gcc.h): Delete target. - (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h. - (version.o): Depend on version.h. - (dbxout.o): Don't depend on gcc.h. - -Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com> - Michael Meissner <meissner@cygnus.com> - - * md.texi (Simple Constraints): Add item about whitespace. - * genoutput.c (strip_whitespace): New. - (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call - strip_whitespace for constraints. - Test pointer using NULL, not 0. - -2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * cpplib.c (do_line): Pedwarn for #line > 32767. - - * c-lex.c (readescape): Warn about '\x', but do not reject it. - -2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> - - * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define - to default cpp spec. - (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__. - * cpp.texi: Document __GNUC_PATCHLEVEL__. - * cpp.1: Likewise. - - * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to - default spec. - -2000-02-15 Denis Chertykov <denisc@overta.ru> - - * configure.in: Add support for avr target. - -Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode. - (sh_addr_diff_vec_mode): Don't declare. - * sh.c (sh_addr_diff_vec_mode): Delete. - -Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn. - -Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. - (smulsi3_highpart_i): Name. - (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. - (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. - (smulsi3_highpart, umulsi3_highpart): Likewise. - - (mulsidi3_i, umulsidi3_i): Make rtl describe operation - correctly independent of endianness. - (mulsidi3, umulsidi3): Now define_insn. Hide details that - confuse the optimizers. - (mulsidi3+1, umulsidi3+1): New define_split. - -Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com> - - * config/sh/sh.md: Guard insn splits against illegal registers. - * config/sh/sh.h: Correct comment about macros. - -Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - Andrew MacLeod <amacleod@cygnus.com> - - * Makefile.in (lcm.o): Depend on insn-attr.h. - * basic-block.h (optimize_mode_switching): Declare. - * lcm.c (tm_p.h, insn-attr.h): #include. - (seginfo, bb_info): New structs. - (antic, transp, comp, delete, insert) : New file-scope static variables. - (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. - (reg_becomes_live, optimize_mode_switching): Likewise. - * tm.texi: Add description of mode switching macros. - * toplev.c (rest_of_compilation): Call optimize_mode_switching. - - * sh-protos.h (remove_dead_before_cse): Remove prototype. - (fldi_ok, fpscr_set_from_mem): New prototypes. - * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. - (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): - Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). - (sh_flag_remove_dead_before_cse): Remove declaration. - (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. - (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. - (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. - * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). - (barrier_align): Allow for JUMP_INSNS containing a parallel. - (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. - (fldi_ok): New function. - (get_fpscr_rtx): Add fpscr_rtx as GC root. - (emit_sf_insn): Only generate fpu switches when optimize < 1. - (emit_df_insn): Likewise. - (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. - (sh_flag_remove_dead_before_cse): Delete. - (get_free_reg, fpscr_set_from_mem): New functions. - * sh.md (movdf, movsf): Remove no_new_pseudos code. - (return): Remove emit_fpscr_use / remove_dead_before_cse calls. - -2000-02-15 Loren Rittle <ljrittle@acm.org> - - * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD. - -2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o, - cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h. - - * cccp.c: Include version.h and/or don't declare `version_string'. - * collect2.c: Likewise. - * alpha.c: Likewise. - * arm/aof.h: Likewise. - * arm/coff.h: Likewise. - * arm/elf.h: Likewise. - * arm/pe.h: Likewise. - * arm/tcoff.h: Likewise. - * arm/telf.h: Likewise. - * arm/tpe.h: Likewise. - * arm/vxarm.h: Likewise. - * convex/convex.c: Likewise. - * i386/dgux.c: Likewise. - * i386/sun386.h: Likewise. - * m88k/m88k.c: Likewise. - * mcore/mcore-pe.h: Likewise. - * mips/mips.h: Likewise. - * romp/romp.h: Likewise. - * sh/sh.c: Likewise. - * cpphash.c: Likewise. - * cppinit.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * gcc.c: Likewise. - * gcc.h: Likewise. - * mips-tfile.c: Likewise. - * protoize.c: Likewise. - * toplev.c: Likewise. - * tree.h: Likewise. - - * version.c (version_string): Constify a char*. - - * version.h: New file. - -2000-02-14 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add mcore-elf and mcore-pe targets. - * configure: Regenerate. - - * NEWS: Add note that MCore port has been contributed. - - * invoke.texi: Document command line switches for MCore port. - * install.texi: Add MCore to list of supported targets. - -2000-02-14 Geoff Keating <geoffk@cygnus.com> - - * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames, - then we will need to import the frame handling functions. - (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need - to import the frames themselves. - -Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com> - Jason Eckhardt <jle@cygnus.com> - - * basic_block.h: Added prototype for reorder_basic_blocks. - * toplev.c: Changes to add -freorder-blocks and graph dump after - block reordering is done. - * flow.c (reorder_block_def): New structure for use during block - reordering. - (REORDER_BLOCK_*): New macros to access members of above structure. - (skip_insns_between_block, get_common_dest, chain_reorder_blocks, - make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New - functions for block reordering. - -Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * gcc.texi (Passes): Fix typo. - * md.texi (Standard Names): Ditto. - * tm.texi (Storage Layout): Ditto. - -2000-02-13 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (do_define): Only free the old definition if it - actually had one. - -2000-02-13 Neil Booth <NeilB@earthling.net> - - * cppfiles.c (read_and_prescan): When emitting deferred - newlines, test speccase[] again instead of checking each - possible whitespace character in turn. When we encounter \r, - look behind for \n first, then ahead. - -2000-02-13 Zack Weinberg <zack@wolery.cumb.org> - - * cse.c (cse_altered): New internal flag. - (cse_insn): Set it if we changed an insn. - (cse_main): Clear cse_altered before each basic block. - Only garbage collect if cse_altered is true afterward. - -Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. - -Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_comparison): Fix typo. - -Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net> - - * prefix.c (concat, lookup_key): Use xmalloc and xrealloc - consistently. - -2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * flow.c (flow_loop_tree_node_add): Use better algorithm by passing - previously inserted node instead of root node. Caller changed. - -2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete. - -2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor, - __dereg_frame_dtor): Add prototype argument. - - * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-vxworks.h (__gthread_once): Likewise. - - * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise. - -Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.c (ix86_emit_restore_regs_using_mov): Break out from ... - (ix86_expand_epilogue): ... here. Use mov instead of add to restore - stack pointer in functions w/o saved registers, output LEAVE more often - on TARGET_USE_LEAVE machines. - -2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com> - - * config/arm/arm.c (arm_init_cumulative_args); New function: - Initlaise the CUMULATIE_ARGS strcuture for a function - defintion. - (arm_function_arg): New function: Determine where to place a - function's argument. Also handles deciding the function's - call cookie. - (current_file_function_operand): New function: Return true if - the symbol is a function which has already been compiled. - (arm_is_long_call_p): New function: Return true if the - indicated function should be called via a long call. - (arm_valid_type_attribute_p): New function: Return true if the - attribute is a valid, arm specific, attribute. - (arm_comp_type_attribute): New function: Return true if the - two types have compatable, arm specific, attributes. - - * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a - structure. - (FUNCTION_ARG): Redefine to call arm_function_arg. - (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct - structure field. - (INIT_CUMULATIVE_ARGS): Redefine to call - arm_init_cumulative_args. - (FUNCTION_ARG_ADVANCE): Redefine to use correct structure - field. - (SETUP_INCOMING_VARARGS): Redefine to use correct structure - field. - (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled - functions. - (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION. - (VALID_MACHINE_TYPE_ATTRIBUTE): Define. - (COMP_TYPE_ATTRIBUTES): Define. - - * config/arm/arm.md (call): Call arm_is_long_call_p to decide - if a long call is needed. - (call_value): Call arm_is_long_call_p to decide if a long call - is needed. - (call_symbol): Call arm_is_long_call_p to decide if a long call - is needed. - - * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p. - -2000-02-11 Denis Chertykov <denisc@overta.ru> - - * README.AVR: New file with information about the avr ports. - * config/avr: New directory with avr port files. - -2000-02-11 Andreas Jaeger <aj@suse.de> - - * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@. - -2000-02-11 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c: Fix formatting, update commentary. - (dump_definition): Take three separate arguments instead of a - MACRODEF structure argument. - * cpphash.h: Update prototype of dump_definition. - * cppinit.c (cpp_finish): Update call of dump_definition. - - * cpplib.c (do_define): Always create new hash entry with - T_MACRO type. Remove redundant check for redefinition of - poisoned identifier. Update call of dump_definition. - (do_undef): Don't call check_macro_name. Rename sym_length to - len. - (do_error, do_warning): Don't use copy_rest_of_line or - SKIP_WHITE_SPACE. - (do_warning): Don't use pedwarn for the actual warning, - only the notice about its not being in the standard. (Fixes - bug with #warning in system headers.) - (do_ident): Stricter argument checking - accept only a single - string after #ident. Also, macro-expand the line. - (do_xifdef): Use cpp_defined. De-obfuscate. - - (do_pragma): Split out specific pragma handling to separate - functions. Use get_directive_token. Update commentary. Do - not pass on #pragma once or #pragma poison to the front end. - (do_pragma_once, do_pragma_implementation, do_pragma_poison, - do_pragma_default): New. - -Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): The first operand in a relational - can be a CONST_INT. - * optabs.c (emit_conditional_move): Handle relationals which - have a known true/false result. - -2000-02-11 Geoff Keating <geoffk@cygnus.com> - - * function.c (thread_prologue_and_epilogue_insns): Don't insert - a RETURN insn into a block which already ends with a jump. - -2000-02-11 Geoff Keating <geoffk@cygnus.com> - - * haifa-sched.c (BUF_LEN): Increase a lot. - -2000-02-11 Nick Clifton <nickc@cygnus.com> - - * configure.in: Add tm_p_file specification for thumb targets. - * configure: Regenerate. - - * config/arm/thumb-protos.h: New file: Prototypes for exported - functions defined in thumb.c. - -2000-02-11 Robert Lipe <robertl@sco.com> - - * Makefile.in (bootstrap-lean): Remove additional files. - (bootstrap2-lean): Likewise. - (VOL_FILES): List of files for above. - -2000-02-11 Nathan Sidwell <nathan@acm.org> - - * cpphash.c (special_symbol): Remove spurious argument to - cpp_lookup. - -2000-02-11 Joel Sherrill (joel@OARcorp.com> - - * configure.in: (i*86-*-rtems*): Swapped elf and coff - stanzas. - * configure: Rebuilt. - -2000-02-11 Rodney Brown <RodneyBrown@pmsc.com> - - * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef. - -Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com) - - * pa.c, pa.h: Remove trigraph sequences within comments. - -Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com> - - * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics. - -Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu) - - * sbitmap.h: Make SBITMAP_ELT_BITS unsigned. - -2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE. - -2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label. - (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - (ASM_FILE_END): Use c4x_file_end. - * config/c4x/c4x.c (c4x_global_label): New function. - (c4x_external_ref, c4x_file_end): Likewise. - - * config/c4x/c4x-protos.h (c4x_global_label): Add prototype. - (c4x_external_ref, c4x_end_file): Likewise. - -2000-02-10 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c: Don't include cpphash.h. - (parse_charconst, cpp_lex): Use cpp_defined. - (cpp_lex): Use get_directive_token throughout. Remove - unnecessary cases from switch. Move assertion-handling code - down to OTHER case. - (cpp_parse_expr): If we see '+' or '-', check the context to - determine if they are unary or binary operators. Streamline - the jumps a bit. Do not call skip_rest_of_line. - - * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace - static. Export get_directive_token. Update commentary. - (cpp_defined): New function. - (do_define): Remove reference to T_PCSTRING. Call - free_definition to release memory for old definition, when - redefining a macro. - (eval_if_expression): Set only_seen_white to 0 before calling - cpp_parse_expr. Call skip_rest_of_line after it returns. - (cpp_read_check_assertion): Don't preserve a pointer into the - token buffer across a call to cpp_get_token. - - * Makefile.in (cppexp.o): Don't depend on cpphash.h. - * cppfiles.c (redundant_include_p): Use cpp_defined. - * cpphash.c (free_definition): New function. - (delete_macro): Use it. Update commentary. - * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and - free_definition. - * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING - from enum node_type. Prototype cpp_defined and get_directive_token. - Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace. - - * fix-header.c (check_macro_names): Use cpp_defined. - (read_scan_file): Set inhibit_warnings and inhibit_errors in - the options structure. - -2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * c-pragma.c (maximum_field_alignment): Remove duplicate declaration. - -2000-02-10 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin) - rather than die->die_tag. - -Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * combine.c (make_extraction, force_to_mode): Avoid warning on - mixed-signedness conditionals. - (make_field_assignment, nonzero_bits): Likewise. - * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned. - (store_split_bit_field, extract_split_bit_field): Likewise. - (extract_fixed_bit_field, store_bit_field, - * expr.c: Change alignment to be unsigned everywhere. - (move_by_pieces, store_constructor_field, store_constructor): - Alignment parm is unsigned. - (emit_block_move, emit_group_load, emit_group_store): Likewise. - (clear_storage, emit_push_insn, compare_from_rtx): Likewise. - (do_compare_rtx_and_jump): Likewise. - (move_by_pieces_ninsns, clear_by_pieces): Likewise. - Compare align with GET_MODE_ALIGNMENT. - (expand_expr_unaligned): Pointer to alignment is pointer to unsigned. - (get_inner_reference): Likewise. - (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts. - (expand_assignment): Local vars for alignment now unsigned. - (store_constructor, store_field, expand_expr, do_jump): Likewise. - (do_compare_and_jump): Likewise. - (store_field): Call new function expr_align. - * expr.h (emit_block_move, emit_group_load, emit_group_store): - Alignment arg now unsigned. - (clear_storage, emit_push_insn, compare_from_rtx): Likewise. - (do_compare_rtx_and_jump, store_bit_field): Likewise. - (extract_bit_field): Likewise. - * fold-const.c (add_double): Add cast to eliminate signedness warning. - * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned. - (get_best_mode): Alignment arg is unsigned. - * rtl.h (move_by_pieces): Likewise. - * store-layout.c (maximum_field_alignment, set_alignment): - Now unsigned. - (layout_decl): Alignment arg is now unsigned. - Remove unneeded casts. - (layout_record, layout_union, layout_type): Remove unneeded casts. - Local alignment variables now unsigned. - (get_best_mode): Alignment arg now unsigned. - * tree.c (expr_align): New function. - * tree.h (expr_align): Likewise. - (maximum_field_alignment, set_alignment): Now unsigned. - (get_inner_reference): Alignment argument is now pointer to unsigned. - * varasm.c (assemble_variable): Add cast to eliminate warning. - -Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com> - - * expmed.c (store_bit_field): If op0 and fieldmode are the same size, - then store directly into op0. - - * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for - the CALL_INSN, and emit the note immediately after it. - -2000-02-10 Nick Clifton <nickc@cygnus.com> - - * config/arm/thumb.md (epilogue): Include a (return) in the - generated insn, and emit it using emit_jump_insn not - emit_insn. - -Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz> - - * function.c (assign_temp): Change zero-sized arrays to size 1. - * integrate.c (expand_inline_function): Do not update - stack_alignment_needed - * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY, - add some sanity checking, remove optimization for function with - zero frame size. - -2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * flow.c (mark_regs_live_at_end): Delete unused variables. - - * ggc-page.c (ggc_page_print_statistics): bzero -> memset. - - * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment' - in macro FRAME_GROWS_DOWNWARD. - - * stmt.c (expand_end_bindings): Delete unused variable. - - * unroll.c (iteration_info): Mark parameter `loop' with - ATTRIBUTE_UNUSED. - -2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * fixinc/server.c (load_data): Return NULL if the marker line is - not found. - (run_shell): If load_data returns NULL, retry the command once, in - a new shell. - - * configure: Rebuilt. - -2000-02-09 Bruce Korb <bkorb@gnu.org> - - * gcc/fixincludes: ** DELETED ** - * gcc/fixcpp: ** DELETED ** - * gcc/fixinc-nt.sed: ** DELETED ** - * gcc/just-fixinc: ** DELETED ** - * gcc/Makefile.in: Removed out-dated commentary - * gcc/configure.in: Removed fast-fixincludes disablement. - * MAINTAINERS(Ian Taylor) moved to "Write after approval" group. - -2000-02-09 Clinton Popetz <cpopetz@cygnus.com> - * function.c (thread_prologue_and_epilogue_insns): Uncomment - last change. - -2000-02-09 Richard Henderson <rth@cygnus.com> - - * jump.c (delete_insn): Don't delete user labels at -O0. - -2000-02-09 Robert Lipe <robertl@sco.com> - - * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS. - Don't link with HOST_LIBS. - -2000-02-09 Zack Weinberg <zack@wolery.cumb.org> - - * configure.in: Correct --help text for --with-dwarf2. - Put tm-dwarf2.h after other tm files, if it's requested. - * configure: Regenerate. - * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before - defining it. - -2000-02-09 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h: Provide HASHNODE typedef and forward decl of - struct hashnode only. Kill cpp_hashnode typedef. MACRODEF, - DEFINITION, struct hashnode, struct macrodef, struct - definition, scan_decls prototype, default defn of - INCLUDE_LEN_FUDGE moved elsewhere. - - * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct - definition, and struct hashnode moved here. Remove the unused - 'predefined' field from struct definition. Replace the 'args' - union with its sole member. All users updated (cpphash.c). - Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add - multiple include guard. - - * cpphash.c (hashf): Make static; use better algorithm; drop - HASHSIZE parameter; return an unsigned int. - (cpp_lookup): Drop HASH parameter. PFILE parameter is - used. Calculate HASHSIZE modulus here. - (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus - here. - (create_definition): Drop PREDEFINITION parameter. - * cpplib.c (do_define): Don't calculate a hash value here. - Don't pass (keyword == NULL) to create_definition. - - * scan.h: Prototype scan_decls here. - * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here. - * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All - callers of cpp_lookup and cpp_install updated. - - * cpphash.c (macarg): Hoist all the flag diddling out of the - function... - (macroexpand): ... and out of the loop that calls macarg. - Skip over the initial paren before macro arguments with - cpp_get_non_space_token; point may be some distance before - that paren. Abort if it's not there. - - * cpplib.c (parse_clear_mark): Delete function. - (parse_set_mark, parse_goto_mark): Make static. - (ACTIVE_MARK_P): New macro. - (skip_block_comment, skip_line_comment): Do not bump the line - if ACTIVE_MARK_P is true. - (cpp_pop_buffer): The buffer to be popped may not have an - active mark. - (cpp_get_token): When looking for the initial paren before - macro arguments, only set a mark in a file buffer, Always - return to that mark before proceeding to call macroexpand or - return a NAME token. - - * cpplib.h: Remove prototypes of parse_set_mark, - parse_clear_mark, parse_goto_mark. - (struct cpp_options): Rename 'put_out_comments' to - 'discard_comments' and invert its sense. - * cppinit.c, cpphash.c, cpplib.c: All users of - put_out_comments changed to use discard_comments, with - opposite sense. - -2000-02-09 Clinton Popetz <cpopetz@cygnus.com> - - * function.c (thread_prologue_and_epilogue_insns): Don't delete - the edge from a block that both jumps and falls through to the - fallthru block. - -2000-02-09 Scott Bambrough <scottb@netwinder.org> - - * config/arm/arm.md (movsi): In PIC mode, make sure that a - constant source address is legitimate. - -2000-02-09 Philip Blundell <pb@futuretv.com> - - * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF - correctly. - - * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when - generating PIC. - (LEGITIMATE_PIC_OPERAND): Disallow references to labels. - -2000-02-09 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer - ends with a newline and a NUL. Don't be so clever manipulating - strings. - -Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz> - - * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed, - not to BIGGEST_ALIGNMENT. - -2000-02-08 Geoff Keating <geoffk@cygnus.com> - - * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. - * dwarf2out.c (dwarf_cfi_name): Print name of new constant. - (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. - (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. - * frame.c (execute_cfa_insn): Handle - DW_CFA_GNU_negative_offset_extended. - -2000-02-08 Richard Henderson <rth@cygnus.com> - - * flow.c (tidy_fallthru_edges): Split out from ... - (delete_unreachable_blocks): ... here. - (find_basic_blocks): Use it. - -Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY. - -2000-02-08 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a. - (gen_protos.o): Don't depend on cpplib.h or cpphash.h. - (fix-header.o): Don't depend on cpphash.h. - - * scan.c (hashstr): New function. - * scan.h: Prototype it. - * fix-header.c: Don't include cpphash.h. Use hashstr. - * gen-protos.c: Don't include cpphash.h or cpplib.h. Use - hashstr. Report hash table statistics. Add private - definition of xrealloc. - -2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * i386.h (TARGET_SWITCHES): Fix typo in option name. - -2000-02-08 Clinton Popetz <cpopetz@cygnus.com> - - * function.c (thread_prologue_and_epilogue_insns): Don't replace - jumps with returns unless they are jumps to the fallthru block. - -Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (addqi3_cc): Fix contraints. - -Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return. - -2000-02-07 Mark Mitchell <mark@codesourcery.com> - - * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a - carriage return after a macro name. - -2000-02-07 Fred Fish <fnf@be.com> - - * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing - so the gcc2_compiled symbol doesn't confuse BeOS debuggers. - -2000-02-07 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (deps_output): Count spacers in deps_column. - -2000-02-07 Neil Booth <NeilB@earthling.net> - - * cppinit.c (initialize_dependency_output): If there is no - suffix, don't try to look for known suffixes. Use strrchr. - (cpp_start_read): Remove duplicate initialization. - -Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz> - - * calls.c (compute_argument_block_size): New argument - preferred_stack_boundary. - (expand_call): update cfun->preferred_stack_boundary, update call of - compute_argument_block_size - (emit_library_call): Increate cfun->preferred_stack_boundary - to PREFERRED_STACK_BOUNDARY - (emit_library_call_value): Likewise. - * explow.c (allocate_dynamic_stack_spave): Likewise. - * function.c (prepare_function_start): Set - cfun->preferred_stack_boundary - * function.h (struct function): Add preferred_stack_boundary field. - * integrate.c (expand_inline_function): Update - cfun->preferred_stack_boundary and cfun->stack_alignment_needed. - (copy_rtx_and_substitute): Align frame to stack_alignment_needed only. - * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary. - -2000-02-06 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.c (my_strerror, cpp_error, cpp_error_with_line, - cpp_error_from_errno, cpp_warning, cpp_warning_with_line, - cpp_pedwarn, cpp_pedwarn_with_line, - cpp_pedwarn_with_file_and_line): Move to cpperror.c. - (cpp_print_file_and_line, v_cpp_error, v_cpp_warning, - v_cpp_error_with_line, v_cpp_warning_with_line, - cpp_message_from_errno, cpp_perror_with_name): Delete. - - * cpperror.c (cpp_print_containing_files): Take starting - buffer as argument. - (cpp_file_line_for_message): Rename to cpp_print_file_and_line. - (v_cpp_message): Now called directly by all entry points. - Remove -1 case. - (cpp_pfatal_with_name, cpp_message): Delete. - (cpp_notice_from_errno, cpp_ice): New functions. - (cpp_notice): Is now for reporting error conditions, just - without an associated file. - (cpp_error, cpp_error_with_line): Don't do anything if - opts->inhibit_errors is on. - (cpp_pedwarn_with_file_and_line): Take column argument also. - - * cpplib.h: Update prototypes of exported functions. - (struct cpp_options): Add inhibit_errors. - - * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for - non-error messages. Include intl.h. - - * cppinit.c, cppmain.c: Likewise. Also, use - cpp_notice_from_errno instead of cpp_perror_with_name or - cpp_pfatal_with_name, and cpp_notice instead of cpp_message. - - * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to - report internal errors. - - * cpplib.c (do_define): Switch bcopy to memcpy. - Give cpp_pedwarn_with_file_and_line a dummy column argument. - - * cpplib.c (copy_rest_of_line): Revert previous change: don't - bail out early if we hit a line comment. - -2000-02-06 Richard Henderson <rth@cygnus.com> - - * flow.c (flow_delete_insn, make_edge, remove_edge): Export. - * basic-block.h: Declare them. - * emit-rtl.h (active_insn_p): New. - (next_active_insn, prev_active_insn): Use it. - * rtl.h: Declare it. - * function.c (emit_return_into_block): New. - (thread_prologue_and_epilogue_insns): Insert return insns instead - of epilogues when possible. - * jump.c (jump_optimize_1): Remove code to insert a return insn - on the fallthru to the exit block. - - * i386.c (ix86_can_use_return_insn_p): Fail for large poped args - and for non-empty stack frames. - * i386.md (return): Expand to return-pop as needed. - -2000-02-06 Richard Henderson <rth@cygnus.com> - - * simplify-rtx.c (simplify_relational_operation): Canonicalize - constant to op1 for testing. - -2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (*ldi_on_overflow): New pattern. - (fixuns_truncqfqi2): Use it. - -2000-02-06 Richard Henderson <rth@cygnus.com> - - * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack - as a TYPE_LEA insn. - - * i386.md (widening and peepholes): Mask the constant instead of - using gen_lowpart. - -2000-02-05 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump - input pointer before possibly branching off to the backslash - code. - * cpphash.c (macroexpand): Correctly delete \r escapes when - stringifying parameters. - * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment - if we can; bail out early if we hit a line comment. - (handle_directive): Treat '# 123' in an .S file just like - '# <punctuation>'. Discard the shifted '#' if we hit '#\n'. - Return 1 for '# not_a_directive'. - (get_directive_token): Pop macro buffers here, so that - cpp_get_token can't sneakily move past a newline. - Add sanity checks. - (cpp_get_token): goto randomchar if handle_directive returns 0. - - * cppalloc.c: Update copyright. - * cpplib.c: Merge all the static function prototypes into one - block. - * cpplib.h: Remove #if 0 block. - - * cpperror.c: Remove #ifdef EMACS block. - * cppmain.c: Likewise. - * cpphash.c: Remove #if 0 blocks. - * cppinit.c: Remove #if 0 blocks, and the -lint option. - * cpplib.c: Remove #if 0 blocks and code referencing - pcp_inside_if or for_lint. Remove duplicate error message. - Fix error messages for #else after #else or #elif. Reformat. - Remove archaic TODO list. - * cpplib.h: Remove pcp_inside_if and for_lint flags. - -2000-02-05 Zack Weinberg <zack@wolery.cumb.org> - - * i386/osf1elf.h: Add missing backslash to multiline string. - -2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg. - -2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (c-common.o): Depend on $(EXPR_H). - - * c-common.c: Include expr.h. - - * c-pragma.c (mark_align_stack): Add prototype. - - * caller-save.c (add_stored_regs): Likewise. - - * combine.c (record_promoted_value): Likewise. - - * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): - Likewise. - - * cppinit.c (new_pending_define): Likewise. - - * cpplib.c (skip_block_comment, skip_line_comment): Likewise. - - * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, - AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, - AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, - class_scope_p): Likewise. - - * dwarf2out.h (dwarf2out_set_demangle_name_func, - dwarf2out_add_library_unit_info): Likewise. - - * ggc.h (ggc_page_print_statistics): Likewise. - - * haifa-sched.c (propagate_deps): Likewise. - - * reg-stack.c (next_flags_user, record_label_references): Likewise. - - * rtl.h (set_stack_check_libfunc): Likewise. - - * toplev.h (set_fatal_function): Likewise. - - * toplev.c (set_fatal_function): Delete prototype. - - * diagnostic.c: Deconstify functions returning malloc'ed ptrs. - -2000-02-05 Geoff Keating <geoffk@cygnus.com> - - * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX. - (FUNC_END): Likewise. - -2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * caller-save.c: Include tm_p.h. - -2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2). - -2000-02-04 Neil Booth <NeilB@earthling.net> - - * cccp.c (main): Check 'dir' for a NULL pointer before passing - it to strcmp. - -2000-02-04 Zack Weinberg <zack@wolery.cumb.org> - - * recog.h: Remove NO_MD_PROTOTYPES ifdefs. - * genflags.c: Use the max_operand_1 logic from genemit.c to - calculate how many arguments gen_insn prototypes have. Remove - NO_MD_PROTOTYPES ifdefs from the generated file. - * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated - file. Cast gen_insn initializers to insn_gen_fn. - * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES. - * gcc.texi: Remove documentation of NO_MD_PROTOTYPES. - -2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc/Makefile.in (HDR): Add machname.h. - (clean): Likewise. - -2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ... - (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto. - (c4x_cpu_version): Ditto. - * config/c4x/c4x-protos.h: ... here. - -2000-02-04 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c (add_abstract_origin_attribute): Don't call - gen_abstract_function on our context if we're a nested function. - -2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite. - * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix. - -2000-02-04 Bruce Korb <bkorb@gnu.org> - - * fixinc/genfixes(machname.h): - Move the functionality from gen-machine.h into this file. - UNdef MN_NAME_PAT if there are no names to change. - Also, be a little kinder when AutoGen is not present. - - * fixinc/Makefile.in(machname.h): - Change the generation rule to use genfixes. - - * fixinc/fixfixes.c(machine_name): - machine_name_fix's functionality now dependent upon whether - MN_NAME_PAT is defined. - - * fixinc/fixtests.c(machine_name): - ditto. - - * fixinc/fixlib.c(mn_get_regexps): conditional on definition - of MN_NAME_PAT. - - * fixinc/fixlib.h(mn_get_regexps): - ditto - - * fixinc/gen-machine.h: DELETED - -2000-02-04 Jan Hubicka <jh@suse.cz> - Richard Henderson <rth@cygnus.com> - - * i386.c (SAVE_REGS_FIRST): Remove. - (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode. - (ix86_compute_frame_size): Likewise. - (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack. - (ix86_emit_restore_regs): Remove. - (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack - when a frame pointer is in use. - (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov - instead of pop to restore a register when profitable; emit leave - when profitable. - (ix86_attr_length_default): Handle pro_epilogue_adjust_stack - as a TYPE_LEA insn. - (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU. - * i386.md (prologue_allocate_stack): Remove. - (epilogue_deallocate_stack): Remove. - (pro_epilogue_adjust_stack): New. - -2000-02-04 Richard Henderson <rth@cygnus.com> - - * function.c (diddle_return_value): Rework to use a callback function. - Use current_function_return_rtx if it's been set up. - (do_clobber_return_reg, clobber_return_register): New. - (do_use_return_reg, use_return_register): New. - (expand_function_end): Use them. - * stmt.c (expand_null_return): Likewise. - * function.h: Declare them. - * flow.c (mark_regs_live_at_end): Use diddle_return_value. - (mark_reg): Change arguments as appropriate for callback. - * integrate.c (expand_inline_function): Revert 19 Jan change. - -Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * tm.texi (Values in Registers): Fix typo: "fo" "for". - (Misc): Say the scheduler, not the Haifa scheduler. - -2000-02-04 Clinton Popetz <cpopetz@cygnus.com> - - * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs - when in_mem is set. Update all callers. - -2000-02-04 Richard Henderson <rth@cygnus.com> - - * i386/openbsd.h (INT_ASM_OP): Define. - -Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * tm.texi: Fix various typos. - -Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com> - - * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case. - (MD_STARTFILE_PREFIX_1): New macro. - -Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (movstrsi, clrstrsi): Support variable sized copies, align - destination when needed. - (strmovsi, strsetsi): New expander. - (strmovsi_1, strsetsi_1): New pattern. - * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP, - TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros. - (TARGET_SWITCHES) Add align-stringops and inline-all-stringops. - * invoke.texi (align-stringops, inline-all-stringops): Document. - -Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se> - - * i386/netbsd.h (INT_ASM_OP): Define. - -2000-02-02 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (cpp_reader): Add new flag, no_directives. - * cpphash.c (macarg): Set it. - * cpplib.c (handle_directive): If no_directives is on and we - find a directive, issue an error and discard the line. - -Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com> - - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for - FP constants. Add ! TARGET_FPU check for FP constants. - -2000-02-02 Clinton Popetz <cpopetz@cygnus.com> - - * flow.c (find_basic_blocks): Don't kill label_value_list - here. - (cleanup_cfg): Kill it here. - -Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * expr.c (store_field): Ensure ALIGN is no stricter than the - alignment of EXP. - -2000-02-02 Richard Henderson <rth@cygnus.com> - - * jump.c (delete_insn): Partially revert 19 Jan change; - don't convert unused code labels to notes at -O0. - -2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * toplev.c (rest_of_compilation): Run rebuild_jump_labels after - split_all_insns to recreate REG_LABEL notes for flow2 pass. - -2000-02-01 Richard Henderson <rth@cygnus.com> - - * i386.c (general_no_elim_operand): New. - (nonmemory_no_elim_operand): New. - (ix86_expand_move): Copy eliminable operands before a push. - * i386-protos.h: Declare new functions. - * i386.h (CAN_ELIMINATE): Simplify. - (PREDICATE_CODES): Update. - * i386.md (push insns): Don't allow eliminable register operands. - -2000-02-01 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_regs_live_at_end): Follow expand_function_end and - replace BLKmode with DECL_RTL's mode. - -2000-02-01 Zack Weinberg <zack@wolery.cumb.org> - - * frame.c (find_fde): Convert for loop to do-while so compiler - sees it's always executed at least once. - * libgcc2.c (BBINBUFSIZE): Kill. - (__bb_init_prg): Use fgets. - (__bb_exit_trace_func): Don't paste strings. - * unroll.c (unroll_loop): Initialize unroll_type, not - unroll_number, and tweak logic to match. - - * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in - all failure paths. - (ix86_flags_dependant): Likewise. Disentangle control flow. - (ix86_sched_reorder): Break guts out to - ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. - (ix86_sched_reorder_ppro): Initialize pair2 and insnp before - any possible use. - - * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't - use string concatenation. Don't save and restore esi. - - * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. - (machname.h): Remove script to separate file. Use two-step - sequence so target is not created if script fails. - * fixinc/gen-machname.h: New file. Handle case where no non-reserved - identifiers are defined. - * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is - an empty string, machine_name doesn't need to do anything at - all. - (is_cxx_header): Add more cases to regexp. - * fixinc/fixlib.h: Update prototype. - * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of - mn_get_regexps. - * fixinc/fixincl.c: Define NO_BOGOSITY. - - * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. - (hp_sysfile): Add missing comma. - (math_exception): Put the wrapper ifdefs at the beginning and - the end of the file. - * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. - -2000-02-01 Richard Henderson <rth@cygnus.com> - - * sparc.c (fp_zero_operand): Turn into a normal predicate. - Use CONST0_RTX. Update all callers. - * sparc.h, sparc-protos.h: Update accordingly. - * sparc.md (fp mov insns): Use fp_zero_operand directly - where applicable. - -Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS - example. - -2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (specs.ready): New target. - (fixinc.sh): Depend on `specs.ready' instead of `specs'. - -2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * fixinc.irix: Use unique filenames for writing into /tmp, - * fixinc.ptx: Likewise. - * fixinc.sco: Likewise. - * fixinc.svr4: Likewise. - * fixinc.winnt: Likewise. - -2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * tsystem.h: New file. - - * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, - s-crtS): Depend on tsystem.h. - - * crtstuff.c: Include tsystem.h. - * frame.c: Likewise. - * libgcc2.c: Likewise. - -Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz> - - * builtins.c (expand_builtin_memset): Expand for variable sized - lengths too. - -2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au> - - * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based - on ABI. - -Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * dwarfout.c (SHORT_TYPE_SIZE): Correct default. - - * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE. - -2000-01-31 Chandra Chavva <cchavva@cygnus.com> - - * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed - case 3->2 combining (combining with splitting) in which 2 is CC0 - setter/user and 3 is user. The rest of cases 2->1 and 3->2 are - checked at the begining of the function with the aid of calling - function 'can_combine_p'. - -2000-01-31 Dave Brolley <brolley@redhat.com> - - * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'. - -2000-01-31 Jason Merrill <jason@casey.cygnus.com> - - * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the - new label. - -2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros. - - * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): - PROTO -> PARAMS. - -2000-01-30 Zack Weinberg <zack@wolery.cumb.org> - - * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h, - i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h, - i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h, - i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h, - i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h, - i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, - i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h, - i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h, - i386/vxi386.h, i386/win-nt.h, i386/win32.h: - Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES. - - * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h: - Add %(cpp_cpu) to CPP_SPEC. - - * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h: - Add %(cc1_cpu) to CC1_SPEC. - -2000-01-28 Ulrich Drepper <drepper@redhat.com> - - * c-decl.c (c_decode_option): Accept optional numeric argument to - -Wformat and set warn_format. - * c-common.c: Don't emit warning about non-constant printf format - string unless warn_format > 1. - -2000-01-30 Richard Henderson <rth@cygnus.com> - - * alpha.md (return_internal): Allow after reload only. - -2000-01-30 Richard Henderson <rth@cygnus.com> - - * i386.c (ix86_compute_frame_size): Omit padding1 if the - local frame size is zero. - -2000-01-30 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_expand_epilogue): Don't emit the return insn. - * alpha.h (EPILOGUE_USES): New. Mark $26 live. - * alpha.md (return): Turn into an expander. - (return_internal): Don't use $26. - (epilogue): Emit the return insn. - -2000-01-30 Richard Henderson <rth@cygnus.com> - - * alpha.md (negtf2, abstf2): Fix word order thinko. - (extendsftf2): New. - (trunctfsf2): Avoid intermediate rounding errors. - -2000-01-30 Zack Weinberg <zack@wolery.cumb.org> - - * cppfiles.c (find_position): Drop 'colp' argument, return the - new line base. - (read_and_prescan): Adjust to match. Don't ever manipulate - line or line_base except via find_position. - -2000-01-29 Zack Weinberg <zack@wolery.cumb.org> - - * c-parse.in: Apply Ulrich's changes from c-parse.y. - * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c: - Regenerate. - -2000-01-29 Zack Weinberg <zack@wolery.cumb.org> - - * cpperror.c (cpp_file_line_for_message): If 'line' is zero, - just print "<command line>". If 'filename' is null or an - empty string, print "<stdin>" for the filename. - * cpplib.c (do_define): Don't print the 'location of the - previous definition' message if we're still parsing the - command line. - (cpp_pedwarn_with_file_and_line): Always call - cpp_file_line_for_message. - -2000-01-29 Mark Mitchell <mark@codesourcery.com> - - * flow.c (mark_regs_live_at_end): Fix typo. - -2000-01-28 Ulrich Drepper <drepper@redhat.com> - - * c-common.c: Adjust variable names, comments, help strings to c99. - * c-lex.c: Likewise. - * c-parse.y: Likewise. - * c-tree.h: Likewise. - * cccp.c: Likewise. - * cpplib.h: Likewise. - * c-decl.c: Likewise. Recognize options with names "*99" as well. - * cppinit.c: Likewise. - -2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. - * c4x.c: Define the optab rtx values. - (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. - (c4x_emit_libcall): Use new optab rtx values. - (c4x_emit_libcall3): Likewise. - (c4x_emit_libcall_mulhi): Likewise. - * c4x-protos.h: Add prototypes for optab rtx values and change - prototypes for above c4x_emit_libcall functions. - -2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * c4x.c (c4x_output_ascii): Restrict line length of output when TI - syntax is used. - (c4x_function_prologue): Use regnames intead of float_reg_names when - TI syntax is used. - (c4x_function_epilogue): Likewise. - (c4x_print_operand): Likewise. - * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine. - * c4x.md (set_high): Disable for TARGET_TI. - -2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading - of framepointer + constant to ADDR_REGS class. - * c4x.md (addqi3, addqi3_noclobber_reload): Update. - * c4x.c (std_or_reg_operand): New function. - * c4x-protos.h (std_or_reg_operand): Prototype it. - -2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - - * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same - object names as libgcc2.c. - * libgcc.S: Use newly defined names. - -Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz> - * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New - function. - * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. - * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. - (FLOW_LOOP_LAST_BLOCK): Likewise. - -2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * basic-block.h (struct loop): New fields 'first' and 'last'. - * flow.c (flow_loops_find): Compute loop->first and loop->last. - (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG - and loop->last to check for NOTE_INSN_LOOP_END. - -Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com> - - * predict.c (estimate_probability): Use the new FIRST and LAST fields - of the loop descriptor rather than HEADER and LATCH. Also added - missing break statements as well making some coding style modifications - as suggested by Michael Hayes. - -2000-01-28 Richard Henderson <rth@cygnus.com> - - * flow.c (find_basic_blocks): Remove do_cleanup argument. - Break out that code ... - (cleanup_cfg): ... here. - (commit_one_edge_insertion): Detect a return instruction being - emitted to an edge. Emit a barrier following; clear fallthru. - (commit_edge_insertions): Verify CFG consistency. - * function.c (expand_function_start): Kill unused variable. - (expand_function_end): Likewise. - (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge - to insert the epilogue. - - * gcse.c (gcse_main): Adjust for find_basic_blocks change. - (delete_null_pointer_checks): Likewise. - * output.h: Likewise. - * reg-stack.c (reg_to_stack): Likewise. - * toplev.c (rest_of_compilation): Likewise. Run - thread_prologue_and_epilogue_insns after rebuilding the CFG. - -2000-01-28 Richard Henderson <rth@cygnus.com> - - * Makefile.in (flow.o): Revert 24 Jan change. - * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode - FUNCTION_VALUE result to DECL_RESULT's mode. - - * haifa-sched.c (schedule_insns): Don't recompute reg info - after reload. - -2000-01-28 Zack Weinberg <zack@wolery.cumb.org> - - * configure.in: Make --enable-cpplib the default. - * configure: Regenerate. - * gcc.dg/990119-1.c: No longer expected to fail. - -2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk> - - * jump.c (jump_optimize_1): Delete an optimization that is also done - by merge_blocks in flow. - -2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * diagnostic.c (build_message_string, output_printf, - line_wrapper_printf): Add ATTRIBUTE_PRINTF_*. - (build_location_prefix): Fix non-literal format string. - -2000-01-27 Richard Henderson <rth@cygnus.com> - - * alpha.md (trunctfsf2): New. - -2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net> - - * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH. - -2000-01-27 Zack Weinberg <zack@wolery.cumb.org> - - * cppinit.c (cpp_handle_option): Recognize C++ comments under - -std=gnu89. - * cpplib.c (skip_block_comment, skip_line_comment): Split code - out of... - (skip_comment) ... here. Permit C++ comments in system - headers always. Warn about C++ comments in user code under - -std=gnu89 -pedantic. - (copy_comment): Use skip_comment. - (cpp_skip_hspace, cpp_get_token): skip_comment can no longer - return EOF. - (consider_directive_while_skipping, do_else, do_endif): Call - validate_else unconditionally. - (validate_else): Check CPP_PEDANTIC here. Accept non-comment - text after the conditional in a system header. - * cpplib.h (struct cpp_buffer): Add flag - warned_cplusplus_comments. - -2000-01-27 Geoffrey Keating <geoffk@cygnus.com> - - * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. - Use unshare_all_rtl_1. - (unshare_all_rtl_again): New function. - (unshare_all_rtl_1): New function split out of unshare_all_rtl. - - * function.c (purge_addressof_1): Use unshare_all_rtl_again - rather than resetting the 'used' flags ourself. - - * toplev.c (rest_of_compilation): Add current_function_decl - to the unshare_all_rtl call. - * tree.h: Prototype unshare_all_rtl. - * rtl.h: Prototype unshare_all_rtl_again here. - -2000-01-27 Geoffrey Keating <geoffk@cygnus.com> - - * genoutput.c (output_prologue): Include ggc.h in generated - files. - * Makefile.in (insn-output.o): Depends on ggc.h. - -2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au> - Hans-Peter Nilsson <hp@bitrange.com> - - * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete. - Remove redundant include of xm-ns32k.h. - * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions. - Remove redundant include of xm-ns32k.h. - * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine. - Remove redundant include of xm-ns32k.h. - * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions. - - * ns32k/ns32k.h: Update comment on multiply-add instructions. - (TARGET_SWITCHES): Add documentation strings. - (DWARF_FRAME_REGNUM): Override default definition. - (REG_CLASS_CONTENTS): Add comments. - (SUBSET_P): Format to reduce line length. - (SMALL_REGISTER_CLASSES): Make a run time option. - (GO_IF_NONINDEXED_ADDRESS): Reformat. - (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before - dereferencing it. Braces to avoid "ambiguous else" were misplaced. - (regclass_map): fix typo in comment. - * ns32k/ns32k.c: Add spaces before parentheses for consistant style. - Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...). - (trace, reg_or_mem_operand): Delete, unused function. - (calc_address_cost): Small offsets are cheaper than large ones. - (expand_block_move): Generate more efficient code when bytes is a - known at compile time. - * ns32k/ns32k.md: Alternate constraints for multiply-add instructions. - (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand - instead of reg_or_mem_operand. - - * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs, - not general_operand. Similarly use "=rm" or stricter, not "=g". - For input operands, use stricter constraints than "g" if not - general_operand. Similarly use stricter predicate than - "general_operand" when stricter constraints than "g" are present, - except for matching constraints. - (movstrsi): Use "memory_operand" for operands 0 and 1. - (truncsiqi2, truncsihi2, trunchiqi2): Remove. - (udivmoddisi4_internal): Use nonimmediate_operand for operand 0, - not reg_or_mem_operand. - (udivmoddisi4): Ditto. - Use nonimmediate_operand for operand 1, not reg_or_mem_operand. - Use nonimmediate_operand for operand 3, not register_operand. - (udivmoddiqi4_internal): Use register_operand for operand 1, not - reg_or_mem_operand. - -2000-01-27 Fred Fish <fnf@be.com> - - * gthr-posix.h: Fix typo; compatibily -> compatibility. - * gthr-single.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-vxworks.h: Likewise. - * gthr-win32.h: Likewise. - * gthr.h: Likewise. - -2000-01-27 Zack Weinberg <zack@wolery.cumb.org> - - * cppinit.c: Add " (cpplib)" to end of string printed by - -v / --version. - -2000-01-27 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_conditional_move): Use VOIDmode when - testing for a signed comparison. - (alpha_emit_floatuns): New. - * alpha-protos.h: Declare it. - * alpha.md (floatunsdisf2, floatunsdidf2): New. - (extendsfdf2): Tidy. - -2000-01-27 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but - no -g option specifying debugging format, default to -gstabs+. - -Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk> - - * calls.c (special_function_p): New argument fork_or_exec. - (expand_call): When profile_arc_flag is set and the function - is in the fork_or_exec group, call __bb_fork_func first. - * libgcc2.c, _bb module (__bb_fork_func): New function. - (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock - output file. - * config/svr4.h (TARGET_HAS_F_SETLKW): Define. - * tree.h (special_function_p): Update prototype. - -2000-01-26 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_split_tfmode_pair): New. - * alpha-protos.h: Declare it. - * alpha.md (abstf2, negtf2): New. - (movtf insn): Add input G constraint. - (movtf splitter): Use alpha_split_tfmode_pair. - -2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * i386/cygwin.h: PROTO -> PARAMS. - -2000-01-26 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle - TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons - using _Qp_cmp/_Q_cmp and testing the return value. - (print_operand): Call reverse_condition_maybe_unordered if - we are handling CCFPmode or CCFPEmode. - Handle ORDERED, UN* and LTGT comparisons. - * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32 - if not TARGET_HARD_QUAD. - (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble, - bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt): - Call sparc_emit_float_lib_cmp even on TARGET_ARCH32. - Adjust gen_b* calls so that they reflect return comparison of - sparc_emit_float_lib_cmp. - -2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume - incoming operands array is large enough for one more operand. - (alpha_emit_xfloating_arith): Likewise. - -2000-01-25 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a - file with one line and no trailing newline. - Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>. - * fixinc/fixtests.c (machine_name_test): Fix fencepost error - checking if the match is on the line. - * fixinc/gnu-regex.c: Provide regerror not __regerror. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * sparc.c (output_cbranch): Fix accidental squashing of the - fp branch pre-delay nop. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * tree.def (UNNE_EXPR): Remove. - * c-typeck.c (build_binary_op): Don't handle it. - * expr.c (expand_expr, do_jump, do_store_flag): Likewise. - - * rtl.def (UNNE): Remove. - (LTGT): Add. - * jump.c (reverse_condition): Update accordingly. - (swap_condition): Likewise. - (comparison_dominates_p): Handle unordered comparisons. - (reverse_condition_maybe_unordered): New. - * rtl.h (reverse_condition_maybe_unordered): Declare. - - * sparc.c (select_cc_mode): Update for UNNE/LTGT. - (output_cbranch): Use reverse_condition_maybe_unordered and LTGT. - * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs. - * sparc.md (bltgt): New. - -2000-01-25 Nick Clifton <nickc@redhat.com> - - * emit-rtl.c (emit_insn): Only check machine class insns for - improper emission of a RETURN. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * Makefile.in (flow.o): Depend on $(EXPR_H). - * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e. - duplicate the structure of diddle_return_value for keeping regs live. - -2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (current_loop_info): Delete. - (consec_sets_invariant_p): Add loop argument, update callers. - (get_condition_for_loop): Likewise. - (count_nonfixed_reads, update_giv_derive): Likewise. - (simplify_giv_expr, general_induction_var): Likewise. - (consec_sets_giv, recombine_givs): Likewise. - (move_movables): Delete loop_start and loop_end arguments, - add loop argument, and update callers. - (find_mem_givs, check_final_value): Likewise. - (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise. - (loop_invariant_p): Rename from invariant_p, add loop argument, and - update callers. - (basic_induction_var): Add loop argument, delete loop_level argument, - and update callers. - * unroll.c (iteration_info): Delete loop_start and loop_end arguments, - add loop argument, and update callers. - (find_splittable_regs, find_splittable_givs): Likewise. - (reg_dead_after_loop, loop_find_equiv_value): Likewise. - (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise. - (biv_total_increment): Delete loop_start and loop_end arguments; - update callers. - (precondition_loop_p): Delete loop_start and loop_info arguments; - update callers. - * loop.h (get_condition_for_loop): Add loop argument. - (biv_total_increment): Delete loop_start and loop_end arguments. - (precondition_loop_p): Delete loop_start and loop_info arguments; - add loop argument. - (final_biv_value): Delete loop_start and loop_end arguments; - add loop argument. - (final_giv_value, back_branch_in_range_p): Likewise. - -2000-01-25 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. - -2000-01-25 Gavin Romig-Koch <gavin@cygnus.com> - - * Makefile.in (c-gperf.h) : Change the "See" pointer to - point to the new "generated_files" doc. - -2000-01-25 Clinton Popetz <cpopetz@cygnus.com> - - * config/fp-bit.c (_unord_f2): Fix typo. - -2000-01-25 Zack Weinberg <zack@wolery.cumb.org> - - * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c, - c-typeck.c, objc/objc-act.c: Remove all references to obstack - functions obsoleted by GC, such as push_obstacks_nochange, - end_temporary_allocation, savealloc, saveable_tree_cons, etc. - and code which existed only to decide whether or not to call - them. Remove now-unused NESTED argument from start_function; - all callers changed. Do not change behavior based on ggc_p. - The use of the ixp_obstack in c-iterate.c and the util_obstack - in objc/objc-act.c remain; these are not obsoleted by garbage - collection. - * c-tree.h: Update prototype for start_function. - - * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild. - -2000-01-25 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.md (zero_extendsidi2_internal): Disable for - mips16. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * sparc-protos.h (select_cc_mode): Declare. - * sparc.c (select_cc_mode): New. Handle unordered compares. - (output_cbranch): Always reverse via code change. Handle - unordered compares. Factor tests and string updates. - * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode. - (REVERSIBLE_CC_MODE): Also exclude CCFPmode. - * sparc.md (bunordered, bordered): New. - (bungt, bunlt, buneq, bunge, bunle): New. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root. - * ggc-common.c (ggc_add_rtx_varray_root): New. - (ggc_mark_rtx_varray): New. - (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr - functions down below ggc_mark_foo. - * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare. - -2000-01-25 Richard Henderson <rth@cygnus.com> - - * alpha.c (secondary_reload_class): Don't allocate a secondary - for integral mode memories into FLOAT_REGS. Rearrange the more - complicated memory expression inward. - -2000-01-25 Zack Weinberg <zack@wolery.cumb.org> - - * inclhack.def: Fixes to play nicer with FreeBSD, and - corrections to comments. - (cxx_unready): Add select expression. - (irix_sockaddr): Add bypass expression. - (machine_ansi_h_va_list): New fix. - (stdio_va_list): No need to edit _BSD_VA_LIST_. - Split out addition of "#include <stdarg.h>" to... - (stdio_stdarg_h): ... here. - (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply - to stdlib.h also. Do not munge _BSD_SIZE_T_. - (sysz_stdlib_for_sun): Delete duplicate fix for unprotected - size_t. - (ultrix_ifdef): Tighten up select expression. - - * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of - re_ct and max_mach to avoid use of shell. Make printed names - match names in inclhack.def. Use static copyright date. - Don't count c_test and test expressions as requiring regex_t - slots. Add some commentary. - * inclhack.tpl: Do not include the 'This script contains N - fixup scripts' line if PROGRAM is defined. Use static - copyright date. - -2000-01-24 Jason Merrill <jason@casey.cygnus.com> - - * dwarf2out.c: include "varray.h", not dyn-string.h. - (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose. - (addr_const_to_string, addr_to_string): Lose. - (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c. - (struct dw_val_struct): val_addr is now an rtx. - (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust. - (used_rtx_varray): New varray. - (dwarf2out_init): Initialize it. - (save_rtx): New fn. - (mem_loc_descriptor, add_const_value_attribute): Call it instead of - addr_to_string. - * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h, - sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST. - * Makefile.in (dwarf2out.o): Update dependencies. - -2000-01-24 Richard Henderson <rth@cygnus.com> - - * i386.c (i386_dwarf_output_addr_const): New. - * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New. - - * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR - if defined. - * dwarfout.c (output_mem_loc_descriptor): Likewise. - * i386.c (i386_simplify_dwarf_addr): New. - * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New. - -Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com> - - * dwarf2out.c (gen_struct_or_union_type_die): Set complete if - TYPE_STUB_DECL is NULL. - -2000-01-24 Richard Henderson <rth@cygnus.com> - - * builtins.c (expand_tree_builtin): Move ... - * c-common.c (expand_tree_builtin): ... here. - -2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.h (LOOP_INFO): New accessor macro. - * basic-block.h (struct loop): Rename field `info' to `aux'. - * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop). - (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise. - * unroll.c (loop_iterations, unroll_loop): Likewise. - -2000-01-24 Christopher Faylor <cgf@cygnus.com> - - * config/i386/t-cygwin: Accomodate new winsup directory layout - when searching for include files. - -2000-01-24 Richard Henderson <rth@cygnus.com> - - * rtl.def: Add unordered fp comparisions. - * tree.def: Likewise. - * tree.h: Add ISO C 9x unordered fp comparision builtins. - - * builtins.c (expand_tree_builtin): New function. - * c-typeck.c (build_function_call): Use it. - (build_binary_op): Support unordered compares. - * c-common.c (c_common_nodes_and_builtins): Add unordered compares. - - * combine.c (known_cond): Handle reverse_condition returning UNKNOWN. - (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed. - * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing. - (record_jump_equiv): Handle reverse_condition returning UNKNOWN. - * jump.c (reverse_condition): Don't abort for UNLE etc, but - return UNKNOWN. - (swap_condition): Handle unordered compares. - (thread_jumps): Check can_reverse before reversing. - * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be - reversed for FP. - - * optabs.c (can_compare_p): New argument CODE. Verify branch or - setcc is present before acking for cmp_optab. Update all callers. - (prepare_float_lib_cmp, init_optabs): Handle UNORDERED. - * expmed.c (do_cmp_and_jump): Update for can_compare_p. - * expr.c (expand_expr): Likewise. Support unordered compares. - (do_jump, do_store_flag): Likewise. - * expr.h (enum libfunc_index): Add unordered compares. - - * Makefile.in (FPBIT_FUNCS): Add _unord_sf. - (DPBIT_FUNCS): Add _unord_df. - * config/fp-bit.c (_unord_f2): New. - * fp-test.c (main): Try unordered compare builtins. - - * alpha-protos.h (alpha_fp_comparison_operator): Declare. - * alpha.c (alpha_comparison_operator): Check mode properly. - (alpha_swapped_comparison_operator): Likewise. - (signed_comparison_operator): Likewise. - (alpha_fp_comparison_operator): New. - (alpha_emit_conditional_branch): Handle unordered compares. - * alpha.h (PREDICATE_CODES): Update. - * alpha.md (fp compares): Use alpha_fp_comparison_operator. - (bunordered, bordered): New. - -2000-01-24 Richard Henderson <rth@cygnus.com> - - * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation. - * alpha.md (movtf): New expander, insn, and splitter. - -Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz> - - * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of - dead registers. - -Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. - (FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER): Add frame pointer - (FRAME_POINTER_REGNUM): Set to 20 - (HARD_FRAME_POINTER_REGNUM): New macro. - (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER - to HARD_FRAME_POINTER. - (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM - (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. - (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. - (HI_REGISTER_NAMES): Add "frame". - (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination. - (debug_reg): Handle FRAME_POINTER_REGNUM. - (reg_class): Add arg pointer and frame pointer to NON_Q_REGS, - GENERAL_REGS and INDEX_REGS. - * i386.c (SAVED_REGS_FIRST): new macro. - (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx - (ix86_decompose_address, memory_address_length): Likewise. - (regclass_map): Add frame pointer. - (call_insn_operand): Handle frame_pointer_rtx. - (reg_no_sp_operand): Likewise. - (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx. - (print_operand, legitimize_pic_address): Fix formating. - (ix86_compute_frame_size): Make static, update prototype, new - parameters padding1, padding2, use ix86_nsaved_regs, use - stack_alignment_needed. - (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM - to HARD_FRAME_POINTER_REGNUM conversions. - (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues. - (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues. - (print_reg): Abort on FRAME_POINTER_REGNUM - -Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.h (PREDICATE_CODES): Add aligned_operand. - * i386.c (aligned_operand): New function. - (ix86_aligned_p): Kill. - * i386.md (movhi_1): Emit mov for aligned operands. - (promoting peep2s): Use aligned_operand. - -2000-01-23 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular - expression to allow underscores in macro names. - (fix_char_macro_defines): Increment scanning pointer. - -2000-01-23 Richard Henderson <rth@cygnus.com> - - * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define. - * alpha/osf5.h: New file. - * configure.in (alpha-*-osf5): Add it to tm_file. - - * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target. - - * alpha-protos.h (alpha_emit_xfloating_arith): Declare. - (alpha_emit_xfloating_cvt, function_arg): Declare. - * alpha.c (alpha_emit_conditional_branch): Call - alpha_emit_xfloating_compare for TFmode compares. - (alpha_lookup_xfloating_lib_func): New. - (alpha_compute_xfloating_mode_arg): New. - (alpha_emit_xfloating_libcall): New. - (alpha_emit_xfloating_arith): New. - (alpha_emit_xfloating_compare): New. - (alpha_emit_xfloating_cvt): New. - (print_operand): Add default abort case. - (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE. - * alpha.h (TARGET_HAS_XFLOATING_LIBS): New. - (BIGGEST_ALIGNMENT): Increase to 128 bits. - (RETURN_IN_MEMORY): True for TF/TCmode. - (ALPHA_ARG_SIZE): TF/TCmode is passed indirect. - (FUNCTION_ARG): Move to function_arg. - (FUNCTION_ARG_PASS_BY_REFERENCE): New. - (ASM_OUTPUT_LONG_DOUBLE): New. - (ASM_OUTPUT_DOUBLE): Always output bits. - * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New. - (fix_trunctfdi2, floatditf2, floatunsditf2): New. - (extenddftf2, trunctfdf2): New. - -2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved... - * config/sparc/sol2.h: ... here. - -2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * basic-block.h (struct loops): New field `levels'. - * flow.c (flow_loops_level_compute): Traverse all outer loops. - (flow_loop_level_compute): Initialise level to 1. - (flow_loops_find): Set loops->levels. - (flow_loops_dump): Print loops->levels. - -2000-01-23 Richard Henderson <rth@cygnus.com> - - * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS. - (throw_helper): Iterate over DWARF_FRAME_REGISTERS. - -2000-01-23 Richard Henderson <rth@cygnus.com> - - * i386.c (dbx_register_map, svr4_dbx_register_map): New. - * i386.h (DBX_REGISTER_NUMBER): Use them. - * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise. - * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise. - * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise. - * i386/sequent.h: Kill incorrect comment. - -2000-01-23 Mark Mitchell <mark@codesourcery.com> - - * ggc-page.c (struct page_entry): Make `context_depth' an - `unsigned short'. - (struct globals): Likewise. - -2000-01-23 Clinton Popetz <cpopetz@cygnus.com> - - * loop.c (check_dbra_loop): When checking a loop for - reversability, check the source of any stores to ensure - they don't depend on an initial value. - -2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine. - -2000-01-22 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixincl.c: Move declarations of 'pz_fname' and - 'pz_scan' into scope of entire function. Only affects - compiles with -DDEBUG. - -2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au> - - * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data - section naming to that prior to 2000-01-07 patch. - * config/mips/elf.h (UNIQUE_SECTION): Ditto. - * config/mips/elf64.h (UNIQUE_SECTION): Ditto. - * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto. - * config/i386/interix.c (UNIQUE_SECTION): Ditto. - * config/i386/winnt.c (UNIQUE_SECTION): Ditto. - -2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk> - - * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a - constant. - -2000-01-21 Jim Wilson <wilson@cygnus.com> - - * fixinc/inclhack.tpl: Test for directory before trying to cd into it. - * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate. - -2000-01-21 Zack Weinberg <zack@wolery.cumb.org> - - * cpphash.c (change_newlines): Delete function. - (struct argdata): Delete 'newlines' and 'use_count' fields. - (macroexpand): Remove code referencing those fields. - -2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (loops_info): New variable. - (loop_optimize): Allocate loops->array and free it on exit. - Allocate memory for loops_info and assign to each loop, - replacing alloca. - (find_and_verify_loops): Do not allocate loops->array. - -2000-01-21 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'. - -2000-01-21 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new - pseudos if expanded after first flow. - (movdi_pic_label_ref): Likewise. - -2000-01-20 Richard Henderson <rth@cygnus.com> - - * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. - -2000-01-20 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in (fixinc.sh): Depend on specs. - * fixinc/Makefile.in: Add rule to create machname.h. - (fixlib.o): Depend on machname.h. - * fixinc/fixtests.c (machine_name): New test. - * fixinc/fixfixes.c (machine_name): New fix. - * fixinc/fixlib.c (mn_get_regexps): New helper function for - the machine_name test and fix. - * fixinc/fixlib.h: Prototype it. - * fixinc/inclhack.def (machine_name): Use the C test and fix. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild. - - * gcc.c (do_spec_1) [case P]: Take care not to create - identifiers with three leading or trailing underscores. - - * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC. - (fixincl): Don't specify libraries twice on link line. - (gnu-regex.o): Remove special rule. - * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was - defined by config.h. Do not define _REGEX_RE_COMP. - (regcomp): Allocate and initialize a fastmap. - * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP. - -2000-01-20 Brad Lucier <lucier@math.purdue.edu> - - * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h. - -2000-01-19 Richard Henderson <rth@cygnus.com> - - * flow.c (propagate_block): Replace FIRST, LAST and BNUM - arguments with BB. Update all callers. Tidy line wrapping. - -2000-01-19 Clinton Popetz <cpopetz@cygnus.com> - - * emit-rtl.c (try_split): Return last_insn if we split the - last_insn. - -Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386-protos.h (ix86_compute_frame_size): Remove prototype. - (ix86_initial_elimination_offset): Declare. - * i386.c (ix86_nsaved_regs): Break out from ... - (ix86_can_use_return_insn_p): ... here. - (ix86_emit_save_regs): Break out from ... - (ix86_expand_prologue): ... here. - (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break - out from ... - (ix86_expand_epilogue): ... here. - (ix86_compute_frame_size): Make static, add prototype. - (ix86_initial_elimination_offset): Break out from ... - * i386.h (INITIAL_ELIMINATION_OFFSET): ... here. - -2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * recog.h (OUT_FCN): Delete. - - * vax.md: Call `get_insn_template' instead of OUT_FCN. - -2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cppalloc.c: PROTO -> PARAMS. - * cpperror.c: Likewise. - * cppfiles.c: Likewise. - * cpplib.c: Likewise. - * cpplib.h: Likewise. - - * config/arm/arm-protos.h: PROTO -> PARAMS. - * config/arm/arm.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/fr30/fr30-protos.h: Likewise. - * config/nextstep.c: Likewise. - * config/pa/pa.c: Likewise. - * config/pj/pj.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/v850/v850-protos.h: Likewise. - * config/v850/v850.c: Likewise. - -2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * i370-protos.h: New file. - - * i370.c: Include tm_p.h. Fix compile time warnings. - - * i370.h: Move prototypes to i370-protos.h. Fix compile time - warnings. - - * i370.md: Likewise. - -2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS. - (target_isinf, target_isnan, eisnan): Mark parameter with - ATTRIBUTE_UNUSED. - (eiisinf): Wrap in INFINITY. - (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY. - (ibmtoe): Remove unused variable `rndsav'. - -Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis. - (GO_IF_LEGITIMATE_ADDRESS): Added missing tab. - -2000-01-19 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o. - * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes. - (fix_char_macro_defines, fix_char_macro_uses): New functions. - - * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp. - Recognize Emacs mode markers also. - * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of - C++ comments in C++ headers. Call is_cxx_header only if - necessary. - - * fixinc/inclhack.def (avoid_bool): Add select for the problem and - bypass for ncurses. - (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with... - (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes): - ... these, which use the new C fixes. - (math_exception): Escape literal '+' in bypass expression. - - * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh: - Regenerate. - -2000-01-19 Geoff Keating <geoffk@cygnus.com> - - * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs - inside the MEM. - -2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (loop_optimize): Allocate loop_info structure for each loop - prior to calling scan_loop. - -Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.c (find_barrier, gen_block_redirect): Fix indentation. - (split_branches, calc_live_regs): Likewise. - -Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * sh.md (fpu_single, fp_mode): New attributes. - -2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (current_loop_info): Renamed from loop_info_data - and changed to a pointer. - (loop_optimize): Allocate loop_info structure for each loop - and initialise to zero. - (scan_loop): Set current_loop_info. - - * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set - on iteration_var. - -2000-01-19 Richard Henderson <rth@cygnus.com> - - * stupid.c: Die die die. - * Makefile.in (OBJS): Remove stupid.o. - (stupid.o): Likewise. - - * except.c (emit_eh_context): Don't emit USEs for stupid. - * explow.c (probe_stack_range): Likewise. - * flags.h (obey_regdecls): Remove. - * flow.c (find_basic_blocks): Don't run try_merge_blocks - when not optimizing. - (life_analysis): Limit data collection when not optimizing. - (mark_regs_live_at_end): Always mark the return value registers. - (mark_used_regs): Remove dummy RETURN case. - (print_rtl_with_bb): Don't consult obey_regdecls. - * function.c (use_variable, use_variable_after): Remove. - (assign_parms): Consult optimize not obey_regdecls. - (expand_function_start): Don't emit USEs for stupid. - (expand_function_end): Likewise. - * global.c (build_insn_chain): Export. - * integrate.c (expand_inline_function): Kill return-value USE - handling code. - * jump.c (jump_optimize_1): Do simple jump optimizations and - dead code elimination. - (calculate_can_reach_end): Remove check_deleted argument. - (delete_insn): Patch out insns even when not optimizing. - * local-alloc.c (block_alloc): Don't do tying when not optimizing. - * rtl.h (use_variable, use_variable_after): Remove declarations. - (build_insn_chain): Declare. - * stmt.c (expand_value_return): Don't emit USEs for stupid. - (expand_end_bindings): Likewise. - (expand_decl): Likewise. Consult optimize not obey_regdecls. - * toplev.c (obey_regdecls): Remove. - (rest_of_compilation): Don't set it. Kill stupid in favour of - flow1, local-alloc, and reload. - (main): Don't set obey_regdecls. - - * config/nextstep.c (handle_pragma): Likewise. - - * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid. - - * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alpha-protos.h: PROTO -> PARAMS. - * alpha.c: Likewise. - * elf.h: Likewise. - * h8300.c: Likewise. - * i386-protos.h: Likewise. - * i386.c: Likewise. - * m32r-protos.h: Likewise. - * m32r.c: Likewise. - * mips.c: Likewise. - * mips.md: Likewise. - * gmon-sol2.c: Likewise. - * sparc.c: Likewise. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * ns32k-protos.h: New file. - - * ns32k.c: Fix compile time warnings. - - * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time - warnings. - - * ns32k.md: Likewise. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * vax-protos.h: New file. - - * vax.c: Fix compile time warnings. - - * vax.h: Move prototypes to vax-protos.h. Fix compile time - warnings. - - * vax.md: Likewise. - - * vaxv.md: Likewise. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * romp-protos.h: New file. - - * romp.c: Fix compile time warnings. - - * romp.h: Move prototypes to romp-protos.h. Fix compile time - warnings. - - * romp.md: Likewise. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * we32k-protos.h: New file. - - * we32k.c: Fix compile time warnings. - - * we32k.h: Move prototypes to we32k-protos.h. Fix compile time - warnings. - -2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. - - * except.c (eh_regs): Likewise. - - * final.c (output_operand): Likewise. - - * fold-const.c (target_isinf, target_isnan): Likewise. - -Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz> - - * i386.h (BIGGEST_ALIGNMENT): Set to 128. - (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32) - - * i386.md (memstr): Do not use rep stosb for counts divisible by 4 - when optimize_size. - (clrstrsi): Rewrite. - (strsethi, strsetqi): New expanders. - (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns. - (cmpstrsi): Emit compare insn before cmpstrsi_1 - (cmpstrsi_nz): use flags, set type to str, prefix_length to 1. - (strlensi_1): Likewise. - (cmpstrsi_1): Likewise; do not output compare. - (strlen expander): Do not unroll when optimizing for size. - (*subsi3_carry): Rename to subsi3_carry - (addqi3_cc): New pattern. - * i386.h (processor_costs): Add move_ratio field. - (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE - * i386.c (*_cost): Set move_ratio. - (x86_unroll_strlen): Enable for Athlon, PPro and K6 too. - (x86_expand_strlensi_1): Rewrite the main loop. - -2000-01-17 Richard Henderson <rth@cygnus.com> - - * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode. - * cse.c (find_comparison_args, fold_rtx): Likewise. - * integrate.c (subst_constants): Likewise. - * loop.c (get_condition): Likewise. - - * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF. - -2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de> - - * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. - (RESTORE_WARN_FLAGS): Unpack it. - Change semantic type of extension to ttype. - * c-common.c (split_specs_attrs): Expect an INTEGER_CST. - * c-parse.y, c-parse.c, objc/objc-parse.y, - objc/objc-parse.c: Regenerate. - -2000-01-17 Zack Weinberg <zack@wolery.cumb.org> - - * fixinc/fixlib.c: Add copyright notice. - (compile_re): New function. - * fixinc/fixlib.h: Prototype compile_re. - - * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c: - Use compile_re to compile regular expressions. - - * fixinc/fixincl.c (egrep_test): Don't bother asking regexec - where the pattern matched. - - * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy, - use 'replace'. - (ultrix_ansi_compat): Likewise. - (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test, - add egrep test. - (interactv_add2, interactv_add3): Delete. - (x11_sprintf): Don't use filename glob. - * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh: - Regenerate. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * print-rtl.c: PROTO -> PARAMS. - * real.c: Likewise. - * reg-stack.c: Likewise. - * resource.c: Likewise. - * sdbout.h: Likewise. - * simplify-rtx.c: Likewise. - * stor-layout.c: Likewise. - * stupid.c: Likewise. - * xcoffout.c: Likewise. - * xcoffout.h: Likewise. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * toplev.c: PROTO -> PARAMS. - * toplev.h: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - * unroll.c: Likewise. - * varasm.c: Likewise. - * varray.c: Likewise. - * varray.h: Likewise. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * reload.c: PROTO -> PARAMS. - * reload.h: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.h: Likewise. - * rtl.c: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - * sbitmap.h: Likewise. - * sdbout.c: Likewise. - * stack.h: Likewise. - * stmt.c: Likewise. - * system.h: Likewise. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * machmode.h: PROTO -> PARAMS. - * mbchar.h: Likewise. - * mips-tdump.c: Likewise. - * mips-tfile.c: Likewise. - * optabs.c: Likewise. - * output.h: Likewise. - * prefix.c: Likewise. - * profile.c: Likewise. - * protoize.c: Likewise. - * real.h: Likewise. - * recog.c: Likewise. - * recog.h: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * regs.h: Likewise. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * ggc-common.c: PROTO -> PARAMS. - * ggc-page.c: Likewise. - * ggc-simple.c: Likewise. - * ggc.h: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * gthr-win32.h: Likewise. - * haifa-sched.c: Likewise. - * halfpic.h: Likewise. - * integrate.c: Likewise. - * integrate.h: Likewise. - * jump.c: Likewise. - * lcm.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. - -2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * genattr.c: PROTO -> PARAMS. - * genattrtab.c: Likewise. - * gencheck.c: Likewise. - * gencodes.c: Likewise. - * genconfig.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * genflags.c: Likewise. - * gengenrtl.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - -2000-01-16 Mark Mitchell <mark@codesourcery.com> - - * tree.h (BINFO_VPTR_FIELD): Augment documentation. - -2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro. - * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP. - * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO. - * configure, config.in: Rebuilt. - -2000-01-16 Zack Weinberg <zack@wolery.cumb.org> - - * config/i386/i386.md: Add peephole to merge successive stack - adjusts. - -Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com) - - * gcse.c (insert_insn_end_bb): Use emit_block_insn_before - instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK - when walking backwards to find all the parameter loads when - the basic block ends in a call. - -2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * loop.c (this_loop_info): Delete. - (uid_loop): Add in place of uid_loop_num. All uses updated. - (loop_number_exit_count): Delete and replace with entry in loop - structure. All uses updated. - (loop_number_loop_starts, loop_number_loop_ends): Likewise. - (loop_number_loop_cont, loop_number_cont_dominator): Likewise. - (loop_outer_loop): Likewise. - (loop_invalid, loop_number_exit_labels): Likewise. - (loop_used_count_register): Delete and replace with entry in - loop_info structure. - (find_and_verify_loops): Add loops argument. - (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start, - loop_end, etc. arguments with loop structure pointer. All callers - changed. - (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise. - (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise. - (load_mems_and_recount_loop_regs_set, load_mems): Likewise. - (insert_bct): Likewise. - (basic_induction_var): New argument level. - * loop.h (struct loop_info): Delete fields num, loops_enclosed, - vtop, and cont. Add used_count_register. - (uid_loop): Delete declaration. - (loop_number_exit_count): Likewise. - (loop_number_loop_starts, loop_number_loop_ends): Likewise. - (loop_number_loop_cont, loop_number_cont_dominator): Likewise. - (loop_outer_loop, loop_used_count_register): Likewise. - (loop_invalid, loop_number_exit_labels): Likewise. - (unroll_loop): Replace loop_start and loop_end arguments - with loop structure pointer. - (loop_precondition_p, loop_iterations): Likewise. - Include basic-block.h. - * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments - with loop structure pointer. - (loop_precondition_p, loop_iterations): Likewise. - * basic-block.h (struct loop): New entries vtop, cont, - cont_dominator, start, end, top, scan_start, exit_labels, - exit_count. - * Makefile.in (LOOP_H): Add basic-block.h to dependencies. - -2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> - - * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT. - -2000-01-14 Nathan Sidwell <sidwell@codesourcery.com> - - * config.in: Rebuilt for 2000-01-13 change to acconfig.h. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * pdp11-protos.h: New file. - - * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time - warnings. - - * pdp11.md: Likewise. - - * 2bsd.h: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mn10300-protos.h: New file. - - * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time - warnings. - - * mn10300.md: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * mn10200-protos.h: New file. - - * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time - warnings. - - * mn10200.md: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * h8300-protos.h: New file. - - * h8300.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * h8300.h: Move prototypes to h8300-protos.h. Fix compile time - warnings. - - * h8300.md: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED. - (asm_emit_uninitialised): Likewise. - -2000-01-13 Gavin Romig-Koch <gavin@cygnus.com> - - * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New. - * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE. - -2000-01-14 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.c (override_options): Don't turn on extra - alignment for mips16. - -2000-01-14 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit - eabi, and make sure queued POSTINCREMENT rtl is emitted at - the right point. - -2000-01-14 Clinton Popetz <cpopetz@cygnus.com> - - * builtins.c (PAD_VARARGS_DOWN): Define. - (std_expand_builtin_va_arg): Use the above macro. - * config/mips/mips.h (PAD_VARARGS_DOWN): Define. - * tm.texi (Register Arguments): Document the above macro. - -2000-01-14 Nick Clifton <nickc@cygnus.com> - - * emit-rtl.c (emit_insn): If checking is enabled, make sure - that this function has not been used to emit a jump - instruction. - - * jump.c (return_jump_1): Cope with being passed a null rtx. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * eh-common.h: PROTO -> PARAMS. - * emit-rtl.c: Likewise. - * errors.c: Likewise. - * errors.h: Likewise. - * except.c: Likewise. - * except.h: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * expr.h: Likewise. - * final.c: Likewise. - * fix-header.c: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * function.h: Likewise. - * gcc.c: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * sh-protos.h: New file. - - * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h. - Add static prototypes. Fix compile time warnings. - - * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings. - * sh.md: Likewise. - * elf.h: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * arc-protos.h: New file. - - * arc.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * arc.h: Move prototypes to arc-protos.h. Fix compile time - warnings. - - * arc.md: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * dsp16xx-protos.h: New file. - - * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time - warnings. - - * dsp16xx.md: Likewise. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * convex-protos.h: New file. - - * convex.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * convex.h: Move prototypes to convex-protos.h. Fix compile time - warnings. - -2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * elxsi-protos.h: New file. - - * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time - warnings. - - * elxsi.md: Likewise. - -2000-01-14 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant - case for moving from HI/LO/HI_LO_REG. This makes the behavior - match the comment for MIPS16. - -Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com) - - * flow.c (split_edge): Do not call set_block_for_insn if we - do not have a basic_block_for_insn structure. - - * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain - and destination functions are 32bit aligned within the trampoline. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. - (TRAMPOLINE_ALIGNMENT): Define. - - * cse.c (cse_insn): When changing (set (pc) (reg)) to - (set (pc) (label_ref)), verify the change creates a valid insn. - - * fr30.c (call_operand): Tighten and rework to match rules for - call RTL expressions. - * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs. - * fr30.md (call patterns): Improve constraints. - -Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com> - - * fr30.c (fr30_expand_epilogue): Revert last change. - Use emit_jump_insn for the return insn. - -Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com> - Stan Cox <scox@cygnus.com> - - * predict.c: New file. Preliminary infrastructure work for static - branch prediction and basic block reordering. - * basic-block.h: Add prototype for estimate_probability. - * Makefile.in: Add rules for predict.o. - -2000-01-13 Jason Merrill <jason@yorick.cygnus.com> - - * fixincludes (va_list): Use __not_va_list__ for the dummy. - * fixinc/*: Likewise. - -2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * cccp.c: PROTO -> PARAMS. - * cexp.y: Likewise. - * collect2.c: Likewise. - * combine.c: Likewise. - * convert.h: Likewise. - * cse.c: Likewise. - * dbxout.c: Likewise. - * dbxout.h: Likewise. - * diagnostic.c: Likewise. - * doprint.c: Likewise. - * dwarf2out.c: Likewise. - * dwarf2out.h: Likewise. - * dwarfout.c: Likewise. - * dwarfout.h: Likewise. - * dyn-string.h: Likewise. - -2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in - macro conditionals guarding use. - - * dwarf2out.c: Include "tm_p.h". - - * function.c (locate_and_pad_parm): Mark parameter with - ATTRIBUTE_UNUSED. - (expand_function_end): Likewise for variable `context'. - - * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. - -2000-01-13 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed - register to prevent compile time warnings. - -2000-01-13 Zack Weinberg <zack@wolery.cumb.org> - - * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv' - to avoid -Wtraditional warning. - -2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * 1750a-protos.h: New file. - - * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time - warnings. - - * 1750a.md: Likewise. - -2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * a29k-protos.h: New file. - - * a29k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * a29k.h: Move prototypes to a29k-protos.h. Fix compile time - warnings. - -2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * clipper-protos.h: New file. - - * clipper.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * clipper.h: Move prototypes to clipper-protos.h. Fix compile time - warnings. - -Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS. - -2000-01-13 Nathan Sidwell <sidwell@codesourcery.com> - - * configure.in (--enable-new-gxx-abi): New option. - * acconfig.h (ENABLE_NEW_GXX_ABI): New define. - * Makefile.in (GXX_ABI_FLAG): New variable. - * configure: Regenerate. - -2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. - * tm.texi (FORCE_STRUCT_BLK): Document. - * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. - -Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com> - - * config/ns32k/ns32k.md: Revert Jan 9 change. - - * genrecog.c (maybe_both_true_2): Do not compare a predicate-test - to a mode-test, if the predicate is address_operand. - -Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) - - * combine.c (if_then_else_cond): Be careful about what kinds - of RTL expressions are passed to operand_subword. - - * flow.c (split_edge): If we have to insert a new jump, make - sure to associate it with a basic block. - - * flow.c (commit_one_edge_insertion): A block with one successor - can end in a JUMP_INSN that is not a simplejump. - -2000-01-12 Robert Lipe <robertl@sco.com> - - * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor". - (BUILD_VA_LIST_TYPE): Define. - (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact - with crtstuff.c. - -2000-01-12 Jason Merrill <jason@casey.cygnus.com> - - * cccp.c (do_pragma): Add cast to (char *). - -2000-01-12 Richard Henderson <rth@cygnus.com> - Fred Fish <fnf@be.com> - Jason Merrill <jason@cygnus.com> - - * configure.in (i?86-*-beos{pe,elf,}*): Recognize. - * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files. - * i386/beos-elf.h, i386/beos-pe.h: New files. - - * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New. - * cross-make (SYSTEM_HEADER_DIR): Define using - CROSS_SYSTEM_HEADER_DIR. - - * gcc.c (LIBRARY_PATH_ENV): Provide default. - (process_command): Use it. - (main): Likewise. Kill trailing = from env vars. - (build_search_list): Put it back. - * collect2.c (main): Use LIBRARY_PATH_ENV. - - * configure.in (GCC_NEED_DECLARATIONS): Add environ. - * toplev.c: Use NEED_DECLARATION_ENVIRON. - - * tm.texi (Frame Layout): Document SMALL_STACK. - * c-common.c (c_common_nodes_and_builtins): Check it. - - * system.h: Undef alloca after including glibc's <stdlib.h>, - if USE_C_ALLOCA is defined. - - * gcc.c (set_input): New fn. - (main): After all input files are compiled, reset the input file - info to the first. - - * aclocal.m4 (rindex, index): If already defined, don't attempt - to redefine. - - * ginclude/varargs.h: (__va_list__): Define ifndef. - * ginclude/stdarg.h: Likewise. - - * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int - instead of unsigned char. - - * hash.h (true, false, boolean): Undef before enum. - - * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be - proper type of "HOST_WIDE_INT *", rather than their natural type of - "unsigned HOST_WIDE_INT *". - -2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets. - - * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. - - * regclass.c (choose_hard_reg_mode): Likewise. - - * reload.c (find_valid_class, strict_memory_address_p): Likewise. - - * reorg.c (optimize_skip): Wrap prototype in macro conditionals. - -2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * c-common.c: PROTO -> PARAMS. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-iterate.c: Likewise. - * c-lang.c: Likewise. - * c-lex.c: Likewise. - * c-lex.h: Likewise. - * c-parse.in: Likewise. - * c-pragma.c: Likewise. - * c-pragma.h: Likewise. - * c-tree.h: Likewise. - * c-typeck.c: Likewise. - * objc/objc-act.c: Likewise. - * objc/objc-act.h: Likewise. - -2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * m88k-protos.h: New file. - - * m88k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings. - - * m88k.md: Likewise. - - * tekXD88.h: Likewise. - -2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * m68k-protos.h: New file. - - * m68k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. - - * mot3300.h: Likewise. - -2000-01-12 Richard Earnshaw <rearnsha@arm.com> - - * haifa-sched.c (split_edges): Pass edgeset_size as second arg to - extract_bitlst. - (extract_bitlist): Declare bitlen. - -2000-01-12 Zack Weinberg <zack@wolery.cumb.org - - * cccp.c: Accept and ignore -lang-fortran. - - * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the - qualifiers don't match at any level of pointerness. - -2000-01-12 Robert Lipe <robertl@sco.com> - - * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT. - -2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk> - - * reload1.c (reload_reg_unavailable): New static variable. - (reload_reg_free_p): Test it. - (reload_reg_free_for_value_p): Test it instead of - reload_reg_used. - (choose_reload_regs_init): Compute it. - -Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com) - - * reorg.c (fill_slots_from_thread): Check modified_in_p - before replacing. - -Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com> - - * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format - these nodes even if INTERNALS is not set. - -Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com> - - * gcse.c (delete_null_pointer_checks_1): Cope when - get_condition cannot determine the condition. - -2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> - - * toplev.h (set_message_length): Declare. - - * diagnostic.c (obstack_chunk_alloc): Define macro. - (obstack_chunk_free): Likewise. - (struct output_buffer): New data structure. - (vmessage): Remove. - (output_maximum_width): New variable. - (doing_line_wrapping, set_message_length, init_output_buffer, - get_output_prefix, output_space_left, emit_output_prefix, - output_newline, output_append, output_puts, dump_output, - vbuild_message_string, build_message_string, build_location_prefix, - voutput_notice, output_printf, line_wrapper_printf, - vline_wrapper_message_with_location): New functions. Implement - automatic line wrapping. - (v_message_with_decl): Make it handle automatic line wrapping. - (v_error_with_file_and_line): Likewise. - (v_warning_with_file_and_line): Likewise. - (announce_function): Likewise. - (default_print_error_function): Likewise. - -2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org> - - * cpplib.h (struct cpp_options): Change lang_asm to char. - Add lang_fortran. - * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's - done in cpp_handle_option now. - (initialize_builtins): Take out special case code used only by - __STDC_VERSION__. - (cpp_handle_option): Turn off trigraphs and trigraph warnings - if -traditional. Recognize -lang-fortran and set - lang_fortran, also turn off cplusplus_comments. - (print_help): Document -lang-fortran. - * cpplib.c (handle_directive): Ignore `# 123 "file"' if - lang_asm. Ignore all directives other than `# 123 "file"' if - CPP_PREPROCESSED. - (cpp_get_token): If -traditional, don't recognize directives - unless the # is in column 1. - (parse_string): If lang_fortran or lang_asm, silently - terminate strings ('' or "") at end of line. - Remove unnecessary braces. - -2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - Richard Henderson <rth@cygnus.com> - - * resource.c (mark_referenced_resources): Mark a set strict_low_part - as used. - * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set - strict_low_part when possible. - -2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * alias.c: PROTO -> PARAMS. - * basic-block.h: Likewise. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * builtins.c: Likewise. - * c-aux-info.c: Likewise. - * caller-save.c: Likewise. - * calls.c: Likewise. - -2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (toplev.o): Depend on regs.h. - - * output.h (tdesc_section): Prototype. - - * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED. - - * sdbout.c: Include "tm_p.h". - - * toplev.c: Include "regs.h". - -Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com> - - * unroll.c (unroll_loop): Add EH support. - -2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * pa-protos.h: New file. - - * pa.c: Include recog.h and tm_p.h. - (compute_zdepwi_operands, compute_movstrsi_length, - remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d, - find_addr_reg, import_milli): Add static prototypes. - (pa_cpu_string, pa_arch_string): Constify a char*. - (legitimize_pic_address): Pass argument `mode' to pic_label_operand. - (read_only_operand): Add argument `mode'. - (singlemove_string, output_move_double, output_fp_move_double, - output_block_move, output_and, output_ior, output_ascii, - remove_useless_addtr_insns, milli_names, output_mul_insn, - output_div_insn, output_mod_insn, output_arg_descriptor, - output_cbranch, output_bb, output_bvb, output_dbra, , - output_millicode_call, output_call, hppa_encode_label, - output_parallel_movb, output_parallel_addb): Constify a char*. - (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED. - (output_parallel_addb): Remove extra arg to `constrain_operands' - - * pa.h: Move all prototypes to pa-protos.h. - (pa_cpu_string, pa_arch_string): Constify a char*. - (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument. - - * pa.md: Call `function_label_operand' with mode argument. - Likewise for `read_only_operand'. - Fix nesting of parens in call to `symbolic_operand'. - -2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * i860-protos.h: New file. - - * i860.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings. - - * i860.md: Likewise. - -Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (movstrsi expander): Rewrite. - (movstrsi_1 insn): Deleted. - (strmovhi, strmovqi expander): New expanders. - (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns. - * i386.c (x86_single_stringop): New global variable. - * i386.h (x86_single_stringop): Declare. - (TARGET_SINGLE_STRINGOP): New macro. - -2000-01-11 Clinton Popetz <cpopetz@cygnus.com> - - * config/mips/mips.c (mips_va_arg): For EABI, emit the queued - integer vararg POSTINCREMENT before the destination of the jump - for the hard fp case. - (function_arg_pass_by_reference): Pass a copy of CUM to - FUNCTION_ARG. - - * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check - for CONSTANT_ADDRESS_P above while loop for subreg. - -2000-01-11 Clinton Popetz <cpopetz@cygnus.com> - - * flow.c (propagate_block): When a prologue/epilogue insn - is marked dead, unconditionally clear libcall_is_dead and - insn_is_dead, and only dump rtl if warnings aren't being - suppressed. - -Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz> - - * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD. - * i386.md (FIRST_PSEUDO_REGISTER): Set to 20. - (FIXED_REGISTERS): Set dirflag as fixed. - (CALL_USED_REGISTERS): Set dirflag as used. - (REG_ALLOC_ORDER): Set dirflag as last one. - (DIRFLAG_REG): New macro. - (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility. - (HI_REGISTER_NAMES): Add dirflag. - (DEBUF_PRINT_REG): Handle dirflag. - * i386.md (type attribute): New cld and str types. - (length_opcode attribute): Set cld and str to 1. - (memory attribute): Set str to unknown - it is not clear from the - patterns. - (pent_np function unit): Prefixed string operations takes 12 cycles - minimally; cld takes 2 cycles. - (ppro_uops attribute): Str is "many" and cld is "few". - (ppro_p0 unit): Handle cld here. - (k6_alux unit): Handle cld and str types. - (k6_load unit): It is ocupied by str opcodes. - (k6_store unit): It is ocupied by str opcodes. - (athlon_decode): Str is vector decoded. - (athlon_ieu): Handle str and cld. - (cld pattern): New. - (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction - (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1, - cmpstrsi_nz_1 insn): Do not output cld instruction - -Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org> - - * gcc.texi (G++ and GCC): Add Java and Chill. - (Bug Critera): Don't list languages. - - * gcc.texi (Incompatibilities): No longer claim most C compilers - are K&R. - - * gcc.texi (G++ and GCC): Update other front-ends list. - -Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_expand_setcc): Fix typo. - (ix86_expand_movcc): Similarly. - - * Band-aid until haifa's bitset implementation is nuked. - * haifa-sched.c (extract_bitlst): New parameter for size of the - bitset in bits. All callers changed. Avoid looking at undefined - bits in the bitset. - (edgeset_bitsize): New variable. - (schedule_region): Initialize edgeset_bitsize. - -2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * Makefile.in (optabs.o): Depend on real.h - (resource.o): Depend on insn-attr.h - - * builtins.c (result_vector): Wrap prototype in macro conditions - governing definition and use. - - * c-common.c: Include tm_p.h. - - * c-lex.c: Likewise. - - * elfos.h: Constify a char*. - - * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. - (get_attr_length, shorten_branches, profile_after_prologue): Mark - parameter with ATTRIBUTE_UNUSED. - - * fold-const.c (exact_real_inverse): Wrap variable `i' in - CHECK_FLOAT_VALUE. - - * haifa-sched.c (schedule_insns): Mark parameter with - ATTRIBUTE_UNUSED. - - * optabs.c: Include real.h. - - * real.h (ereal_atof): Add prototype arguments. - - * resource.c: Include insn-attr.h. - - * sdbout.c (sdbout_queue_anonymous_type, - sdbout_dequeue_anonymous_types): Wrap in macro - SDB_ALLOW_FORWARD_REFERENCES. - (sdbout_init, sdbout_start_new_source_file): Mark parameter with - ATTRIBUTE_UNUSED. - - * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. - - * stupid.c: Include tm_p.h. - - * tree.c (real_value_from_int_cst): Mark parameter with - ATTRIBUTE_UNUSED. - -2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * i960-protos.h: New file. - - * i960.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings. - -2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * combine.c (expand_field_assignment): Do not discard SUBREGs - while computing nonzero_bits. - -2000-01-09 Nick Clifton <nickc@cygnus.com> - - * config/arm/arm.c: Fix compile time warnings about signed vs - unsigned constants. - * config/arm/arm.h: Fix compile time warnings about signed vs - unsigned constants. - -2000-01-09 Philip Blundell <philb@gnu.org> - - * config/arm/arm.c (output_return_instruction): Use `ldr' rather - than `ldm' with only one register. - * config/arm/arm.md (push_multi): Use `str' rather than `stm' with - only one register. - - * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is - clobbered. - -Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com> - - * config/ns32k/ns32k.md (load or push effective address): Operand 1 - must have SImode. - -2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around - assignment used as truth value. - - * function.c (assign_temp): Mark parameter `dont_promote' with - ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro - PROMOTE_FOR_CALL_ONLY. - - * genrecog.c (write_subroutine): Mark variable `operands' with - ATTRIBUTE_UNUSED. - - * optabs.c (prepare_cmp_insn): Mark parameter `align' with - ATTRIBUTE_UNUSED. - - * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. - (sdbout_begin_block, sdbout_end_block): Likewise for `file'. - - * toplev.c (note_deferral_of_defined_inline_function): Likewise - for `decl'. - -2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x.h: Tidy up comments. - * config/c4x.c: Likewise. - -Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com) - - * fold-const.c (lshift_double, rshift_double): Handle - shifting by 2 * HOST_BITS_PER_WIDE_INT correctly. - -2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - * toplev.c (rest_of_compilation): Initialize cse_not_expected as - in prepare_function_start(). - -Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com> - - * config/v850/v850.c (expand_epilogue): Interrupt functions no - longer allocate extra stack for function calls. - -2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (*subqf3_set): Fix typo. - -2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0. - -2000-01-07 David Edelsohn <edelsohn@gnu.org> - - * rs6000.c (processor_target_table): Add power3 as alias for 630. - * aix43.h: Revert Aug 2 change. - (HAS_INIT_SECTION): Define, not visible yet. - (LD_INIT_SWITCH): Define, not visible yet. - * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. - - * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too. - - * collect2.c (main): Expand ld2 size further. - (export_object_lst): Cast assignment to avoid warning. - (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support. - (scan_prog_file, COFF): Do not collect initialization or - finalization functions generated for entire shared object if - init/fini support present. - -2000-01-07 Nick Clifton <nickc@cygnus.com> - - * config/elfos.h: Tidy up formatting of marcos. Make sure - that .section directives are always prefixed by a tab. - - * config/svr4.h: Add #include "elfos.h" and remove duplicate - definitions. - -2000-01-07 Matt Austern <austern@sgi.com> - - * fold-const.c (real_hex_to_f): Remove duplicate declaration of - expon. - -Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of - crtstuff.c. - (crtbegin.o, s-crtS): Likewise. - -2000-01-06 Richard Henderson <rth@cygnus.com> - - * alpha.md (adddi_2+1): Limit offset such that it will be - loadable with a single ldah+lda pair. - (adddi_2+2): Explicitly fail split if we can't make it work. - -2000-01-06 Mumit Khan <khan@xraylith.wisc.edu> - - * protoize.c: Conditionally include unistd.h. - (IS_SAME_PATH_CHAR): New macro. - (IS_SAME_PATH): New macro. - (CPLUS_FILE_SUFFIX): New macro. - (cplus_suffix): New static variable. - (is_abspath): New static function. - (in_system_include_dir): Handle DOS style pathnames. - (file_could_be_converted): Likewise. - (file_normally_convertible): Likewise. - (directory_specified_p): Likewise. - (file_excluded_p): Likewise. - (abspath): Likewise. - (shortpath): Likewise. - (referenced_file_is_newer): Likewise. - (save_def_or_dec): Likewise. - (do_processing): Likewise. - (main): Likewise. - (edit_file): Likewise. Use rename instead of link. - (rename_c_file): Likewise. Don't rename syscalls file. - (munge_compile_params): Define null device for DOS based systems. - (process_aux_info_file): Use binary mode if appliable. - (edit_file): Likewise. - * invoke.texi (Running Protoize): Document C++ suffixes used. - - * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and - IS_DIR_SEPARATOR macros. - * collect2.c: Likewise. - * cppinit.c: Likewise. - * dwarf2out.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * prefix.c: Likewise. - * rtl.c: Likewise. - * toplev.c: Likewise. - * system.h: And move to here. - - * prefix.c (update_path): Fix typo in variable name. - -2000-01-06 Richard Henderson <rth@cygnus.com> - - * flow.c (mark_set_1): Use loop_depth+1 as reference weight. - (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise. - (count_reg_sets_1, count_reg_references): Likewise. - (flow_loops_level_compute): Start counting actual loop depth at 1. - (flow_loops_find): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change. - -2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> - - * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to - FIRST_PSEUDO_REGISTER - * dwarf2out.c: Don't include frame.h - * dwarfout.c: Likewise - * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on - frame.h - -Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz> - - * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of - dead registers. - - * i386.c (movsf splitter): Fix typo in my last checkin. - -2000-01-05 Nick Clifton <nickc@cygnus.com> - - * varasm.c (IN_NAMED_SECTION): Allow targets to provide their - own definition of this macro. - (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either - flag_data_sections or UNIQUE_SECTION_P are true. - - * tm.texi (UNIQUE_SECTION): Document that it can be called for - unitialised data decls. - - * config/i386/winnt.c (i386_pe_unique_section): Cope with - being called for uninitialised data. - - * config/i386/interix.c (i386_pe_unique_section): Cope with - being called for uninitialised data. - - * config/mips/elf.h (UNIQUE_SECTION): Cope with being called - for uninitialised data. - - * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called - for uninitialised data. - - * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called - for uninitialised data. - - * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define. - (UNIQUE_SECTION_P): Always generate a unique section if - flag_data_sections is true. - (UNIQUE_SECTION): Also generate unique sections for - uninitialised data. - (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section(). - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use - named_section(). - -2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF, - SI, or DI. - -2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (udivqi3, divqi3): Delete. - (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise. - (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New. - (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise. - (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise. - - * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls. - -2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu> - - * c-decl.c (finish_enum): Simplify code to determine minimum and - maximum values of the enum, and calculate the type. Remove check - for FUNCTION_DECLs in the values list, which cannot happen. Replace - the DECL_INITIAL of each enumeration constant with a copy converted - to the enumeration type. When updating variant types, don't bother - updating the type itself. - - * c-typeck.c (build_binary_op): Simplify conditional expressions - when weeding out spurious signed-unsigned warnings. Add new - spurious warning category: if the unsigned quantity is an enum - and its maximum value fits in signed_type(result_type). Update - commentary. - (build_conditional_expr): Warn here if one alternative is signed - and the other is unsigned. - -2000-01-05 Nick Clifton <nickc@cygnus.com> - - * config/fr30/fr30.h: Remove extraneous comments. - -2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk> - - * reload1.c (choose_reload_regs): When disabling a reload, also - set reload_spill_index to -1. - -2000-01-04 Joel Sherrill (joel@OARcorp.com> - - * configure.in (m68*-*-rtemscoff*): New target, formal name for - old m68*-*-rtems*. - (m68*-*-rtemself*): New target. - (mips64orion-*-rtems*): Remove duplicate definition of tm_file. - (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*. - (sparc*-*-rtemself*): New target. - (sparc*-*-rtems*): Now elf not a.out. - * config/i386/rtems.h: Include config/rtems.h. - * config/i386/rtemself.h: Include config/rtems.h. - * config/i960/rtems.h: Include config/rtems.h. - * config/m68k/rtems.h: Include config/rtems.h. - * config/m68k/rtemself.h: Include config/rtems.h. - * config/mips/rtems64.h: Include config/rtems.h. - * config/pa/rtems.h: Include config/rtems.h. - * config/rs6000/rtems.h: Include config/rtems.h. - * config/sh/rtems.h: Include config/rtems.h. - * config/sh/rtemself.h: Include config/rtems.h. - * config/sparc/rtems.h: Include config/rtems.h. - * config/sparc/rtemself.h: Include config/rtems.h - -Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru> - - * final.c (shorten_branches): Correctly compute length of - asms without operands. - -Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com> - - * configure.in: Add pj target. - * configure: Regenerate. - * config/pj: New directory. - * config/pj/lib1funcs.S: New file. - * config/pj/linux.h: New file. - * config/pj/pj.c: New file. - * config/pj/pj.md: New file. - * config/pj/pjl.h: New file. - * config/pj/t-pj: New file. - * config/pj/xm-pj.h: New file - -Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Run shorten-branches before - reg-stack for now. - -2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of - macros so that they're consistent with their names. - * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise. - * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise. - -2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> - - * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never - modified inadvertently. - -2000-01-04 Joel Sherrill <joel@OARcorp.com> - - * configure.in (v850*-*-rtems*): New target. - * configure: Regenerate. - * config/v850/rtems.h: New file. - -2000-01-04 Mumit Khan <khan@xraylith.wisc.edu> - - * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime. - (__gthread_key_create): Likewise. - (__gthread_key_dtor): Likewise. - (__gthread_once): Fix logic. - (__gthread_key_delete): Cast away constness. - - * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option. - * invoke.texi: Document. - * i386/mingw32.h (CPP_SPEC): Use. - (LIBGCC_SPEC): Likewise. - * i386/crtdll.h (LIBGCC_SPEC): Likewise. - -2000-01-04 David Edelsohn <edelsohn@gnu.org> - - * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine. - (HANDLE_PRAGMA_PACK): Undefine. - (SLOW_UNALIGNED_ACCESS): Define. - -2000-01-04 David Edelsohn <edelsohn@gnu.org> - - * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters - to default definition. - (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. - (store_fixed_bit_field): Call macro with word_mode and alignment. - (extract_bit_field): Call macro with relevant mode and alignment. - * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters - to default definition. - (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode - and alignment. - (move_by_pieces_ninsns): Likewise. - (clear_by_pieces): Likewise. - (emit_push_insn): Likewise. - (store_field): Call macro with relevant mode and alignment. - (expand_expr): Likewise. - (expand_expr_unaligned): Likewise. - - * rs6000.h (HANDLE_PRAGMA_PACK): Define. - (SLOW_UNALIGNED_ACCESS): Define. - (CASE_VECTOR_MODE): Always use 32-bit offsets. - (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. - (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op. - (toc_section): Likewise and .toc pseudo-op. - (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in - 64-bit mode. - (TEXT_SECTION_ASM_OP): Likewise. - (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use - 32-bit offsets. - - * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters. - * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise. - * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise. - * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise. - * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise. - -Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com) - - * regclass.c: Revert my Jan 4 change to loop cost computation. - -Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz> - - * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing - compilation. - -2000-01-04 Stan Cox <scox@cygnus.com> - - * haifa-sched.c (build_control_flow): Change unreachable simple - loop test to check if current block has only one predecessor. - (find_rgns): Initialize degree. Use dest as degree index, not src. - -2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * builtins.c (expand_builtin_strlen): Initialize variable `icode'. - - * calls.c (expand_call): Likewise for - `old_stack_arg_under_construction'. - - * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. - - * function.c (pad_to_arg_alignment): Likewise for `save_var' and - `save_constant'. - - * gcc.c (execute): Likewise for `ut' and `st'. - - * genattrtab.c (attr_rtx): Likewise for `rt_val'. - - * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. - - * jump.c (jump_optimize_1): Likewise for `temp2'. - - * local-alloc.c (block_alloc): Likewise for `r1'. - - * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. - - * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. - (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. - - * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' - and `set2'. - - * reload.c (find_reloads): Likewise for `goal_alternative_number' - and `goal_earlyclobber'. - - * scan-decls.c (scan_decls): Likewise for `prev_id_end'. - - * sdbout.c (sdbout_one_type): Likewise for `member_scl'. - - * stupid.c (stupid_life_analysis): Likewise for `chain'. - - * unroll.c (copy_loop_body): Likewise for `copy'. - - * varasm.c (output_constructor): Likewise for `byte'. - -Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz> - - * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory - all FP constants for constant->reg moves. - (ix86_split_to_parts): Try to convert memory address into immediate - when available in the constant pool. - * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg - moves. - (LEGITIMATE_CONSTANT_P): Return 1. - * i386.md (pushsf): New splitter to convert constant pool memory - reference to immediate. - (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before - reload. - -2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk> - - * i386.md (ashlsi3_cmpno): Don't accept variables shifts. - (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno, - ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise. - (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno, - rotrhi3_cmpno, rotrqi3_cmpno): Likewise. - -2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de> - - * ginclude/stdbool.h: Support compilation as C++. - -Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk> - - * fold-const.c (make_range): Don't try to reverse an unbounded range. - -Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com) - - * regclass.c (regclass): Properly compute loop_cost. Adjust - comments. - - * regclass.c: Fix minor whitespace problems. - -2000-01-03 Anthony Green <green@cygnus.com> - - * config/i386/i386.md (builtin_setjmp_receiver): New pattern. - Restore the pic register if required. - -2000-01-03 Ulrich Drepper <drepper@cygnus.com> - - * c-common.c (format_char_info): Update comment. - (check_format_info): Recognize 'z' modifier in the same way 'Z' - was recognized. Emit warning for formats new in ISO C99 only - if flag_isoc9x is not set. - -Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com> - - * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs. - -Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz> - - * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to - SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND. - (make_compound_operation): Choose cheaper alternative between - ZERO_EXTEND and SIGN_EXTEND when sign bit is not set. - - * regclass.c (op_costs): Remove global variable. - (record_reg_classes): New parameter "op_costs" and "reg_pref". - (record_operand_costs): Break out from ... - (scan_one_insn): ... here. - (dump_regclass): Make dumps nicer. - (regclass): Dump preferrences choosed and changes done during passes. - -2000-01-03 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC. - -2000-01-03 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (gen_df_reg): New function. - * config/sparc/sparc-protos.h (gen_df_reg): Add prototype. - * config/sparc/sparc.md (movtf_no_e_insn_sp64+1, - movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1, - movtf_cc_reg_sp64+1): Use it. - -2000-01-02 Mark Mitchell <mark@codesourcery.com> - - * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on - copied LABEL_DECLs. - -Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com> - - * config/i386/i386.c (ix86_expand_unary_operator): Function - definition made void. - (ix86_expand_binary_operator): Update outdated preceding comment. - * config/i386/i386-protos.h (ix86_expand_unary_operator): Update - prototype. - - * config/i386/i386.c (override_options): Fix option-name typo. - -2000-01-02 Mark Mitchell <mark@codesourcery.com> - - * system.h (CEIL): Define. - * builtins.c (CEIL): Remove. - * expmed.c (CEIL): Likewise. - * expr.c (CEIL): Likewise. - * stor-layout.c (CEIL): Likewise. - -2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * expr.c (store_constructor_field): Fix typo introduced with last - gcc2 merge. - -2000-01-01 Mark Mitchell <mark@codesourcery.com> - - * tree.h (BINFO_N_BASETYPES): New macro. - -2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk> - - * expmed.c (emit_store_flag): Prevent losing a pending stack - adjust the same way we prevent losing queued increments. - -See ChangeLog.2 for earlier changes. diff --git a/gcc/ChangeLog.3 b/gcc/ChangeLog.3 new file mode 100644 index 00000000000..feb39cdb4bc --- /dev/null +++ b/gcc/ChangeLog.3 @@ -0,0 +1,16860 @@ +2000-06-30 Mark Mitchell <mark@codesourcery.com> + + * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h. + * c-common.c (ridpointers): Declare. + * c-common.h (enum rid): Declare. + (NORID): Likewise. + (ridpointers): Likewise. + * c-lex.c (ridpointers): Don't declare. + (init_lex): Initialize ridpointers. + * c-lex.h (enum rid): Don't declare. + (NORID): Likewise. + (RID_FIRST_MODIFIER): Likewise. + (ridpointers): Likewise. + +2000-06-30 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they + have global scope. + +2000-06-30 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * invoke.texi (-Wreturn-type): In C++, a missing return type is + always an error. + +2000-06-30 Catherine Moore <clm@cygnus.com> + + * c-common.c (decl_attributes): Differentiate between + types and type decls for alignment. + +2000-06-30 Nathan Sidwell <nathan@codesourcery.com> + + * cpp.texi: Document #pragma GCC dependency + * cppfiles.c (open_include_file): Set date to unknown. + (_cpp_compare_file_date): New function. + (read_include_file): Set file date. + * cpphash.h (struct include_file): Add date member. + (_cpp_compare_file_date): Prototype. + * cpplib.c (parse_include): Add trail parameter. Adjust. + (do_include): Adjust parse_include call. + (do_import): Likewise. + (do_include_next): Likewise. + (gcc_pragmas): Add dependency pragma. + (do_pragma_dependancy): New pragma. + +2000-06-29 Jason Merrill <jason@redhat.com> + + * dwarf2out.c (output_loc_operands): Don't abort on codes that have + no operands. + +2000-06-29 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for + a volatile mem and FR_REGS. + +2000-06-29 Mark Mitchell <mark@codesourcery.com> + + * c-common.c: Include c-common.h, not c-lex.h or c-tree.h. + * c-common.h (flag_const_strings): Declare. + (warn_format): Likewise. + (flag_traditional): Likewise. + (flag_isoc99): Likewise. + (warn_parentheses): Likewise. + (warn_conversion): Likewise. + (C_TYPE_OBJECT_P): Likewise. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (C_EXP_ORIGINAL_CODE): Likewise. + (build_unary_op): Likewise. + (build_binary_op): Likewise. + (lvalue_p): Likewise. + (default_conversion): Likewise. + (common_type): Likewise. + * c-tree.h (C_TYPE_OBJECT_P): Remove. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (C_EXP_ORIGINAL_CODE): Likewise. + (common_type): Likewise. + (default_conversion): Likewise. + (build_binary_op): Likewise. + (build_unary_op): Likewise. + (lvalue_p): Likewise. + (flag_const_strings): Likewise. + (warn_format): Likewise. + (warn_conversion): Likewise. + (flag_traditional): Likewise. + (flag_isoc99): Likewise. + (warn_parentheses): Likewise. + +2000-06-29 James E. Wilson <wilson@cygnus.com> + + * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2. + + * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the + same. Only tie XFmode with XFmode. + +2000-06-29 Zack Weinberg <zack@wolery.cumb.org> + + * c-decl.c, timevar.c, tlink.c: Include intl.h. + * Makefile.in: Update deps. + +2000-06-29 Andrew Haley <aph@cygnus.com> + + * toplev.c (main): On an IA-64, make flag_unwind_tables defauit + to true. + +2000-06-29 Andrew Haley <aph@cygnus.com> + + * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not + bytes: remove the multiply by 8. + +2000-06-29 Philipp Thomas <pthomas@suse.de> + + * rtl.c : Revert NLS changes. + * gcc.c : Fix bug in display_help introced by my last changes. + +Wed Jun 28 21:09:33 2000 Raja R Harinath <harinath@cs.umn.edu> + + * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use + DECL_CONTEXT, not DECL_FIELD_CONTEXT. + +2000-06-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * flow.c (flow_depth_first_order_compute): Fix algorithm. + +2000-06-28 Philipp Thomas <pthomas@suse.de> + + * c-decl.c : Mark strings for translation. + (parmlist_tags_warning): Use distinct messages instead + of conditional expressions. + * diagnostic.c (v_message_with_decl): Mark string for translation. + * gcc.c: Mark messages for translation. + (display_help): Combine messages into one string where necessary. + * mips-tfile: Add intl.h. Mark messages for translation. + * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark + messages for translation. + * timevar.c: Mark messages for translation. + * tlink.c: Likewise. + * toplev.c: Likewise. + +Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com) + + * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly. + + * alpha/alpha-interix.h: Delete redundant -Asystem(interix), + use -isystem instead of -idirafter. + * i386/i386-interix.h: Likewise. + +2000-06-28 Jason Merrill <jason@redhat.com> + + * dwarf2out.c (output_loc_operands): Don't support >1 byte output + unless DWARF2_DEBUGGING_INFO is defined. + (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs. + +2000-06-28 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH. + +2000-06-28 Jakub Jelinek <jakub@redhat.com> + + * cpplex.c (output_line_command): Output correct #line if a header + is including itself and is not protected against multiple inclusion. + +2000-06-28 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (open_include_file): If open(2) returns EMFILE or + ENFILE, close all cached file descriptors and try again. + (_cpp_execute_include): Keep a count of the number of times + each header is included. + (close_cached_fd): New function. + * cpphash.h (struct include_file): Rename before to + include_count; all users updated. Make include_count and sysp + unsigned short. + * cppinit.c (cpp_finish): If -H, report headers that could use + reinclude guards. + (report_missing_guard): New function. + +Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (prologue_set_got): Set length_immediate field. + (testqi_ccno_1): Add missing '@' character. + +2000-06-27 Jason Merrill <jason@redhat.com> + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use + DWARF_FRAME_REGNUM. + +2000-06-27 Andrew Macleod <amacleod@cygnus.com> + + * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no + unsigned macros available. + +2000-06-27 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.c (emit_insn_group_barriers): Special case + epilogue_deallocate_stack. + + * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit + completers for UNORDERED and ORDERED as well. + * config/ia64/ia64.md (bunordered, bordered): New. + (sunordered, sordered): New. + +Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands. + * i386.c (ix86_attr_length_default): Kill. + (ix86_attr_length_immediate_default, ix86_attr_length_address_default): + New. + * i386-protos.h (ix86_attr_length_default): Kill + (ix86_attr_length_immediate_default, ix86_attr_length_address_default): + Add prototype + * i386.md (attribute type): Add "test". + (attribute length_prefix): Kill. + (attribute length_opcode): Kill. + (attribute i387, mode, length_immediate, length_address, prefix_data16, + prefix_rep, prefix_0f, modrm): New. + (attribute length): Compute using the new attributes. + (attribute pent_prefix): New. + (attribute pent_pair): Compute using pent_prefix. + (all insn patterns): Set mode,modrm and immediate_length attributes where + needed. + (cmpsi patterns): Compute sizes propertly for test instruction. + (movsi, movhi patterns): Compute sizes propertly for eax shortcuts. + (movstricthi_xor, movstrictqi_xor): New patterns. + (andsi/andhi): Use splitters to generate xor instructions. + (xorqi_ext_1): New pattern. + (movstricthi->movstricthi_xor peep2): New. + +Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (addqi_low_1): Remove. + +2000-06-27 Philipp Thomas <pthomas@suse.de> + + * 1750a.h: Mark help strings for options/switches for translation. + * a29k.h: Likewise. + * alpha.h: Likewise. + * arm.h: Likewise. + * pe.h: Likewise. + * riscix.h: Likewise. + * c4x.h: Likewise. + * clipper.h: Likewise. + * convex.h: Likewise. + * elxsi.h: Likewise. + * fr30.h: Likewise. + * fx80.h: Likewise. + * h8300.h: Likewise. + * i370.h: Likewise. + * cygwin.h: Likewise. + * dgux.h: Likewise. + * djgpp.h: Likewise. + * i386.h: Likewise. + * osf1elf.h: Likewise. + * osfrose.h: Likewise. + * sco5.h: Likewise. + * win32.h: Likewise. + * i860.h: Likewise. + * paragon.h: Likewise. + * i960.h: Likewise. + * ia64.h: Likewise. + * m32r.h: Likewise. + * mcore.h: Likewise. + * mips.h: Likewise. + * mn10300.h: Likewise. + * ns32k.h: Likewise. + * pdp11.h: Likewise. + * pj.h: Likewise. + * aix.h: Likewise. + * aix41.h: Likewise. + * aix43.h: Likewise. + * beos.h: Likewise. + * rs6000.h: Likewise. + * sysv4.h: Likewise. + * linux.h: Likewise. + * linux64.h: Likewise. + * sp64-elf.h: Likewise. + * sparc.h: Likewise. + * splet.h: Likewise. + * v850.h: Likewise. + * convex.h (TARGET_SWITCHES): Provide descriptions and mark them + for translation. + * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES. + Properly document option and mark for translation. + * sp86x-elf.h: Likewise. + +2000-06-27 Bernd Schmidt <bernds@cygnus.co.uk> + + Add MMX and SSE registers to i386 machine description. + * i386-protos.h (ix86_constant_alignment, ix86_data_alignment, + ix86_local_alignment): Declare. + + * i386.h (TARGET_MMX, TARGET_SSE): New. + (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, + REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER, + enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers. + (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New. + (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros. + (RETURN_IN_MEMORY): Handle MMX/SSE. + (REG_PARM_STACK_SPACE): Added so the first three TImode parameters + also get stack space. + (MUST_PASS_IN_STACK): Added TImode to the default definition. + (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words. + (MMX_REGISTER_NAMES): New. + (ALIGN_MODE_128): New macro. + (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function. + (DATA_ALIGNMENT): Likewise. + (LOCAL_ALIGNMENT): Likewise. + (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not + TARGET_MMX/TARGET_SSE. + (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros. + (REG_CLASS_FROM_LETTER): 'y' for MMX regs. + (SECONDARY_MEMORY_NEEDED): Be conservative about copying between + SSE/MMX regs and something else. + (CLASS_MAX_NREGS): 1 for SSE and MMX regs. + (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs, + 3 if moving between MMX regs and something else. + + * i386.c (reg_class): Add SSE_REGS, MMX_REGS. + (regclass_map): Add MMX/SSE registers. + (print_operand): Add code to print XMMWORD as appropriate. + (ix86_split_movdi): Abort for MMX regs. + (init_cumulative_args): Also allow SSE_REGS + (function_arg_advance, function_arg): Likewise + (print_reg): Support 'm'. Add case for TImode. + (override_options): TARGET_SSE implies TARGET_MMX. + (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment): + New functions. + + * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to + FIRST_SSE_REG. + * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in + memory. + * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise. + * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise. + +2000-06-26 Geoff Keating <geoffk@cygnus.com> + + * ssa.c (struct rename_set_data): Change the name of field + 'set_dest' to 'old_reg'. Add comments. + (struct rename_context): Change the name of 'set_data' to + 'new_renames'. Add new field 'done_renames'. + (create_delayed_rename): New function. + (apply_delayed_renames): New function. + (rename_insn_1): Use the new functions. Handle CLOBBERS. Handle + SUBREGs and similar by emitting a move. + (new_registers_for_updates): Delete, functionality moved to + apply_delayed_renames. + (rename_block): Handle moves emitted by rename_insn_1 by putting + them into a SEQUENCE with the original insn. Add sanity checks + and comments. + (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially. + (rename_equivalent_regs): Expand SEQUENCEs out to individual insns. + +2000-06-26 Andrew Macleod <amacleod@cygnus.com> + Jason Merrill <jason@redhat.com> + + * dwarf2.h (enum dwarf_call_frame_info): Add + DW_CFA_def_cfa_expression. + * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a + dw_loc_descr_struct entry. + (struct cfa_loc): New structure to track a CFA location. + (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset. + (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an + offset, plus handle DW_CFA_def_cfa_expression. + (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a + cfa_loc record. + (dwarf2out_def_cfa): Entry point maintained for compatability. + (dwarf_cfi_name): Add DW_CFA_def_cfa_expression. + (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'. + (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'. + (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not + cfa_reg. + (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl + sequences for the new DW_CFA_def_cfa_expression record. + (dwarf2out_frame_debug): Use new variables/fields.A + (output_cfi): Handle DW_CFA_def_cfa_expression. + (output_cfa_loc): New function to generate a CFI record for + DW_CFA_def_cfa_expression. + (get_cfa_from_loc_descr): New function to get a cfa_loc record from + a dw_loc_descr sequeunce. + (build_loc_descr): Build a dw_loc_descr from a cfa_loc record. + (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr, + size_of_locs, output_loc_operands, output_loc_sequence): Move into + unwind info section. + * frame.h (frame_state): Add base_offset and indirect fields. + * frame-dwarf2.c (decode_stack_op): New function to interpret a + dw_loc_descr operation. + (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression. + (struct frame_state): Add base offset and indirect fields. + * libgcc2.c (next_stack_level): Support indirect loading for CFA. + +2000-06-26 Joseph S. Myers <jsm28@cam.ac.uk> + + * c-decl.c (grokdeclarator): Don't warn about `long long' in C99. + Make warnings about implicit int be pedwarns in C99. Don't warn + about duplicate type qualifiers in C99. + (start_function): Make warning about implict int return type be a + pedwarn in C99. + * c-lex.c (yylex): Don't warn about `long long' in C99. + * c-typeck.c (c_expand_return): In C99, always pedwarn about + `return' with no value in function returning non-void. + +2000-06-26 Richard Henderson <rth@cygnus.com> + + * c-typeck.c (pedwarn_c99): New. + * diagnostic.c (verror, vwarning, vpedwarn): Export. + * toplev.h: Prototype them. + +2000-06-26 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * c-typeck.c (digest_init): Return error_mark_node node when + TREE_TYPE (init) == error_mark_node. + +2000-06-26 Philipp Thomas <pthomas@suse.de> + + * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no, + test for msgfmt without path instead. + * configure: Rebuilt. + +2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> + + * gengenrtl.c (special_rtx): Fix typo in comment. + +2000-06-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * mklibgcc.in (LIB2FUNCS): Add missing space. + +2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> + + * tree.h (enum tree_index): Add vector type nodes. + Add accessor macros for them. + (TYPE_REPRESENATION_TYPE): New macro. + * tree.c (build_common_tree_nodes_2): Build these nodes. + (finish_vector_type): New function. + * c-common.c (type_for_mode): Handle vector modes. + * tm.texi (VECTOR_MODE_SUPPORTED_P): Document. + + * dbxout.c (dbxout_type): Handle VECTOR_TYPEs. + * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers. + * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs. + (gen_type_die): Likewise. + * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers. + (fundamental_type_code): Likewise. + (type_is_fundamental): VECTOR_TYPEs aren't. + (output_type): Handle VECTOR_TYPEs. + +2000-06-25 Kazu Hirata <kazu@hxi.com> + + * config/arm.c: Fix a comment typo. + * config/arm.h: Likewise. + +2000-06-25 Philipp Thomas <pthomas@suse.de> + + * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog + compiler found. + AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no. + * configure: Rebuilt. + +2000-06-25 John David Anglin <dave.anglin@nrc.ca> + + * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions. + +2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating + libgcc.a. + +2000-06-24 Marc Espie <espie@cvs.openbsd.org> + + * collect2.c (resolve_lib_name): Move '/' check out of loop. + +2000-06-24 Dirk Duellmann <Dirk.Duellmann@cern.ch> + + * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0. + +2000-06-24 Jakub Jelinek <jakub@redhat.com> + + * stmt.c (expand_decl_cleanup): Emit a dummy insn after + last_unconditional_cleanup. + +2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> + + * tree.def (VECTOR_TYPE): New node type. + * tree.h: Adjust some comments to reflect addition of vector types. + (TYPE_VECTOR_SUBPARTS): New macro. + * stor-layout.c (layout_type): Handle VECTOR_TYPE. + * c-convert.c (convert): Likewise. + * convert.c (convert_to_integer): Handle vector modes. + (convert_to_vector): New function. + * convert.h (convert_to_vector): Declare. + * expr.c (convert_move): Handle vector modes. + * expmed.c (extract_bit_field): Don't abort for vector modes. + +2000-06-24 Marek Michalkiewicz <marekm@linux.org.pl> + + * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype. + * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr): + New functions, common code moved from function_{prologue,epilogue} + and extended to support the -mtiny-stack option. + (function_prologue, function_epilogue): Use them. + Use lo8/hi8 consistently for asm output readability. + (avr_hard_regno_mode_ok): New function. + * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack. + (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c. + (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function. + * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack. + Write SPH before SPL. + (*movqi): No need to disable interrupts for just one "out" + in alternative 5. Change length attribute from 4 to 1. + * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__): + Write SPH before SPL. + +2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk> + + * rtl.texi (Vector Operations): New node. + (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus. + (Conversions): Add ss_truncate, us_truncate. + * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER, + VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE, + US_TRUNCATE): New rtx codes. + * machmode.def: Add vector modes. + * machmode.h (enum mode_class): Add MODE_VECTOR_INT and + MODE_VECTOR_FLOAT. + (INTEGER_MODE_P): Check for MODE_VECTOR_INT. + (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT. + (VECTOR_MODE_P): New. + +2000-06-24 Nathan Sidwell <nathan@codesourcery.com> + + * cpp.texi: Clarify #pragma GCC namespace. + +2000-06-24 Philipp Thomas <pthomas@suse.de> + + * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build + all catalogs specified in ALL_LINGUAS. + * configure: Rebuilt. + +2000-06-23 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (reload_outdi+1): Handle + HOST_BITS_PER_WIDE_INT == 64 case correctly. + (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise. + +2000-06-23 Geoffrey Keating <geoffk@cygnus.com> + + * alias.c (fixed_scalar_and_varying_struct_p): Don't examine + struct vs. scalar-ness when -fno-strict-aliasing. + +2000-06-23 Nathan Sidwell <nathan@codesourcery.com> + + * cpplib.c (struct pragma_entry): New structure. + (pragma_dispatch): Pragma dispatcher. + (top_pragmas, gcc_pragmas): New static variables. + (do_pragma): Use pragma_dispatch. + (do_pragma_gcc): New pragma handler. + * cpp.texi: Update. + +2000-06-23 Jakub Jelinek <jakub@redhat.com> + + * calls.c (compute_argument_addresses): Force stack slots into + alias set 0. + * expr.c (emit_push_insn): Force pushes into alias set 0. + +2000-06-23 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.md (pred_rel_mutex): Only take one register. + * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match. + +2000-06-22 Jason Merrill <jason@redhat.com> + + * toplev.c (compile_file): Always call timevar_print. + * Makefile.in (calls.o): Depend on TIMEVAR_H. + +2000-06-22 Nathan Sidwell <nathan@codesourcery.com> + + * varasm.c (constant_descriptor): Make contents unsigned char. + (mark_const_hash_entry): Adjust. + (const_hash): Just hash the code of unknown nodes. + (compare_constant_1): Adjust for unsigned char. + Use language specific expander on unknown nodes. + (record_constant_1): Likewise. + +2000-06-21 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (cpp_make_system_header): New function. + * cpplib.h: Prototype it. + * cpplib.c (do_line, do_pragma_system_header): Use it. + * fix-header.c (read_scan_file): Use it. + + * fix-header.c (check_macro_names): Cast second arg of + cpp_defined to const unsigned char *. + (read_scan_file): Make getchar_call const unsigned char. + +2000-06-21 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c: Include splay-tree.h, not hashtab.h. + (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete. + (destroy_include_file_node): New. + (_cpp_init_include_hash): Rename _cpp_init_include_table. + Create a splay tree, not a hash table. + (open_include_file): Look up the path in the include table, + do the multiple include optimization here, etc. + (cpp_included): Walk the path. + (find_include_file): Just walk the path calling + open_include_file, or call it directly for an absolute path. + (_cpp_fake_ihash): Rename _cpp_fake_include and update for new + scheme. + (read_include_file): Update for new scheme. Don't close the + file unless reading fails. + (_cpp_execute_include, cpp_read_file): Tweak for new scheme. + + * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete. + (struct include_file): New. + (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New + macros. + (CPP_PEDANTIC, CPP_WTRADITIONAL): Update. + Update prototypes. + + * cppinit.c: Include splay-tree.h. + (cpp_reader_init, cpp_cleanup): Update. + + * cpplib.h (struct cpp_buffer): Change ihash field to + 'struct include_file *inc'. Remove system_header_p. + (struct cpp_reader): Change all_include_files to a + struct splay_tree_s *. + + * cpplex.c: Update all references to cpp_buffer->ihash and/or + cpp_buffer->system_header_p. + (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD. + + * Makefile.in (SPLAY_TREE_H): New macro. + (cppfiles.o, cppinit.o): Update dependencies. + +Wed Jun 21 11:05:48 2000 Martin Buchholz <martin@xemacs.org> + + * invoke.texi (g++): "g++" is not a script anymore. + +2000-06-20 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * function.c (round_down): Delete obsolete prototype. + + * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__. + +2000-06-20 Zack Weinberg <zack@wolery.cumb.org> + + * configure.in: Use 'test a = b' not 'test a == b'. + * configure: Regen. + + * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS). + + * Makefile.in: Remove all references to HOST_INTLLIBS. + + * cpplex.c (parse_name): Don't warn about $ in identifiers if + skipping. + +2000-06-20 Philipp Thomas <pthomas@suse.de> + + * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later + for PA 2.0. + +Mon Jun 19 23:26:40 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * Take REG_INC notes into account. + +2000-06-19 Zack Weinberg <zack@wolery.cumb.org> + + * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c. + (primary: IDENTIFIER): Just call build_external_ref. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerate. + * c-lex.c (lastiddecl): Remove. + (yylex): Replace all instances of lastiddecl with local + variables. + + * c-typeck.c (build_external_ref): New function. Treat decls + with C_DECL_ANTICIPATED mostly the same as nonexistent decls. + Look up the decl from the id here. Call lookup_objc_ivar. + * c-lang.c (lookup_objc_ivar): Stub. + * objc/objc-act.c (lookup_objc_ivar): New function. + + * c-tree.h: Prototype lookup_objc_ivar and build_external_ref. + * c-lex.h: Don't declare lastiddecl. + +2000-06-19 Benjamin Chelf <chelf@codesourcery.com> + + * c-common.h (IF_COND): Added documentation. + (THEN_CLAUSE): Likewise. + (ELSE_CLAUSE): Likewise. + (WHILE_COND): Likewise. + (WHILE_BODY): Likewise. + (DO_COND): Likewise. + (DO_BODY): Likewise. + (RETURN_EXPR): Likewise. + (EXPR_STMT_EXPR): Likewise. + (FOR_INIT_STMT): Likewise. + (FOR_COND): Likewise. + (FOR_EXPR): Likewise. + (FOR_BODY): Likewise. + (SWITCH_COND): Likewise. + (SWITCH_BODY): Likewise. + (CASE_LOW): Likewise. + (CASE_HIGH): Likewise. + (GOTO_DESTINATION): Likewise. + (COMPOUND_BODY): Likewise. + (ASM_CV_QUAL): Likewise. + (ASM_STRING): Likewise. + (ASM_OUTPUTS): Likewise. + (ASM_INPUTS): Likewise. + (ASM_CLOBBERS): Likewise. + (DECL_STMT_DECL): Likewise. + (STMT_EXPR_STMT): Likewise. + (LABEL_STMT_LABEL): Likewise. + + * c-common.def: Added documenetion for SRCLOC, EXPR_STMT, + COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT, + RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, + LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR. + +2000-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * configure.in (--enable-checking): Update --help doc to reflect + new defaults. Ensure $ac_save_IFS is set before $IFS is changed. + +Sun Jun 18 21:42:15 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK. + + * function.c (put_var_into_stack): Don't reference DECL_ fields + if input is a SAVE_EXPR. + Use set_mem_attributes in COMPLEX case. + +2000-06-18 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare. + (ia64_file_start): Declare. + * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0. + (GR_REGNO_P): Likewise. + * config/ia64/ia64.c: Many prototypes. + (ia64_reg_numbers): Constify. + (ia64_input_reg_names, ia64_local_reg_names): Likewise. + (ia64_section_threshold): Make unsigned. + (ia64_print_operand): Constify. + (fix_range): Constify. + (ia64_init_builtins): Don't compare signed vs unsigned. + (ia64_expand_builtin): Likewise. + + * config/ia64/ia64.h (EXTRA_CONSTRAINT): New. + (CONSTRAINT_OK_FOR_Q): New. + * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem. + (movsf_internal, movdf_internal): Likewise. + (cmovdi_internal): Rewrite so that constraints and predicates match; + simplify splitters. + (cmovsi_internal): Likewise. + + * config/ia64/ia64.h (ASM_SPEC): Add -x for gas. + (ASM_FILE_START): New. + * config/ia64/ia64.c (ia64_file_start): New. + (rtx_needs_barrier): Handle pred.rel.mutex. + (emit_predicate_relation_info): New. + * config/ia64/ia64.md (pred_rel_mutex): New. + * config/ia64/linux.h (ASM_SPEC): Define. + * config/ia64/sysv4.h (ASM_FILE_START): Define. + + * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko + filtering global register variables. + +2000-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c (add_c_tree_codes): Fix definition for traditional C. + +2000-06-17 Michael Meissner <meissner@redhat.com> + + * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is + not present and there is a field after a '-'. + +2000-06-17 Bruce Korb <bkorb@gnu.org> + + * fixinc/check.tpl: finish the implementation of multiple tests + for a single fix + * fixinc/inclhack.def(ctrl_quotes_def): add a second test + (io_quotes_def): add a second test + (various): reorder `files' so that "limits.h" is never first + * fixinc/tests/base/*: update the testing output + +Sat Jun 17 10:33:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * gcc.texi: Remove reference to stupid.c. + +2000-06-16 Benjamin Chelf <chelf@codesourcery.com> + + * c-common.c (c_tree_code_type): New array. + (c_tree_code_length): Likewise. + (c_tree_code_name): Likewise. + (add_c_tree_codes): New function. + + * c-common.h (add_c_tree_codes): Declare. + (enum c_tree_code): New enum. + + * c-lex.c (init_parse): Added call to add_c_tree_codes. + +2000-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify + select pattern to also match macro defs with only one argument. + +Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com) + + * i386.md: Create new [right,left] rotate and right shift + patterns to optimize shift by 1 bit for certain ia32 processors. + Update patterns which perform left shifts to optimize shift by + 1 bit for certain ia32 processors. + * i386.c (const_int_1_operand): New predicate. + * i386.h (PREDICATE_CODES): Handle const_int_1_operand. + * i386-protos.h (const_int_1_operand): Prototype. + +Wed Jun 14 23:46:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * mips.c (machine_dependent_reorg): Fix braces for nested if. + +2000-06-14 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare + LABEL_REFs. + +2000-06-14 Richard Henderson <rth@cygnus.com> + + * conflict.c (conflict_graph_compute): Don't look for REG_INC. + + * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit + auto-inc code. + + * print-rtl.c (print_rtx): Emit space before mem alias set. + +2000-06-14 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (expand_block_move): Fix typo in earlier change. + (print_operand): Remove unused variables neg and op. + (toc_hash_mark_entry): Fix prototype. + +2000-06-14 Benjamin Chelf <chelf@codesourcery.com> + + * c-common.h (IF_COND): Moved here from cp/cp-tree.h. + (THEN_CLAUSE): Likewise. + (ELSE_CLAUSE): Likewise. + (WHILE_COND): Likewise. + (WHILE_BODY): Likewise. + (DO_COND): Likewise. + (DO_BODY): Likewise. + (RETURN_EXPR): Likewise. + (EXPR_STMT_EXPR): Likewise. + (FOR_INIT_STMT): Likewise. + (FOR_COND): Likewise. + (FOR_EXPR): Likewise. + (FOR_BODY): Likewise. + (SWITCH_COND): Likewise. + (SWITCH_BODY): Likewise. + (CASE_LOW): Likewise. + (CASE_HIGH): Likewise. + (GOTO_DESTINATION): Likewise. + (COMPOUND_BODY): Likewise. + (ASM_CV_QUAL): Likewise. + (ASM_STRING): Likewise. + (ASM_OUTPUTS): Likewise. + (ASM_INPUTS): Likewise. + (ASM_CLOBBERS): Likewise. + (DECL_STMT_DECL): Likewise. + (STMT_EXPR_STMT): Likewise. + (LABEL_STMT_LABEL): Likewise. + (SCOPE_BEGIN_P): Likewise. + (SCOPE_END_P): Likewise. + (SCOPE_STMT_BLOCK): Likewise. + (SCOPE_NULLIFIED_P): Likewise. + (SCOPE_NO_CLEANUPS_P): Likewise. + (SCOPE_PARTIAL_P): Likewise. + (ASM_VOLATILE_P): Likewise. + (STMT_LINENO): Likewise. + (STMT_LINENO_FOR_FN_P): Likewise. + + * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR, + ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, + FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, + CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, + SCOPE_STMT, CASE_LABEL, STMT_EXPR. + + * gencheck.c (tree_codes[]): Added '#include "c-common.def"'. + +2000-06-14 David O'Brien <obrien@FreeBSD.org> + + * gcc.c (main): Quiet compiler warnings. argv is assumed to be + writable in parts of the GCC code. + + * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf + specification match cast. + +Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13. + * configure, config.in: Rebuilt. + * sys-protos.h: Similarly. + +Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com) + + * ifcvt.c (EDGE_COMPLEX): Move definition ... + * basic-block.h (EDGE_COMPLEX): ... here. + + * loop.c (check_dbra_loop): Specify the register when + generating REG_NONNEG notes and don't generate duplicates. + +2000-06-13 Jakub Jelinek <jakub@redhat.com> + + * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define. + (struct tree_type, struct tree_decl): Add user_align member. + * stor-layout.c (layout_decl): Set DECL_USER_ALIGN. + (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined + and DECL_USER_ALIGN 0, cap alignment to this value. + (place_field): Likewise. + (finalize_type_size): Set TYPE_USER_ALIGN. + (layout_type): Likewise. + (initialize_sizetypes): Likewise. + * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp. + DECL_USER_ALIGN to 1. + * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN. + (xfer_tag): Set TYPE_USER_ALIGN. + (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. + (finish_enum): Likewise. + * stmt.c (expand_decl): Set DECL_USER_ALIGN. + (expand_anon_union_decl): Likewise. + * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. + (build_index_type): Set TYPE_USER_ALIGN. + (build_range_type): Likewise. + (build_common_tree_nodes_2): Likewise. + * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning. + +2000-06-13 Andreas Jaeger <aj@suse.de> + + * configure.in: Use --enable-checking=misc,tree,gc by default if + no --enable-checking option is given and for + --enable-checking=yes. + * configure: Rebuilt. + +2000-06-13 Richard Henderson <rth@cygnus.com> + + * libgcc2.c (ia64_throw_helper): Use __builtin_return_address. + (__throw): Don't pass the address of a label. + + * config/ia64/ia64.c (ia64_compute_frame_size): Use + current_function_is_leaf. + (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx + instead of reg_names[RETURN_ADDRESS_REGNUM]. + (ia64_init_machine_status): Reset return_address_pointer_rtx. + * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename + from RETURN_ADDRESS_REGNUM. Update all uses. + (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return + zero instead of null on failure. + (ELIMINABLE_REGS): Add ra->b0 elimination. + (CAN_ELIMINATE): Update accordingly. + (INITIAL_ELIMINATION_OFFSET): Likewise. + (REGISTER_NAMES): Use an illegal assembler name for + RETURN_ADDRESS_POINTER_REGNUM. + +2000-06-13 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS, + GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove. + (HARD_REGNO_MODE_OK): Remove references to them. + (REGNO_REG_CLASS): Likewise. + (REG_CLASS_FROM_LETTER): Likewise. + (CLASS_MAX_NREGS): Likewise. + (REGISTER_MOVE_COST): Likewise. + * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise. + * config/ia64/ia64.md (*): Replace "e" constraints with "f". + (movqi_internal): Special case moves from zero. + (movhi_internal, movsi_internal): Likewise. + (movdi_internal): Likewise. Fill out "f" constraints. + (movsf_internal): Fill out "r" constraints. + (movdf_internal): Likewise. + +2000-06-13 Richard Henderson <rth@cygnus.com> + + * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM + alive before reload. + + * haifa-sched.c (struct deps): Add in_post_call_group_p. + (add_dependence): Handle notes between SCHED_GROUP_P insns. + (remove_dependence): Always define. + (set_sched_group_p): New. + (sched_analyze_2): Use it. + (sched_analyze_insn): Don't special-case naked uses. Look for + and extend in_post_call_group_p. + (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p. + (init_deps): Clear in_post_call_group_p. + +2000-06-13 Richard Henderson <rth@cygnus.com> + + * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and + CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE + and hard-coded tests. + (simplify_set): Likewise. + (gen_lowpart_for_combine): Likewise. + * emit-rtl.c (gen_lowpart_common): Likewise. + * global.c (find_reg): Likewise. + * local-alloc.c (find_free_reg): Likewise. + * recog.c (register_operand): Likewise. + * regclass.c (init_reg_sets_1): Likewise. + (record_operand_costs, regclass): Likewise. + * reload.c (push_reload): Likewise. + * reload1.c (choose_reload_regs): Likewise. + * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE. + * local-alloc.c (struct qty): Rename changes_size to changes_mode. + Update all references. + * regs.h (struct reg_info_def): Likewise. + (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE. + * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document. + (CLASS_CANNOT_CHANGE_MODE_P): Likewise. + + * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename. + (CLASS_CANNOT_CHANGE_MODE_P): New. + * config/mips/mips.h: Likewise. + * config/pa/pa32-regs.h: Likewise. + * config/pa/pa64-regs.h: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/sh/sh.h: Likewise. + * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New. + (CLASS_CANNOT_CHANGE_MODE_P): New. + * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code. + * config/d30v/d30v.h: Likewise. + +2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * configure.in: Add AC_TYPE_GETGROUPS test. + * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups. + * configure: Rebuilt. + * config.in: Rebuilt. + +2000-06-13 Richard Henderson <rth@cygnus.com> + + * explow.c (set_mem_attributes): Do nothing for NULL type. + +Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com) + + * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler + correctly. + +2000-06-13 James E. Wilson <wilson@cygnus.com> + + * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf. + +Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference. + +2000-06-13 Philipp Thomas <pthomas@suse.de> + + * configure.in(ALL_LINGUAS): Changed en_UK to en_GB. + * configure: Rebuilt. + +2000-06-07 David O'Brien <obrien@FreeBSD.org> + + * configure.in: Adjust FreeBSD bits to match changes to config.guess. + We now default to ELF for the i386, and a.out is the special case. + * configure: Rebuilt. + +Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson <hp@axis.com> + + * final.c (final_scan_insn): Delete notes between cc0 setter and + user when restarting from setter. + +2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and + cast to squelch signed/unsigned warnings. + +2000-06-13 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (handle_directive): Print non-NUL-terminated string + with %.*s. + +2000-06-12 Michael Meissner <meissner@redhat.com> + + * ifcvt.c (dead_or_predicable): Don't do conditional execution + path if the machine needs extra support to do conditional + execution. + +Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com) + + * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC + to print the alias set. + * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly. + +2000-06-12 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * config/float-vax.h: Add GFLOAT defines. + +Mon Jun 12 9:44:00 2000 Mark Klein <mklein@dis.com> + + * configure.in: Update tm dependencies for MPE. + * configure: Rebuilt. + +2000-06-12 H.J. Lu <hjl@gnu.org> + + * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size. + +2000-06-12 David Edelsohn <edelsohn@gnu.org> + + * aix41.h (SUBTARGET_SWITCHES): Delete threads. + (CPP_SPEC): Change mthreads to pthread. + (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * aix43.h (SUBTARGET_SWITCHES): Delete threads. + (CPP_SPEC): Change mthreads to pthread. + (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * rs6000-protos.h (reg_or_arith_cint_operand): New. + * rs6000.c (reg_or_arith_cint_operand): New. + (num_insns_constant_wide): Decorate unsigned constant. + * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand. + * rs6000.md (addsi3): Use new predicate. + (subsi3, adddi3, subdi3): Likewise. + +2000-06-12 Mark Mitchell <mark@codesourcery.com> + + * c-common.c (lang_get_alias_set): Fix typo. + +2000-06-12 Richard Earnshaw <rearnsha@arm.com> + + * flow.c (mark_used_regs): Revert last change. + (life_analysis): Remove PROP_AUTOINC if running after reload. + (propagate_one_insn): PROP_AUTOINC is always off after reload. + +2000-06-11 Richard Earnshaw <rearnsha@arm.com> + + * flow.c (mark_used_regs): Don't call find_auto_inc after reload + has run. + +2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * bb-reorder.c (build_scope_forest): Initialize variable + `curr_scope'. + + * calls.c (expand_call): Likewise for variables + `save_pending_stack_adjust' and `save_stack_pointer_delta'. + + * i386.c (function_arg_advance, function_arg): Cast to avoid + signed/unsigned warnings. + + * i386.h (MEMORY_MOVE_COST): Likewise. + + * ifcvt.c (cond_exec_process_if_block): Initialize variables + `else_start' and `else_end'. + + * libgcc2.h (__eh_alloc, __eh_free): Prototype. + + * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'. + +2000-06-10 Mark Mitchell <mark@codesourcery.com> + + * Makefile.in (libintl.a): Depend on intl.all. + +2000-06-09 H.J. Lu (hjl@gnu.org) + + * Makefile.in (c-parse.o): Also depend on output.h. + +2000-06-09 Rodney Brown <RodneyBrown@mynd.com> + + * mcore-protos.h: discards const warning removal. + * mcore.c: discards const warning removal. + +2000-06-09 Kazu Hirata <kazu@hxi.com> + + * config/h8300/lib1funcs.asm: Declare the machine architecture at + the beginning of the file. + +2000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * real.h: Add prototype for ldexp. + +2000-06-09 Zack Weinberg <zack@wolery.cumb.org> + + * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename + it ggc_alloc, drop second argument, never clear returned memory. + * ggc-common.c (ggc_alloc_string): Use ggc_alloc. + (ggc_alloc_cleared): New. + * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not + ggc_alloc_obj. Remove ggc_alloc macro. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc. + + * rtl.c (rtvec_alloc): Clear the vector always. + (rtx_alloc): Clear the first word always. Remove dirty + obstack tricks (this routine is no longer a bottleneck). + * tree.c (make_node): Clear the new node always. + (make_tree_vec): Likewise. + (tree_cons): Clear the common structure always. + (build1): Likewise; also, clear TREE_COMPLEXITY. + * gengenrtl.c: Use puts wherever possible. Remove extra + newlines. + (gendef): Clear the first word of an RTX in the generator + function, irrespective of ggc_p. Initialize '0' slots to + NULL. + (genlegend): Don't generate obstack_alloc_rtx routine, just a + thin wrapper macro around obstack_alloc. + + * stmt.c (expand_fixup): Use ggc_alloc. + * c-typeck.c (add_pending_init): Use ggc_alloc. + * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem). + * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to + const0_rtx when it is created. + (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if + we are not in a function. + + * tree.c (tree_class_check_failed): Make second arg an int. + * tree.h: Update prototype. + +2000-06-09 Geoff Keating <geoffk@cygnus.com> + + * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT + of an error_mark_node. + +Fri Jun 9 20:35:13 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (asm_output_section_name): bugfix. + +2000-06-09 Jason Merrill <jason@casey.soma.redhat.com> + + * timevar.def: Add TV_EXPAND. + * timevar.c (timevar_print): Update timing information. + * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining. + + * stmt.c (expand_return): Check for error_mark_node. + +2000-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * configure.in: Also avoid wrapping auto-build.h with IN_GCC. + + * scan-types.sh (VALUE) Wrap use with double quotes to protect + variable against filename expansion when it contains "char *". + + * system.h (SSIZE_MAX): Delete backup definition. + + * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t) + instead of SSIZE_MAX. + +2000-06-09 Jakub Jelinek <jakub@redhat.com> + + * configure.in: Check whether gas supports -relax. + * configure, config.in: Rebuilt. + * config/sparc/sparc.h (ASM_RELAX_SPEC): Define. + (EXTRA_SPECS): Add asm_relax. + (ASM_SPEC): Add %(asm_relax). + (TARGET_SWITCHES): Add -mrelax and -mno-relax. + * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC. + (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r. + (ASM_SPEC): Add %(asm_relax). + * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise. + * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION, + never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0 + instead of mov, so that gas can further optimize it. + +2000-06-08 James E. Wilson <wilson@bletchleypark.cygnus.com> + + * dwarf2out.c (size_of_die, case dw_val_class_const): Use + size_of_sleb128. + (value_format, case dw_val_class_const): Use sdata format. + (output_die): Call output_sleb128. + +2000-06-08 James E. Wilson <wilson@cygnus.com> + + * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses + UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to + ASM_OUTPUT_DWARF_CONST_DOUBLE. + (output_die, case dw_val_class_unsigned_const): Correct call to + ASM_OUTPUT_DWARF_DATA8. + (output_die, case dw_val_class_long_long): Use + ASM_OUTPUT_DWARF_CONST_DOUBLE. + * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when + pos is zero. + + * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add. + (output_function_prologue): Fix mispelling. + (output_function_prologue, output_function_epilogue): Reorder to + match ia64.c definition order. + * config/ia64/ia64.c (ia64_expand_prologue): Add comment. + (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns. + Use r3 instead of r2 for large stack restores. + (ia64_output_end_prologue): New function. + (process_set): Emit ".restore sp" for epilogue stack restores. + * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define. + +2000-06-08 Jakub Jelinek <jakub@redhat.com> + + * dbxout.c (dbxout_type_fields): Don't segfault on fields with + incomplete types. + +2000-06-08 Nathan Sidwell <nathan@codesourcery.com> + + * frame.c (end_fde_sort): Remove extraneous erratic array test. + +2000-06-08 Denis Perchine <dyp@perchine.com> + + * frame.c (start_fde_sort): Don't malloc (0). + +2000-06-07 Zack Weinberg <zack@wolery.cumb.org> + + * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on + error_mark_node. + * print-tree.c (print_node): The transparent_union_flag means + different things for unions and arrays. Do not inspect it + with TYPE_TRANSPARENT_UNION. + +2000-06-06 Jakub Jelinek <jakub@redhat.com> + + * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef + returned NULL. + +Wed Jun 7 20:34:33 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (asm_output_section_name): output section + attributes. + * config/avr/libgcc.S (.text.libgcc): declare section attributes. + +2000-06-06 James E. Wilson <wilson@cygnus.com> + + * frame.h (struct unwind_info_ptr): Collapse version, flags, and length + fields into header field. + (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New + macros to access length, flags, and version info from header field. + * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here. + * config/ia64/crtend.asm (__do_frame_setup_aux): Add here. + (__do_global_ctors_aux): Fix caller. + * config/ia64/frame-ia64.c (get_unwind_record): Change parameter + prologue_flag to header. Pass to read_P_record. + (read_P_record): New argument header. Implement P4 format. + Multiply P7_T_SIZE by 16. + (execute_one_ia64_descriptor): New static local region_header. Pass to + get_unwind_record. Copy r to region_header if r is a header record. + (print_all_records): Likewise. + (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH. + (__get_personality, __get_except_table): Likewise. + * config/ia64/ia64.c (process_set): Do not divide offsets by 4. + +2000-06-06 Philipp Thomas <pthomas@suse.de> + + * configure.in (AC_C_INLINE): Added. + * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default. + * configure: Regenerate. + +2000-06-06 Mark Mitchell <mark@codesourcery.com> + + * c-common.h (c_language_kind): New type. + (c_language): New variab.e + * c-common.c (lang_get_alias_set): Don't put structures in + non-zero alias sets in C++. + * c-decl.c (c_language): Define it. + * c-lex.c (doing_objc_thang): Remove. + * c-tree.h (doing_objc_thang): Make it a macro. + * objc/objc-act.c (lang_decode_option): Set c_language, not + doing_objc_thang. + +2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> + + * diagnostic.c (output_maximum_width): Remove. + (doing_line_wrapping): Tweak. + (diagnostic_buffer): New object. + (global_output_buffer): New object. + (output_destroy_prefix): New function. + (default_initialize_buffer): Likewise. + (reshape_diagnostic_buffer): Likewise. + (initialize_diagnostics): Likewise. + (output_clear): Tweak. + (line_wrapper_printf): Adjust call to init_output_buffer. + (vline_wrapper_message_with_location): Likewise. Use + output_destroy_prefix. + (v_message_with_decl): Likewise. + + * diagnostic.h (struct output_buffer): Constify prefix. + (init_output_buffer, output_get_prefix): Constify. + (diagnostic_message_length_per_line): Likewise. + (reshape_diagnostic_buffer): Declare. + (default_initialize_buffer): Declare. + (initialize_diagnostics): Declare. + (diagnostic_buffer): Declare new obbject. + + * toplev.c: #include diagnostic.h + (display_help): Document diagnostic formatting options. + (decode_f_option): Handle diagnostic formatting options. + (main): Setup initialization for diagnostic messages outputter. + + * toplev.h (set_message_length): Remove. + + * Makefile.in (toplev.o): Depends upon diagnostic.h + + * invoke.texi : Document diagnostics formatting options. + +Tue Jun 6 19:25:32 2000 Philippe De Muyter <phdm@macqel.be> + + * configure.in (Make the links): Typo fix : the file that must be + included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'. + * configure: File rebuilt. + +2000-06-06 Nathan Sidwell <nathan@codesourcery.com> + + * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. + (eh_context): Add alloc_mask and alloc_buffer emergency fallback + space. + * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on + emergency eh_context buffer, if malloc fails. + (__eh_free): Moved from cp/exception.cc. Release to emergency + eh_context buffer, if appropriate. + +2000-06-06 Jason Merrill <jason@casey.soma.redhat.com> + + * expr.c (store_expr): Fix typo. + +2000-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * m68k.c (legitimize_pic_address): Move prototype ... + + * m68k-protos.h (legitimize_pic_address): ... here. + + * m68k.md (legitimize_pic_address): Delete prototypes. + (untyped_call): Invoke GEN_CALL(), not gen_call(). + + * nextstep.c: Include system.h and toplev.h. + (get_directive_line): Don't prototype. + (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify. + + * nextstep.h (handle_pragma): Prototype. + (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of + objc_section_init ... + (EXTRA_SECTION_FUNCTIONS): ... here. + +Tue Jun 6 08:17:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * sdbout.c (struct sdb_file): NAME now const. + (sdbout_init): input_file_name now const. + (sdbout_start_new_source_file): FILENAME now const. + * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above. + +2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> + + * c-typeck.c (build_conditional_expr): Handle complex data types. + +2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> + + * explow.c (maybe_set_unchanging): New function, broken out from... + (set_mem_attributes): Here. + * expr.h: Declare it. + * stmt.c (expand_decl): Call it. + +2000-06-05 Richard Henderson <rth@cygnus.com> + + * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE + while looking for a register to inherit from. + +2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> + + * Makefile.in (libgcc.ready): Lose. + (libgcc.mk): Just use mv, not move-if-change. + (LIBGCC_DEPS): New macro. + (libgcc.a): Use it. + (stmp-multilib): Likewise. + * mklibgcc.in (stmp-dirs): New target. Make everything depend on + it rather than the directories themselves. + (LIB2ADD): Depend on the list file rather than 'force'. + + * fold-const.c (fold, case COND_EXPR): Elide conversion between + cv-qualified versions of types. + +Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * config/sparc/sparc.c (short_branch): Correct error in range + computation. + +2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * fixinc/inclhack.def: New include hacks for ultrix. + * (nested_ultrix): Replaced by ultrix_nested_svc. + * (ultrix_atof_param): test_text string added. + * (ultrix_ifdef): Modified select string. + +2000-06-05 Zack Weinberg <zack@wolery.cumb.org> + + * objc/objc-act.c (generate_method_descriptors): Register + objc_method_prototype_template as a GC root. + (comp_method_with_proto): Register function_type as a GC root. + (comp_proto_with_proto): Replace function_type1 and + function_type2 with a two-element array; register it as a GC root. + + (generate_protocols, build_protocol_initializer, + generate_protocol_list, build_category_initializer, + build_shared_structure_initializer): Do not cache cast_type + and/or cast_type2. + +2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * function.c (assign_parms): Add missing argument to set_mem_attributes + call. + +2000-06-05 Nathan Sidwell <nathan@codesourcery.com> + + * tree.h (VOID_TYPE_P): New macro. + (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P. + * c-decl.c (grokdeclarator): Use VOID_TYPE_P. + (get_parm_info): Likewise. + (store_parm_decls): Likewise. + (combine_parm_decls): Likewise. + (finish_function): Likewise. + * c-typeck.c (build_function_call): Likewise. + (build_binary_op): Likewise. + (build_conditional_expr): Likewise. + (internal_build_compound_expr): Likewise. + (convert_for_assignment): Likewise. + * stmt.c (expend_expr_stmt): Likewise. + (warn_if_unused_value): Likewise. + (expand_return): Likewise. + * c-parse.in (primary): Likewise. + * c-parse.y, c-parse.c, c-parse.h: Regenerate. + * objc/objc-parse.y, objc/objc-parse.c: Regenerate. + +Mon Jun 5 06:46:28 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c (get_alias_set): If compnent is addressable, use alias + set of component. + * c-decl.c (init_decl_processing): Don't call record_component_aliases. + (grokdeclarator): Likewise. + * c-typeck.c (common_type): Likewise. + +2000-06-04 Alex Samuel <samuel@codesourcery.com> + + * Makefile.in (OBJS): Remove dyn_string.o + (dyn-string.o): Delete rule. + * dyn-string.c: Delete file + * dyn-string.h: Likewise. + +2000-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (intl.*): Honor non-zero exit codes in the intl + subdir. + +2000-06-03 Geoff Keating <geoffk@cygnus.com> + + * alias.c (record_component_aliases): Don't inspect + DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures. + +Sat Jun 3 19:05:30 2000 Michael Meissner <meissner@redhat.com> + + * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call + it with the pattern to do machine dependent work. + (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined, + use it to modify the true/false tests used in conditional + execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are + defined, invoke them if the conversion to conditional execution + was successful or not. + + * tm.texi (IFCVT_MODIFY_TESTS): Document. + (IFCVT_MODIFY_INSN): Ditto. + (IFCVT_MODIFY_FINAL): Ditto. + (IFCVT_MODIFY_CANCEL): Ditto. + +Sat Jun 3 15:26:13 2000 Matt Kraai <kraai@alumni.carnegiemellon.edu> + + * toplev.c (main): Fix misspellings of possibility and language. + +2000-06-03 Richard Henderson <rth@cygnus.com> + + * alias.c (record_alias_subset): Initialize has_zero_child in the + superset. + +2000-06-03 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (untyped_call): Use GEN_CALL macro. + +2000-06-02 Pekka Nikander <pnr@teldanex.tcm.hut.fi> + + * Makefile.in: Use $(MAKE) not "make" + +Fri Jun 2 19:31:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c (struct alias_set_entry): New field has_zero_child. + (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase. + (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET, + do nothing. + Call record_component_aliases for aggregate types. + (record_alias_subset): Set has_zero_child. + (record_component_aliases, case ARRAY_TYPE): Do nothing if + TYPE_NONALIASES_COMPONENT. + (record_component_aliases, case RECORD_TYPE): Test + DECL_NONADDRESSABLE_P. + * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead + of TREE_ADDRESSABLE. + * calls.c (initialize_argument_information): Only test + TYPE_TRANSPARENT_UNION for UNION_TYPE. + * function.c (assign_parms): Likewise. + * integrate.c (function_cannot_inline_p): Likewise. + * stor-layout.c (finish_record_layout): Don't call + record_component_aliases. + * tree.h (struct tree_int_cst): Use struct tree_common. + (struct tree_real_cst, struct tree_string): Likewise. + (struct tree_complex, struct tree_identifier): Likewise. + (struct tree_list, struct tree_vec, struct tree_exp): Likewise. + (struct tree_block, struct tree_type, struct tree_decl): Likewise. + (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK. + (TYPE_NONALIASES_COMPONENT): New macro. + (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK. + (DECL_NONADDRESSABLE_P): New macro. + (struct tree_decl): Reorder bits for clarity of how many left; + add non_adressable. + +2000-06-02 Jason Merrill <jason@casey.soma.redhat.com> + + * Makefile.in (libgcc.a): Also depend on $(LIB2ADD). + * mklibgcc.in (force): New target. + Make LIB2ADD stuff depend on it. + +2000-06-02 Richard Henderson <rth@cygnus.com> + + * alias.c (lang_get_alias_set): Remove. + (get_alias_set): Call it directly, not indirectly. + * c-common.c (lang_get_alias_set): Rename from c_get_alias_set. + * c-common.h (c_get_alias_set): Don't declare. + * c-decl.c (init_decl_processing): Don't set lang_get_alias_set. + * expr.h (lang_get_alias_set): Declare as function, not pointer. + +2000-06-02 Bruce Korb <bkorb@gnu.org> + + * fixinc/server.c(sig_handler): resume closing server on SIGPIPE + (server_setup): define the server's master pid + (close_server): actually do the deed IFF we are the server's master + +2000-06-02 Jakub Jelinek <jakub@redhat.com> + + * c-common.c (c_get_alias_set): Check whether signed_type did not + return its argument before calling get_alias_set on the result. + +2000-06-02 Andrew MacLeod <amacleod@cygnus.com> + + * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE. + +Fri Jun 2 00:22:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave. + (CONDITIONAL_REGISTER_USAGE): Mac registers are call used + for TARGET_NOMACSAVE. + (NOMACSAVE_BIT): Define. + (TARGET_NOMACSAVE): Define. + (TARGET_SWITCHES): Add "nomacsave". + +2000-06-02 Toshiyasu Morita <toshi.morita@sega.com> + + * sh.md (untyped_call): Remove excess parameters + +2000-06-01 Loren J. Rittle <ljrittle@acm.org> + + * fixinc/inclhack.def (osf_namespace_a): Relax expression to + match that used before the conversion to c_fix style. + * fixinc/fixincl.x: regenerate + +2000-06-01 Stan Cox <scox@cygnus.com> + + * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix + macro argument typo. + +2000-06-01 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve + error message. + * cpplib.c (parse_include): Remove support for VAX-C + "#include starlet" misfeature. + +2000-05-31 Laurynas Biveinis <lauras@softhome.net> + + * cppfiles.c: conditionally define O_BINARY. + (open_include_file): pass O_BINARY to open(). + +2000-06-01 Richard Henderson <rth@cygnus.com> + + * i960.c (i960_br_predict_opcode): Remove. + (i960_print_operand) [+]: Emit branch prediction hints. + (i960_function_arg): Return early for VOIDmode. + (i960_round_align): Return early for incomplete types. + * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New. + * i960.md (all conditional branches): Add "%+". + +Thu Jun 1 12:24:21 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c (get_alias_set): Don't call language-specific routine more + than is needed and clean up code a bit. + * c-common.c (c_get_alias_set): All references whose type + is char get alias set 0, but character types need not. + * varasm.c (make_function_rtl): Don't call set_mem_attributes. + (make_decl_rtl): Don't call it for FUNCTION_DECL. + +2000-06-01 Bruce Korb <bkorb@gnu.org> + + * fixinc/tests/base/...: new base result files + +Thu Jun 1 09:37:35 2000 Clinton Popetz <cpopetz@cygnus.com> + + * config/i386/i386.c (ix86_use_fcomi_compare): Make global. + * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare. + * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we + will use FCOMI. + +2000-06-01 Richard Henderson <rth@cygnus.com> + + * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h. + + * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.c (sdata_symbolic_operand): Consider small + CONSTANT_POOL_ADDRESS_P addresses for .sdata. + * config/ia64/sysv4.h (SELECT_RTX_SECTION): New. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove. + * config/ia64/ia64.c (ia64_expand_prediction): Move code ... + (ia64_print_operand) [+]: ... here. Use current_output_insn. + * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New. + * config/ia64/ia64.md (all branch/call patterns): Use %+. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (merge_if_block): Be prepared for JOIN to have no + remaining edges. + (find_if_block): Allow THEN with no outgoing edges. + * flow.c (merge_blocks_nomove): Remove a barrier not following + a jump as well. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * flow.c (propagate_block): Move initialization of mem_set_list ... + (init_propagate_block_info): ... here. Also track blocks with + no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * jump.c (jump_optimize_1): Revert 05-18 change. + +2000-05-31 Mark Mitchell <mark@codesourcery.com> + + * invoke.texi: Remove documentation for -fguiding-decls. + +2000-05-31 Richard Henderson <rth@cygnus.com> + + * configure.in: Fix typo last change. + +2000-05-31 Philipp Thomas <pthomas@suse.de> + + * configure.in (enable-nls): Enable if build == host, i.e. when + not building a canadian cross compiler. + (enable-maintainer-mode): Added for use with i18n. + * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a + cross section of ALL_LINGUAS and LINGUAS. + * configure: Rebuild. + +2000-05-31 Bruce Korb <bkorb@gnu.org> + + * fixinc/check.tpl: rework to use test result tree + * fixinc/Makefile.in: change invocation of check script + * fixinc/check.diff: No longer needed + * fixinc/fixincl.x: regenerate + * fixinc/inclhack.def: add new tests + * fixinc/tests/base/arch/i960/archI960.h: New test result + * fixinc/tests/base/curses.h: modified test result + * fixinc/tests/base/stdio.h: ditto + * fixinc/tests/base/time.h: ditto + * fixinc/tests/base/sys/asm.h: ditto + * fixinc/tests/base/sys/stat.h: ditto + * fixinc/tests/base/sys/wait.h: ditto + +Wed May 31 13:17:20 2000 Philippe De Muyter <phdm@macqel.be> + + * except.c (clear_function_eh_region): Do not free NULL. + +Wed May 31 08:07:52 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * Makefile.in (c-decl.o): Depend on rtl.h and expr.h. + * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT. + (REG_BASE_VALUE): Remove unneeded cast to unsigned. + (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT. + (find_base_decl): New function, from c_find_base_decl in c-common.c. + (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT. + (get_alias_set): Likewise. + Major rework to do more things and allow language-specific code + to just handle special-cases. + (record_alias_subset): Args are HOST_WIDE_INT. + (record_component_alias): Local vars are HOST_WIDE_INT. + Don't handle COMPLEX_EXPR. + (get_varargs_alias_set): Moved from builtins.c. + (get_frame_alias_set): New function. + * builtins.c (expand_builtin_return_address): Use frame alias set. + (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set + for setjmp buffer. + (get_memory_rtx): Rework to use set_mem_attributes. + (get_varargs_alias_set): Deleted from here. + * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT. + (c_find_base_decl): Deleted from here. + (c_get_alias_set): Remove many cases and rework to just handle + C-specific cases. + * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT. + * c-decl.c (rtl.h, expr.h): Now included. + (init_decl_processing): Call record_component_aliases on array types. + (grokdeclarator): Likewise. + Set TREE_ADDRESSABLE for all fields that are not bitfields. + * c-typeck.c (common_type): Call record_component_aliases for array. + * caller-save.c (setup_save_areas): Rework register loop for unsigned. + Set all save areas to the frame alias set. + * calls.c (initialie_argument_information): Call set_mem_attributes. + (compute_argument_addresses, expand_call): Likewise. + * explow.c (set_mem_attributes): New function. + (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg. + * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}. + LEN and OFFSET now HOST_WIDE_INT. + (clear_by_pieces): Similar changes. + (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields. + (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT. + (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES. + (clear_by_pieces_1): Likewise. + (emit_push_insn): Call set_mem_attributes. + (expand_expr, case INDIRECT_REF): Likewise. + (expand_expr, case VAR_DECL): Call change_address. + * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and + tree_low_cst. + (get_varargs_alias_set, get_frame_alias_set): New decls. + (record_base_value, record_alias_subset, lang_get_alias_set): Likewise. + (new_alias_set, set_mem_attributes): Likewse. + * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT. + (assign_stack_temp_for_type): Likewise. + Can split slot even if alias set since can copy. + Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P. + (assign_temp): Use host_integerp and tree_low_cst. + (put_var_into_stack): Properly handle SAVE_EXPR. + (put_addressof_into_stack): Likewise. + (assign_parms): Call set_mem_attributes. + Delete #if 0 code. + (fix_lexical_address): Put reference to chain into frame alias set. + (expand_function_start): Call set_mem_attributes. + * integrate.c (expand_inline_function): Likewise. + * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES. + * regmove.c (try_apply_stack_adjustment): Likewise. + * reload.c (push_reload, make_memloc): Likewise. + * reload1.c (alter_reg): Make alias sets for spilled pseudos. + * rtl.def (MEM): Update comment. + * rtl.h (MEM_ALIAS_SET): Now uses XCWINT. + (move_by_pieces): Change length to HOST_WIDE_INT. + (record_base_value, record_alias_subset): Delete from here. + * stmt.c (expand_decl): Call set_mem_attributes. + * stor-layout.c (finish_record_layout): Call record_component_aliases.i + * toplev.c (compile_file): Call init_alias_once earlier. + * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted + from here: now in alias.c. + * tree.h (struct tree_type): alias_set is HOST_WIDE_INT. + (struct tree_decl): Likewise. + (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here. + * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes. + (output_constant_def, force_const_mem): Likewise. + + * flow.c (propagate_block): If block has no successors, stores to + frame are dead if not used. + +2000-05-31 Nathan Sidwell <nathan@codesourcery.com> + + * stmt (expand_end_case): Reorder conversion sequence for jump + table to avoid extra truncations. + +Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) + + * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn + in the block is more than just a simple conditional branch. + (noce_process_if_block): Similarly. + +Tue May 30 22:25:57 2000 Alexandre Oliva <aoliva@cygnus.com> + + * optabs.c (prepare_float_lib_cmp): Protect *px and *py from + queue. + +2000-05-30 Michael Meissner <meissner@redhat.com> + + * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH + instructions. Treat LO_SUM operations as loading the full integer + constant. + +2000-05-30 Richard Henderson <rth@cygnus.com> + + * combine.c (get_pos_from_mask): Test exact_log2 result as signed. + +2000-05-30 Richard Henderson <rth@cygnus.com> + + * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. + +2000-05-30 Bruce Korb <bkorb@gnu.org> + + * fixinc/tests/*: Added expected result files for fixinc's make check + * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm + +2000-05-30 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.md (*setne_internal): Use match_operator + instead of working down from insn. + +2000-05-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * invoke.texi (-Wtraditional): Update WRT function macros. + +Tue May 30 09:57:32 2000 Philippe De Muyter <phdm@macqel.be> + + * except.c (free_exception_table): Do not free NULL. + +2000-05-29 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (do_if): Don't save and restore only_seen_white here. + * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white + and skipping here. + +2000-05-29 Richard Earnshaw (rearnsha@arm.com) + + * flow.c (mark_used_reg): If a register is unconditionally live, + remove any conditional death information. + +2000-05-29 Richard Henderson <rth@cygnus.com> + + * final.c (current_output_insn): New. + (final_scan_insn): Set it. + * output.h: Declare it. + +2000-05-29 Richard Henderson <rth@cygnus.com> + + * stor-layout.c (finalize_record_size): Fix typo. + + * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END + if nlabel is null. + +2000-05-29 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (cpp_reader): Remove if_stack. Change + potential_control_macro to a cpp_hashnode *. Add skipping flag. + * cpphash.h (struct ihash): Change control_macro to a + cpp_hashnode * and shorten name to cmacro. + Add NEVER_REINCLUDE constant. + + * cppfiles.c (redundant_include_p): Drop cpp_reader argument. + Examine the cmacro node directly, no need to call cpp_defined. + (_cpp_execute_include, read_include_file): Set cmacro to + NEVER_REINCLUDE, not U"". + * cpplex.c (cpp_push_buffer): Don't set new->if_stack. + (cpp_get_token): If pfile->skipping is true, discard text and + keep scanning until we hit a directive; don't expand macros. + + * cpplib.c (struct if_stack): Remove if_succeeded, add + was_skipping. Change control_macro to a cpp_hashnode * and + shorten name to cmacro. Remove typedef IF_STACK. + (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *. + (conditional_skip, skip_if_group, + consider_directive_while_skipping): Delete. + (push_conditional): New. + (_cpp_handle_directive): Don't process directives other than + conditionals if we are skipping. + + (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif): + Update to new scheme. + (validate_else): Skip rest of line here, unconditionally. + (_cpp_unwind_if_stack): The stack is per-buffer. Force + pfile->skipping off. + + (all): Remove `scare quotes' from error messages. + +2000-05-29 Richard Henderson <rth@cygnus.com> + + * function.c (emit_return_into_block): New line_note arg; emit it. + (thread_prologue_and_epilogue_insns): Attempt to locate a line note + for the close brace to accompany HAVE_return. Move all line notes + following the epilogue to before the NOTE_INSN_EPILOGUE_BEG. + +2000-05-29 Richard Henderson <rth@cygnus.com> + + * longlong.h [__alpha] (count_leading_zeros): New. + (count_trailing_zeros): New. + (COUNT_LEADING_ZEROS_0): New. + + * config/alpha/alpha.c (alpha_zero_comparison_operator): New. + (alpha_split_conditional_move): New. + * config/alpha/alpha-protos.h: Prototype them. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67. + * config/alpha/alpha.md: Update ffs cix commentary. + (*ze_and_ne): New. + (*nabssf2, *nabsdf2): New. + (*mov[qhsd]icc_internal): Use add_operand. + (if_then_else constant splitters): New. + (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New. + (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New. + +2000-05-29 Richard Henderson <rth@cygnus.com> + + * combine.c (force_to_mode) [MINUS]: Convert subtraction from + a constant to NEG or NOT when conditions allow. + + * combine.c (combine_simplify_rtx): Don't create an if_then_else + unless both args are general_operand. Don't canonicalize plus + to ior unless it helps. + + * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; + instead track register_life_up_to_date. Toggle no_new_pseudos + around if_convert. + +2000-05-28 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters + so output_operand doesn't see them. + +Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com> + + * lcm.c (make_preds_opaque): Fix comment. + (optimize_mode_switching): Use NORMAL_MODE instead of + MODE_USES_IN_EXIT_BLOCK. Change leftover instance of + FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE. + Handle insertions before an existing NOTE_INSN_BASIC_BLOCK. + * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE. + (MODE_USES_IN_EXIT_BLOCK): Delete. + (MODE_AT_ENTRY) Rename to NORMAL_MODE. + * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete. + (MODE_AT_ENTRY): Rename to NORMAL_MODE. + (MODE_NEEDED): Don't look for USE. + (EPILOGUE_USES): Define. + +Sun May 28 23:26:59 2000 Philippe De Muyter <phdm@macqel.be> + + * mklibgcc.in (all): Variable initialised to `libgcc'. + +2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> + + * toplev.h (skip_leading_substring): New macro. + * toplev.c (decode_f_option): Use skip_leading_substring instead + of strncmp. + (decode_W_option): Likewise. + +2000-05-28 Nick Clifton <nickc@cygnus.com> + + * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can + modify reg_names. + +2000-05-28 Richard Henderson <rth@cygnus.com> + + * regclass.c (record_operand_costs): Protect reg_changes_size + with CLASS_CANNOT_CHANGE_SIZE. + + * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn. + +2000-05-28 Richard Henderson <rth@cygnus.com> + + * function.c (diddle_return_value): A pcc-style struct return + returns a pointer. + +2000-05-27 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c: Read files in, using mmap if possible, then + prescan them separately. + (read_file, read_with_read): New functions. + * cpplex.c: Don't define UCHAR_MAX. + (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read + the file here. + + * cppinit.c (handle_option): Automatically define __cplusplus, + __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see + the respective -lang switch. + + * cpphash.h (enum node_type, struct hashnode, _cpp_lookup + prototype): Move to... + * cpplib.h: ... here. Rename struct hashnode to struct + cpp_hashnode and give it a typedef. Rename _cpp_lookup to + cpp_lookup. Add 'fe_value' slot, a union tree_node *. + +2000-05-27 Geoffrey Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.md (movsi): Constify 'name'. + + * regclass.c [CLASS_CANNOT_CHANGE_SIZE] + (class_can_change_size): New variable. + (reg_changes_size): New variable. + (init_reg_sets_1): Initialise class_can_change_size. + (record_operand_costs): Remove subreg_changes_size. + Don't pass it around. Instead update reg_changes_size. + (regclass): Initialise and free reg_changes_size. If a register + changes size, don't preference it to a class that contains + registers that can't change size. + (record_reg_classes): Don't look at subreg_changes_size. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * print-rtl.c (reg_names): Remove const. + * regclass.c (reg_names): Likewise. + * regs.h (reg_names): Likewise. + * hard-reg-set.h (reg_names): Likewise. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (alpha_does_function_need_gp): Test + TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef. + (alpha_expand_prologue): Emit prologue_mcount if needed. + * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0. + * config/alpha/alpha.md (prologue_mcount): New. + * config/alpha/linux.h (FUNCTION_PROFILER): Remove. + (TARGET_PROFILING_NEEDS_GP): Undef before redefining. + * config/alpha/netbsd.h: Likewise. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19 + change to config/elfos.h. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * Makefile.in (resource.o): Depend on except.h. + * except.h (output_exception_table_data): Prototype. + * genconfig.c (gen_peephole2): Prototype. + * genemit.c (main): Include ggc.h. + * genoutput.c: Revert parts of last change: include errors.h + (main): Set progname. + * recog.c: Include hard-reg-set.h before recog.h. + * resource.c: Include except.h. + + * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect + with RTX_CODE. + (alpha_write_linkage): Protect with BUFSIZ. + (alpha_need_linkage): Update prototype. + * config/alpha/alpha.c (function_arg): Move VMS code here. + (alpha_links_base): Remove. + (alpha_links): New. + (mark_alpha_links_node, mark_alpha_links): New. + (alpha_write_one_linkage): New. + (alpha_need_linkage): Use a splay tree. Build the linkage symbol. + (alpha_write_linkage): Use splay_tree_foreach. + * config/alpha/alpha.md (call_vms): Use alpha_need_linkage + to get the linkage symbol. + (call_value_vms): Likewise. + * config/alpha/elf.h (output_file_directive): Remove decl. + (ctors_section, dtors_section): Prototype. + (sbss_section, sdata_section): Prototype. + * config/alpha/vms.h (FUNCTION_ARG): Remove. + (readonly_section, link_section, literals_section): Prototype. + (ctors_section, dtors_section): Prototype. + (vms_valid_decl_attribute_p): Remove decl. + (alpha_arg_type, alpha_arg_info_reg_val): Likewise. + +2000-05-27 Geoff Keating <geoffk@cygnus.com> + + * reload.c (get_secondary_mem): Don't widen floating-point modes. + + * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when + substituting the REG in a (subreg:X (reg:Y ...)). + +2000-05-28 Neil Booth <NeilB@earthling.net> + + * cpplex.c (_cpp_lex_line): Merge vertical space. Flag + first token of a line BOL. Update EOF code for this. + Remove illegal directive check - it appears in the (not + yet committed) caller. + * cpplib.h (BOL): New flag. + +2000-05-28 Neil Booth <NeilB@earthling.net> + + * cpplex.c (_cpp_init_toklist): No comment space to initialise. + (_cpp_free_toklist): No comment space to free. + (expand_comment_space): Remove. + (save_comment_space): Place the comment in the current token and + not in a separate comment space. + (_cpp_lex_line): Save comments during plain code and #define + directives only. + * cpplib.h (struct _cpp_toklist): Remove comment space. + +2000-05-28 Neil Booth <NeilB@earthling.net> + + * cppexp.c (parse_assertion): Supply extra argument to + _cpp_init_toklist. + * cpplib.c (do_assert, do_unassert): Similarly. + * cpphash.h (_cpp_init_toklist) Update. + (_cpp_expand_token_space): New. + (DUMMY_TOKEN, NO_DUMMY_TOKEN): New. + * cpplex.c (_cpp_init_toklist): New argument. + (parse_string2): New argument multiline_ok. + (spell_token): Take a const cpp_token *. + (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used. + (SPELL_ macros): Replace with enum. + (expand_token_space): Replace with _cpp_expand_token_space. + Take COUNT argument. + (IS_DIRECTIVE): Update. + (_cpp_lex_line): Update token structure before parsing number. + Don't assume start at beginning of token list. + (save_comment): Use INIT_TOKEN_NAME. + +2000-05-27 Zack Weinberg <zack@wolery.cumb.org> + + * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes + -Wmissing-prototypes. + * configure: Regenerate. + * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES. + + * builtins.c, calls.c: Change all instances of gen_call_* or + gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*. + * calls.c (struct_value_size_rtx): Separate definition from + initialization to avoid unused variable warning. + + * genflags.c (gen_macro): New function. + (gen_proto): Call it for gen_call_* and gen_sibcall_*. + (gen_nonproto): Delete. + (gen_insn): Put all insns on the same obstack. + (main): Generate prototypes for everything unconditionally. + + * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented + out check for wchar_t. + * acconfig.h: Add template for ssize_t. Remove @TOP@. + * system.h: Add infrastructure for defining missing + TYPE_MAX/TYPE_MIN macros. Use it to provide fallback + definitions of UCHAR_MAX and SSIZE_MAX. + * configure: Regenerate. + * config.in: Regenerate. + + * Makefile.in (libgcc2.ready): Rename to libgcc.ready. + Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed + headers. + (clean): No need to delete libgcc1.a, libgcc1-asm.a, + libgcc2.a, or libgcc1.null. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * Makefile.in (recog.o): Don't depend on resource.h. + * recog.c: Don't include resource.h. + (recog_last_allowed_insn): Remove. + (recog_next_insn): Remove. + (struct peep2_insn_data): New. + (peep2_insn_data, peep2_current): New. + (peep2_next_insn): New. + (peep2_regno_dead_p, peep2_reg_dead_p): New. + (peep2_find_free_register): New. + (peephole2_optimize): Track life information by insn as we go. + * recog.h: Update declarations. + * resource.c (find_free_register, reg_dead_p): Remove. + * resource.h: Remove their declarations. + * toplev.c: Include hard-reg-set.h before recog.h. + + * genconfig.c (max_insns_per_peep2): New. + (gen_peephole2): New. + (main): Call it. + * genemit.c (output_peephole2_scratches): Generate calls to + peep2_find_free_register; adjust surrounding code. + (main): Have insn-emit.c include hard-reg-set.h before recog.h. + * genrecog.c (change_state): Don't track last_insn. + (write_action): Write into *_pmatch_len before accepting. + (write_tree): Adjust peephole2_insns and subroutines to match. + + * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. + + * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode. + (hard_int_register_operand): New. + * config/alpha/alpha-protos.h: Declare it. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand + as needed; use peep2_reg_dead_p instead of dead_or_set_p. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * function.c (thread_prologue_epilogue_insns): Don't move the + line note at the head of the chain. Only force a lineno note + before the end of block 0. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * gensupport.c (collect_insn_data): Record the maximum number + of alternatives, not the last seen. + + * genoutput.c: Don't include errors.h. + (struct data): Add lineno member. + (have_error): New. + (scan_operands): Use message_with_line instead of error. + (validate_insn_alternatives): Likewise. + (gen_insn): Accept and store the pattern's line number. + (gen_peephole, gen_expand, gen_split): Likewise. + (main): Don't set progname. Pass line_no to gen_foo. + +2000-05-27 Richard Henderson <rth@cygnus.com> + + * config/d30v/d30v.c (d30v_print_operand): Handle ':'. + * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'. + * config/d30v/d30v.md (attr predicable): New. + (all insn patterns): Mark non-predicable patterns; use %: on the rest. + (andsi3*): Unify into one pattern. + (iorsi3*, xorsi3*): Likewise. + (peephole2 patterns): Use peep2_reg_dead_p; verify not a + conditional return. + (old cond_exec patterns): Remove. + (define_cond_exec): New. + +Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * tree.h (TREE_CODE_LENGTH): New macro. + * c-common.c (c_find_base_decl): Use it. + * expr.c (safe_from_p): Likewise. + * print-tree.c (print_node): Likewise. + * tree.c (make_node, copy_node, get_identifier): Likewie. + (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. + (build, build_nt, build_parse_node, simple_cst_equal): Likewise. + * fold-const.c (make_range): Likewise. + (fold): Likewise; also use first_rtl_op. + * c-iterate.c (collect_iterators): Use first_rtl_op. + * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. + Use IS_EXPR_CODE_CLASS. + (preexpand_calls): Likewise. + * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op + and TREE_CODE_LENGTH. + * stmt.c (warn_if_unused_value): If no operands, no unused value. + +2000-05-26 Geoffrey Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather + than '%1(%*)'. + (movdi_internal64): Likewise. + + * config/rs6000/rs6000.md: Correct order of operands for DImode + boolean patterns. + + * config/rs6000/rs6000.c (boolean_or_operator): New function. + * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator. + * config/rs6000/rs6000.md: Use boolean_or_operator instead of + boolean_operator for the boolean patterns without NOTs. + + * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename + from reg_or_u_cint_operand. Change comment and behaviour. + (logical_operand): Clean up, add assertion. + (non_logical_cint_operand): Also check for + reg_or_logical_cint_operand. + * config/rs6000/rs6000.h (PREDICATE_CODES): Update. + * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand + in the expander. + (xorsi3): Likewise. + (iordi3): Likewise. + (xordi3): Likewise. + +2000-05-26 Mark Mitchell <mark@codesourcery.com> + + * tree.h (struct record_layout_info): Rename to (struct + record_layout_info_s). + * stor-layout.c (start_record_layout): Replace + `record_layout_info' with `record_layout_info_s'. + +2000-05-26 Richard Earnshaw <rearnsha@arm.com> + + * flow.c (find_label_refs): New function. + (find_basic_blocks_1): Call it for each alternative of a call + placeholder. + +2000-05-26 Richard Earnshaw <rearnsha@arm.com> + + * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC + of get_pc. + +2000-05-25 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (alpha_comparison_operator): Don't be + so strict about DImode. + (alpha_swapped_comparison_operator): Likewise. + * config/alpha/alpha.md (*setne_internal): Name it. Allow + any integer output mode. + (*setcc_internal): Likewise. + (*setcc_swapped_internal): Likewise. + (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them. + (*mov[qhs]icc_internal): New. + (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New. + +2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca> + + * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified. + +2000-05-25 Richard Henderson <rth@cygnus.com> + + * bb-reorder.c (reorder_block_def): Reorder elements for size. + Remove add_jump; add next; replace flags with visited. + (rbd_init): Remove. + (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove. + (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove. + (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove. + (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove. + (RBI): New. + (reorder_index, reorder_last_visited): Remove. + (skip_insns_after_block): Rewrite to use a switch. + (get_common_dest): Remove. + (chain_reorder_blocks): Remove. + (record_effective_endpoints): Split out from reorder_basic_blocks. + (make_reorder_chain): Likewise. Loop until all blocks are placed. + (make_reorder_chain_1): Renamed from old make_reorder_chain. + Only construct the reorder chain, do not move insns. Try harder + to tail recurse. + (label_for_bb, emit_jump_to_block_after): New. + (fixup_reorder_chain): Use them. Do bulk block movement. Examine + and adjust the jump insns appropriately. Fixup basic_block_info. + (verify_insn_chain): Always define. + (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko + in allocation size. + (make_new_scope): Don't write zeros to calloc'd space. + (build_scope_forest): Rely on xrealloc to DTRT. + (reorder_basic_blocks): Don't build loop nest. Don't fail if + profile_arc_flag. Streamline EH test. + + * flow.c (redirect_edge_succ, redirect_edge_pred): New. + * basic-block.h: Declare them. + +2000-05-25 Alexandre Oliva <aoliva@cygnus.com> + + * emit-rtl.c (reset_used_decls): New function. + (unshare_all_rtl_again): Call it. + +2000-05-25 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (maybe_macroexpand): Warn about function-like + macros used in non-function context, if -Wtraditional. + +2000-05-25 Mark Mitchell <mark@codesourcery.com> + + * recog.c (peephole2_optimize): Use INSN_P. + +2000-05-25 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (seq_contains_jump): New. + (noce_try_store_flag_constants): Use it to fail conversion. + (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise. + +2000-05-25 Mark Mitchell <mark@codesourcery.com> + + * except.h (can_throw): Declare it. + * except.c (can_throw): Give it external linkage. + * resource.c (find_dead_or_set_registers): Use can_throw. + +2000-05-25 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_set_1): Don't record conditionally dead memory. + +2000-05-25 Jan Hubicka <jh@suse.cz> + + * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p + and pc_set at the place of simplejump_p and condjump_p. + * cse.c (record_jump_equiv): Likewise. + * emit-rtl.c (emit): Likewise. + * explow.c (find_next_ref): Likewise. + * flow.c (tidy_fallthru_edge): Likewise. + (init_propagate_block_info): Likewise. + * gcse.c (delete_null_pointer_checks): Likewise. + * ifcvt.c (cond_exec_get_condition, noce_get_condition, + dead_or_predicable): Likewise. + * integrate.c (copy_insn_list): Likewise. + * loop.c (scan_loop, verify_dominator, find_and_verify_loops, + for_each_insn_in_loop, check_dbra_loop, get_condition, + insert_bct, load_mems): Likewise. + * resource.c (find_dead_or_set_registers): Likewise. + * sibcalls.c (simplejump_p): Likewise. + * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise. + +2000-05-25 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move + to STRING case. Use doubleword STRING move for TARGET_POWERPC64 + when unaligned. + * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT. + (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame. + (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high. + * rs6000.md: Name various internal patterns. + +2000-05-25 Jan Hubicka <jh@suse.cz> + + * jump.c (invert_exp_1): Remove first argument, use pc_set + to get the expression. + (redirect_exp): Make static; redirect only the pc_set expression, + remove first argument. + (invert_exp): Remove first argument, make static. + (jump_optimize): Use any_condjump_p, any_uncondjump_p and + any_onlyjump at most places where we originaly did condjump_p + and simplejump_p. + (jump_back_p, follow_jumps, thread_jumps): Likewise. + (delete_barrier_succesors): Use pc_set. + (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update + calls of invert_exp and redirect_exp. + * rtl.h (redirect_exp, invert_exp): Remove. + * unroll.c (copy_loop_body): Use invert_jump and redirect_jump. + +2000-05-25 Richard Henderson <rth@cygnus.com> + + * stmt.c (expand_end_bindings): Fix thinko last change. + +2000-05-25 Andrew MacLeod <amacleod@cygnus.com> + Andrew Haley <aph@cygnus.com> + + * except.c (func_eh_entry): Add emitted field. + (new_eh_region_entry): Set emitted field to 0; + (output_exception_table_entry): Only emit previously un-emitted data, + and send it to the eh_data section. + (output_exception_table): Break out common parts. Output + exception table for entire compilation unit to eh_data section. + (output_exception_table_data): Common parts of output_exception_table. + Send output to eh_data section. + (output_function_exception_table): Output exception table data for + a single function to eh_data section. + (free_exception_table): New external to free the table. + * except.h (free_exception_table): Add prototype. + (output_function_exception_table): Add prototype. + * final.c (final_end_function): Output function exception table + for IA64_UNWIND_INFO. + (final_scan_insn): Emit any unwind directives for an insn. + + * frame-dwarf2.c: New file containing all DWARF 2 specific code + from frame.c. + * frame.c: Remove all DWARF 2 specific code. + * config/ia64/frame-ia64.c: New file. + (gthread_stuff): Make all gthread available with + IA64_UNWIND_INFO. + (dwarf_fde): Define an IA64 struct for dwarf_fde. + (__register_frame_info, __register_frame): Move to common area of file. + (__register_frame_info_table, __register_frame_table): Move to common i + area. + (__deregister_frame_info, __deregister_frame): Move to common area. + (__frame_init, find_fde): New versions for IA64_UNWIND_INFO. + (read_uleb128): New version for ia64. + (get_unwind_record): Read the next IA-64 unwind record. + (read_R_record): Read a region header record. + (process_a_b_reg_code): X record helper. + (read_X_record): Read an X format record. + (read_B_record): Read a B format record. + (P3_record_types): List of record types matching the P3 format. + (P7_record_types): List of record types matching the P7 format. + (P8_record_types): List of record types matching the P8 format. + (read_P_record): Read a P format record. + (init_ia64_reg_loc): Set default fields for a register. + (init_ia64_unwind_frame): Set defaults for all register records. + (execute_one_ia64_descriptor): Execute one descriptor record. + (rse_address_add): Calculate the position of a local reg in memory. + (normalize_reg_loc): Turn a location descriptor into a memory address. + (maybe_normalize_reg_loc): Only normalize a descriptor if it falls + within a specified PC offset range. + (get_real_reg_value): Given a register location, retrieve its value. + (set_real_reg_value): Change the value of a register location. + (copy_reg_value): Copy reg values, if needed. + (copy_saved_reg_state): Copy all registers that need to be copied. + (process_state_between): Normalize all frame register records that + fall within the specified PC range. + (frame_translate): Take a processed frame description, and turn + everything into addresses. + (build_ia64_frame_state ): Find and create frame state record for a PC. + (get_personality): Get the personality routine for a given frame. + (get_except_table): Get the exception table for a given frame. + (record_name): Unwind record names for debugging. + (print_record): Print and unwind record. + (print_all_records): Print an entire unwind image. + (__ia64_backtrace): Print a backtrace. + (ia64_backtrace_helper): New function. + (__register_frame_info_aux): New function. + * config/ia64/crtend.asm (__do_frame_setup_aux): New function. + + * frame.h (enum unw_record_type): New unwind record types. + (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records. + (struct unw_r_record, unwind_record): New unwind record structs. + (struct unwind_info_ptr): Unwind information layout. + (IA64_UNW_LOC_TYPE_*): Macros for different types for location + descriptors. + (struct ia64_reg_loc): Register location description. + (struct ia64_frame_state): Location of all registers in a frame. + (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO. + * libgcc2.c (__ia64_personality_v1): Personality routine. + (__calc_caller_bsp): Calculate the bsp register for the caller's + frame. + (ia64_throw_helper): Figure out who to return to and set up the + registers. + (__throw): Throw routine. + + * output.h (assemble_eh_align, assemble_eh_label): New functions + to generate EH info where we want it. + (assemble_eh_integer): New function. + * toplev.c (compile_file): Output module level exception table for + non-ia64 targets. + (main): Set exceptions_via_longjump and flag_new_exceptions based + on IA64_UNWIND_INFO too. + + * varasm.c (assemble_eh_label): Generate a label via + ASM_OUTPUT_EH_LABEL if it has been specified. + (assemble_eh_align): Generate an alignment directive via + ASM_OUTPUT_EH_ALIGN if it has been specified. + (assemble_eh_label): Generate an integer value via + ASM_OUTPUT_EH_type if they have been specified. + * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs. + (ia64_init_builtins): Add __builtin_ia64_bsp + and __builtin_ia64_flushrs. + (ia64_expand_builtin): Add IA64_BUILTIN_BSP and + IA64_BUILTIN_FLUSHRS. + * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and + IA64_BUILTIN_FLUSHRS. + + * config/ia64/ia64.md (flushrs): New insn to flush the register + stack. Add to unspec list. + + * config/ia64/crtbegin.asm (frame_object): Change size. + (__do_frame_setup_aux): New function. + * config/ia64/crtend.asm: call __do_frame_setup_aux. + * config/ia64/t-ia64 (LIB2ADDEH): Add. + * Makefile.in (LIB2ADDEH): Add. + (LIB2ADD): Use LIB2ADDEH. + +2000-05-24 Richard Henderson <rth@cygnus.com> + + * recog.c (offsettable_address_p): If mode size is zero, assume + BIGGEST_ALIGNMENT. + +2000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca> + + * configure.in: Check for -Wno-long-long option support and improve + handling of warning CFLAGS for stages 1 and 2. + * Makefile.in (WARN_CFLAGS): Move definition to configure.in. + * configure: Regenerate. + +Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com) + + * gcc.texi: Remove contributor list. Instead include contrib.texi. + * contrib.texi: New file. + +Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (basic_induction_var): Avoid double recording of an increment. + +Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * Back out this patch: + Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com> + * loop.h (struct induction): Add multi_insn_incr. + * loop.c (basic_induction_var): New multi_insn_incr argument. + Set it if we search back through previous insns for the biv. + (record_biv): New multi_insn_incr argument; fill in struct induction. + (strength_reduce): Discard an iv with multiple bivs, any of + which require multiple insns to increment. + + * loop.c (check_insn_for_bivs): Remove bits copied from above patch. + +Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * rtl.h (loc_mentioned_in_p): Declare. + * reload.c (loc_mentioned_in_p): Moved from here... + * rtlanal.c (loc_mentioned_in_p): to here. No longer static. + Fix loop increment for 'E' handling. + * loop.c (strength_reduce): When doing biv->giv conversion, + take multi-insn biv increments into account. + +2000-05-24 Jason Merrill <jason@casey.soma.redhat.com> + + * stmt.c (expand_end_bindings): Look through NOTEs to find a + BARRIER. + +2000-05-24 Mark Mitchell <mark@codesourcery.com> + + * calls.c (expand_call): Handle cleanups in tail-recursion + arguments analagously to cleanups in sibling calls. + +2000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND. + All callers changed. + +2000-05-24 Alexandre Oliva <aoliva@cygnus.com> + + * expr.c (expand_assignment, store_expr, expand_expr, + expand_expr_unaligned): Set in_check_memory_usage while emitting + chkr_check_addr libcall. + +2000-05-24 Nick Clifton <nickc@cygnus.com> + + * fold-const.c (extract_muldiv): When constructing a + multiplier/divisor, do not expect const_binop to correctly + determine if overflow has occured, so check explicitly. + +2000-05-24 Alexandre Oliva <aoliva@cygnus.com> + + * c-decl.c (build_enumerator): Don't modify the value's type, + convert it. + +2000-05-24 Andreas Jaeger <aj@suse.de> + + * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default. + +2000-05-24 Eric Christopher <echristo@cygnus.com> + + * configure.in: Redefine inhibit_libc conditions. + * libgcc2.c: Remove inhibit_libc conditional define. + * configure: Regenerate. + +2000-05-24 Phil Edwards <pme@sourceware.cygnus.com> + + * configure.in: For --enable-languages=LIST, check for empty LIST. + * configure: Regenerate. + +2000-05-24 Lars Brinkhoff <lars@nocrew.org> + + * pdp11.h (STACK_BOUNDARY): Define. + +2000-05-24 Jakub Jelinek <jakub@redhat.com> + + * ifcvt.c (if_convert): Update life info globally. + +2000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * emit-rtl.c (unshare_all_decls): New function. + (unshare_all_rtl): Call it. + +2000-05-23 Nick Clifton <nickc@cygnus.com> + + * configure.in: Treat 'strongarm' as if it were 'arm' when + determining cpu type. + + * configure: Regenerate. + + * config/arm/arm.c: Change 'char *' to 'const char *' for cases + where constant strings are involved. + + * config/arm/arm.h (arm_condition_codes): Change type to 'const + char *'. + + * config/arm/arm-protos.h: Change 'char *' to 'const char *' for + cases where constant strings are involved. + +Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com> + + * config/sh/sh.c (gen_far_branch, split_branches): Update + to reflect new prototypes for redirect_jump and invert_jump. + (sh_insn_length_adjustment): Get rid of const warnings. + +2000-05-23 Kazu Hirata <kazu@hxi.com> + + * invoke.texi (Options for Debugging Your Program or GCC): Update + the names of dump files. + +Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be> + + * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix. + * configure: Regenerated. + +2000-05-23 Zack Weinberg <zack@wolery.cumb.org> + + * simplify-rtx.c (SIGN_EXTEND): New macro. + (simplify_unary_operation, simplify_binary_operation, + simplify_relational_operation): Use SIGN_EXTEND. Make low + halves of (low, high) pairs unsigned if they weren't already. + (simplify_ternary_operation): Cast INTVAL to unsigned before + comparing to a MODE_BITSIZE. + +2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros + rewritten from the internals of gcc_AC_NEED_DECLARATION{S}. + + * configure.in (gcc_AC_CHECK_DECLS): Call this instead of + gcc_AC_NEED_DECLARATIONS. + + * dwarfout.c: Don't prototype time(). + + * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*. + + * system.h: Likewise. + + * toplev.c: Likewise. + +2000-05-23 Zack Weinberg <zack@wolery.cumb.org> + + * c-decl.c (pushdecl): Invert sense of test for non-global types. + +Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION. + +2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk> + + * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define + +Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler. + (alpha_start_function): Never write ..ng label if VMS or NT. + (alpha_align_insns): Remove GP_IN_USE arg. + Alignment now unsigned. + (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns. + * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand + and two define_insn's. + +2000-05-22 Richard Henderson <rth@cygnus.com> + + * combine.c (simplify_comparison): Use trunc_int_for_mode. + +2000-05-22 Richard Henderson <rth@cygnus.com> + + * stor-layout.c (place_field): Change rli->size to rli->offset. + +2000-05-22 Richard Henderson <rth@cygnus.com> + + * function.c (thread_prologue_and_epilogue_insns): Make sure + existing line number notes appear after the prologue. + +Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * config/alpha/alpha.c (alpha_fnname): New static variable. + (print_operand, case '~'): New case. + (alpha_expand_prologue): Emit prologue_ldgp insn if needed. + (alpha_start_function): Set alpha_fnname. + Write "ng" label if no ldgp; don't write ldgp insn. + * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'. + * config/alpha/alpha.md (prologue_ldgp): New define_insn. + +Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com> + + * jump.c (jump_optimize_1): Don't increment LABEL_NUSES + on deleted labels. + +2000-05-22 Zack Weinberg <zack@wolery.cumb.org> + + * varasm.c (eh_frame_section): Revert change to argument list. + +Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value. + (gen_extend_insn, can_fix_p, can_float_p): Likewise. + + * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove + dangling "else" that causes "break" to be conditional. + Also remove unneeded code at start. + +Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be> + + * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1. + * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto. + * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto. + +2000-05-22 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has + just one argument. + +Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c (record_component_aliases): New function. + * tree.h: Clean up some declarations and comments. + (record_component_aliases): New declaration. + * tree.c (get_alias_set): If type and has alias set, use it. + +2000-05-22 Richard Henderson <rth@cygnus.com> + + * simplify-rtx.c (simplify_ternary_operation): Try to simplify + IF_THEN_ELSE to a setcc form. + * jump.c (can_reverse_comparison_p): Be prepared for insn null. + +2000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/inclhack.def (sun_malloc): Handle `calloc'. + (sun_malloc, sysz_stdtypes_for_sun): Add test_text. + +Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is + not a PARALLEL. + +2000-05-20 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. + * config/mn10300/mn10300.c (print_operand): Likewise. + + * final.c (split_double): Right shift of negative values is not + portable. + + * ifcvt.c (if_convert): Scan and kill dead code. + + * emit-rtl.c (unshare_all_rtl): Store the copied rtx. + +2000-05-20 Zack Weinberg <zack@wolery.cumb.org> + + * diagnostic.c: Eliminate implicit int. + * except.c, gcc.c: Add static prototypes. + * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED. + * gensupport.c (process_rtx): Use XVEC to initialize vector + slot of 'split'. + + * print-rtl.c: If DEBUG_REGISTER_NAMES, define static + debug_reg_names instead of static reg_names. If not, define + global reg_names. + * regclass.c: Don't define global reg_names unless + DEBUG_REGISTER_NAMES is defined. + + * reload1.c (order_regs_for_reload): Remove unused variable. + * varasm.c: Include output.h after defaults.h. Define + eh_frame_section as function of no args, not of unspecified args. + + * gcc.c: Constify argbuf; arguments to store_arg, + process_command, main; elements of struct command and struct + switchstr; local variables in execute, process_command, main. + +2000-05-20 Bruce Korb <bkorb@gnu.org> + + * fixinc/inclhack.def: many applications of c_fix=format + tests + * fixinc/check.diff: regenerated + * fixinc/fixincl.x: regenerated + +Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c: Clarify some comments. + (record_base_value): REGNO is unsigned. + * rtl.h (record_base_value): Likewise. + + * alias.c (aliases_everything_p): Don't special-case QImode here. + * c-common.c (c_get_alias_set): Do it here. + Handle BIT_FIELD_REF by getting alias info for arg. + Use POINTER_TYPE_P. + +2000-05-20 Alexandre Oliva <aoliva@cygnus.com> + + * mklibgcc.in: Restore rule to create ${dir}. + +Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org> + + * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for + GCC_FOR_TARGET used by MULTILIBS. + * mklibgcc.in: Make sure each .o file depends on the + directory it will be in. + Make the multilib directory depends libgcc. + +Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org> + + * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1. + +Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com> + + * fold-const.c (make_range): Handle degenerated intervals. + Fixes c-torture/execute/991221-1.c + +Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. + * reload.c (find_equiv_reg): Likewise. + * alias.c (init_alias_analysis): Likewise. + Only call prologue_epilogue_contains on insns. + * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function. + * bb-reorder.c (hard-reg-set.h): Include earlier. + * haifa-sched.c (hard-reg-set.h): Likewise. + * ifcvt.c (hard-reg-set.h): Likewise. + * local-alloc.c (hard-reg-set.h): Likewise. + * loop.c (hard-reg-set.h): Likewise. + * predict.c (hard-reg-set.h): Likewise. + * regrename.c (hard-reg-set.h): Likewise. + * flow.c (hard-reg-set.h): Likewise. + (reg_set_to_hard_reg_set): New function. + * bitmap.c (regs.h, basic-block.h): No longer include. + (bitmap.h): Now include. + * conflict.c (hard-reg-set.h): Include. + * profile.c (hard-reg-set.h): Likewise. + * print-rtl.c (hard-reg-set.h): Likewise. + * sbitmap.c (hard-reg-set.h): Likewise. + * toplev.c (hard-reg-set.h): Likewise. + * unroll.c (hard-reg-set.h, basic-block.h): Likewise. + * hard-reg-set.h (reg_names): Now constant. + * regs.h (reg_names): Likewise. + * regclass.c (reg_names): Likewise. + * loop.h (basic-block.h): No longer include. + (bitmap.h): Now include. + * reload1.c (order_regs_for_reload): Avoid loop over reg sets. + * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes. + (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise. + +2000-05-19 Jan Hubicka <jh@suse.cz> + Richard Henderson <rth@cygnus.com> + + * basic-block.h (struct edge_def): New field "count". + (struct basic_block_def): Likewise. + * flow.c (entry_exit_blocks): Add count fileds. + (split_edge): Keep count information up-to-date. + (dump_edge_info, dump_flow_info): Dump count fields. + + * final.c (count_instrumented_edges): Rename to edge from arc. + (end_final): Update users. + * profile.c: Include expr.h, basic-block.h. + (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill. + (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill. + (ignore_next_note, return_label_execution_count): Kill. + (bbg_file_name, da_file_name): Kill. + (edge_info, bb_info): New structures. + (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros. + (count_instrumented_edges, total_num_edges): Rename to edge from arc. + (total_num_edges_instrumented): Likewise. + (init_arc, expand_spanning_tree): Kill. + (fill_spanning_tree, tablejump_entry_p): Kill. + (instrument_edges): Rewrite from instrument_arcs to use + commit_edge_insertions infrastructure. + (compute_branch_probabilities): Remove arguments; rewrite for + CFG infrastructure; use rtl_dump_file directly. + (branch_prob, find_spanning_tree): Likewise. + (union_groups, find_group): New. + (init_branch_prob): Make bbg_file_name and da_file_name local. + (end_branch_prob): Use rtl_dump_file directly. + (init_edge_profiler): Rename to edge from arc. + (output_arc_profiler): Kill. + (gen_edge_profiler): New. + (output_func_start_profiler): Turn off profiling. Make the + constructor static when we can. + * rtl.h (branch_prob, end_branch_prob): Update prototypes. + + * toplev.c (DFI_flow): Remove. + (DFI_cfg, DFI_life): New. + (dump_file): Update accordingly. + (compile_file): Call end_branch_prob if profile_arc_flag too. + (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge + profiling after the CFG is built. Move flow1 life analysis to + DFI_life. Always estimate remaining probabilities. + +2000-05-19 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. + + * flow.c (make_edges): The sibling call edge to exit is abnormal. + +2000-05-19 Richard Henderson <rth@cygnus.com> + + * jump.c (redirect_jump): Add delete_unused argument. Don't + remove labels and code following when LABEL_NUSES goes to zero. + (invert_jump): Likewise. + (jump_optimize_1): Fix redirect/invert arguments. + (do_cross_jump, thread_jumps): Likewise. + * flow.c (split_edge): Likewise. + * reorg.c (optimize_skip): Likewise. + (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise. + * profile.c (instrument_arcs): Likewise. + * loop.c (find_and_verify_loops): Likewise. Fix indentation. + * rtl.h: Update prototypes. + +Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com> + + * ssa.c (convert_from_ssa): Tell life_analysis we need death + notes. + (make_regs_equivalent_over_bad_edges): Only look at abnormal + critical edges. + +2000-05-19 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (funlike_macroexpand): Make sure not to walk p1 + past l1 when deleting whitespace and markers. + + * cpplex.c (_cpp_scan_until): Clear AUX field of tokens. + * cpplib.c (do_unassert): Put the list to compare against on + the stack. + +2000-05-19 Bruce Korb <bkorb@gnu.org> + + * fixinc/README: cleaned up old documentation + * fixinc/check.diff: regenerated & verified on OSR5 on ix86 + * fixinc/check.tpl: compute the list of needed directories + emit "#if defined(name)" because of conflict + omit machine name differences from output differences + * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function + (machine_name): change test text to use `sed' markers + * fixinc/fixincl.x: regen + +Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of + a CONSTRUCTOR. + +2000-05-18 Chris Demetriou <cgd@sibyte.com> + + * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update + it to match the current practice. + +2000-05-18 Mark Mitchell <mark@codesourcery.com> + + * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under. + +2000-05-18 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New. + * rtl.h (insn_dependant_p): Declare it. + * loop.c (strength_reduce): Use it. + +2000-05-18 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.c (expand_prologue, expand_epilogue): + 16-bit and 64-bit clean-up. + +2000-05-18 Mark Elbrecht <snowball3@bigfoot.com> + + * configure.in (*-pc-msdosdjgpp): Set float_format to none. + * configure: Rebuilt. + +2000-05-18 Zack Weinberg <zack@wolery.cumb.org> + + * genopinit.c: Use $ for escape sequences in optab patterns. + Remove backslashes from optab patterns. Change $A, $B, $C to + expand to (int) whatever instead of just whatever; remove + explicit (int) from all optab patterns. + + * gensupport.c (xmalloc, xrealloc, xstrdup): Provide. + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c, + genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, + genrecog.c: Remove private copies of xmalloc, xrealloc, and + xstrdup. + +2000-05-18 Richard Henderson <rth@cygnus.com> + + * jump.c (jump_optimize_1): Base minimum insn count during + find_cross_jump on BRANCH_COST. + +2000-05-18 Jakub Jelinek <jakub@redhat.com> + + * print-rtl.c (print_rtx): Only print note line number as string + if between NOTE_INSN_BIAS and NOTE_INSN_MAX. + * final.c (final_scan_insn): Do nothing for note line number 0. + +2000-05-18 Jakub Jelinek <jakub@redhat.com> + + * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE + from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from + NOTE_INSN_DELETED_LABEL. + +2000-05-18 Nick Clifton <nickc@cygnus.com> + + * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant, + uninitialised data in .rodata not .bss, and do not interpret an + error in the initialisation value as meaning that the variable + should be placed in the .bss section. + +Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be> + + * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o', + not `$ac_cv_prog_cc_cc_c_o'. + * configure: Regenerated. + +2000-05-18 Chris Demetriou <cgd@sibyte.com> + Richard Henderson <rth@cygnus.com> + + * c-common.h (enum c_tree_index): Add g77 type entries. + (g77_integer_type_node, g77_uinteger_type_node): New. + (g77_longint_type_node, g77_ulongint_type_node): New. + * c-decl.c (init_decl_processing): Initialize them. + +2000-05-18 Richard Henderson <rth@cygnus.com> + + * config/h8300/h8300.md (subs patterns): Use %G to negate. + + * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT. + (small_power_of_two): Likewise; use exact_log2. + (adds_subs_operand, one_insn_adds_subs_operand): Remove. + (output_adds_subs): Remove. + (two_insn_adds_subs_operand): New. + (split_adds_subs): New. + * config/h8300/h8300-protos.h: Update. + * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT. + (CONST_OK_FOR_L): Match strict adds operands. + (CONST_OK_FOR_N): Match struct subs operands. + * config/h8300/h8300.md (adds_subs insns): Remove. + (addhi patterns): Output adds/subs directly. + (addsi_h8300h): Likewise. + (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand. + +2000-05-18 Zack Weinberg <zack@wolery.cumb.org> + + * cppexp.c (parse_assertion): New. + (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case. + (_cpp_parse_expr): Remove case '#'. Don't set + parsing_if_directive. + * cpphash.c (collect_objlike_expansion, + collect_funlike_expansion, collect_params, + _cpp_create_definition): The list no longer has a trailing + VSPACE token. + * cpphash.h (enum node_type): Add T_ASSERTION. + (struct hashnode): Remove aschain, add pred. + (struct predicate): New. + Update prototypes. + + * cpplex.c (expand_token_space): Handle both offset and + nonoffset lists. + (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete. + (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist, + _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens, + _cpp_equiv_toklists): New. + (_cpp_scan_line): Rename to _cpp_scan_until; add ability to + stop at any single-character token, not just newline. + (_cpp_lex_token): Remove special cases for #define and #if. + (cpp_get_token): Expect # as a separate token type. Remove + DIRECTIVE case. + (_cpp_get_directive_token): Remove DIRECTIVE case. + (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update. + + * cpplib.c (_cpp_check_directive): Set dirno and + SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags. + (_cpp_handle_directive): Run # <number> through the same logic + as normal directives. + (do_define): Don't set parsing_define_directive. Use + _cpp_scan_until. The list does not have a VSPACE at the end. + (do_if): Save, clear, and restore only_seen_white around + _cpp_parse_expr. + (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/ + (do_assert, do_unassert): Rewrite. + + * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION. + (LIST_OFFSET): New flag. + (struct cpp_toklist): Replace dir_handler and dir_flags with + dirno and flags. + (struct cpp_reader): Remove parsing_if_directive and + parsing_define_directive. + +2000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/inclhack.def (broken_cabs): Update fix to handle comments + following the cabs decl which terminate on the following line. + Add the corresponding test_text case. + +2000-05-18 Neil Booth <NeilB@earthling.net> + + * cppinit.c (cpp_reader_init): Initialise col_adjust and + default tab stop size. + (no_num, OPT_ftabstop): New. + (handle_option): Handle "ftabstop=" command-line option. + (print_help): Document it. + * cpplex.c (COLUMN): Remove. + (handle_newline): Reset col_adjust. + (skip_whitespace): Update col_adjust as tabs encountered. + (_cpp_lex_line): Update to use col_adjust. Call + skip_whitespace for all whitespace. + * cpplib.h (struct cpp_options): New member tabstop. + (struct cpp_reader): New member col_adjust. + (CPP_BUF_COL): Update. + (CPP_BUF_COLUMN): New. + * cpp.texi: Document "-ftabstop=" command line option. + +Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be> + + * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT + files. + * configure: Rebuilt. + +Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c. + + * tree.c (build_common_tree_nodes): Do not build TI nodes unless + HOST_BITS_PER_WIDE_INT is >= 64. + +2000-05-17 Richard Henderson <rth@cygnus.com> + + * jump.c (jump_optimize_1): Remove inactive but real insns + in jump-to-next-insn optimization. + +2000-05-17 Richard Henderson <rth@cygnus.com> + + * toplev.c (rest_of_compilation): Don't call optimize_mode_switching + unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos. + Don't call recompute_reg_usage if no_new_pseudos is true. + * lcm.c (optimize_mode_switching): Move ifdefs outside function. + Return true if we did work; update global life information. + * basic-block.h (optimize_mode_switching): Update decl. + +2000-05-17 Neil Booth <neilb@earthling.net> + + * cpplex.c (expand_name_space): Don't use ptrdiff_t. + +2000-05-17 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c: New feature, #pragma system_header. + * cpp.texi: Document special treatment of system headers, and + the various mechanisms to get a header that special treatment. + +2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * system.h (offsetof): Define at the very end, to ensure we prefer + the platform's definition if available. + +2000-05-16 Bruce Korb <bkorb@gnu.org> + + * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE + * fixinc/server.c: likewise + * fixinc/fixfixes.c( char_macro_def_fix ): fix regex + + #ifdef debugging code + use #def constant for + sub-pattern count + * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping + on C++ math namespace + +2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): + Don't check the return value of sprintf. Use asprintf to avoid + buffer overflows. + +Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> + + * flags.h (warn_unused_function, warn_unused_label, + warn_unused_parameter, warn_unused_variable, warn_unused_value): + Replace ``warn_unused''. + (set_Wunused): Add declaration. + * toplev.c (set_Wunused): New function. + (warn_unused_function, warn_unused_label, warn_unused_parameter, + warn_unused_variable, warn_unused_value): New variables. + (W_options): Add -Wunused-function, -Wunused-function, + -Wunused-label, -Wunused-parameter, -Wunused-variable and + -Wunused-value. Delete -Wunused. Handled in decode_W_option. + + * toplev.c (decode_W_option): Update -Wunused flags by calling + set_Wunused. + * c-decl.c (c_decode_option): Ditto for -Wall. + + * stmt.c (expand_expr_stmt, expand_expr_stmt, + warn_about_unused_variables): Replace warn_unused with more + explicit warn_unused_value et.al. + * function.c (expand_function_end): Ditto. + * c-typeck.c (internal_build_compound_expr, + internal_build_compound_expr): Ditto. + * c-decl.c (poplevel, pop_label_level): Ditto. + * toplev.c (check_global_declarations): Replace warn_unused with + check for either warn_unused_function or warn_unused_variable. + + * gcc.1, invoke.texi (Warning Options): Document + -Wunused-function, -Wunused-function, -Wunused-label, + -Wunused-parameter, -Wunused-variable and -Wunused-value options. + +Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be> + + * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in + $(srcdir), not in the current directory. + +2000-05-16 Richard Henderson <rth@cygnus.com> + + * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the + assembler supports it. + (.fini, .init): Use a gp-relative indirect call. + (__do_global_dtors_aux): Preserve the gp; rebundle. + (__do_frame_setup): Likewise. + * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1. + (.init): Use a gp-relative indirect call. + (__do_global_ctors_aux): Preserve the gp. + +2000-05-16 Richard Henderson <rth@cygnus.com> + + * flow.c (commit_one_edge_insertion): Be prepared for a return + insn to be inserted on the edge with a normal jump. + * jump.c (jump_optimize_1): Don't look to create return isns. + + * flow.c (flow_delete_insn): Don't adjust reference count of notes. + * jump.c (jump_optimize_1): Likewise. + (returnjump_p): Verify the argument is a JUMP_INSN. + * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL. + +2000-05-16 Nick Clifton <nickc@cygnus.com> + + * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace + GET_RTX_CLASS (GET_CODE ()) == 'i'. + (large_insn_p): Ditto. + (m32r_is_insn): New function: Return true if the insn contains + an executable instruction. + (m32r_adjust_insn): Use m32r_is_insn. + (m32r_sched_reorder): Use m32r_is_insn. + (m32r_sched_variable_issue): Use m32r_is_insn. + +2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like + VAR_DECL. + + * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable. + + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux + according to given options. + +Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com) + + * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS + if X has VOIDmode either. + (LIMIT_RELOAD_CLASS): Similarly. + + * mn10200.md (indirect_jump, tablejump): Use "register_operand", + not "general_operand" to match the processor's capabilities. + +2000-05-16 Bruce Korb <bkorb@gnu.org> + + * fixinc/README: corrected return address + * fixinc/check.diff: regenerate, now that test works + * fixinc/fixfixes.c(format_fix,format_write): reformatted + (char_macro_def_fix,char_macro_use_fix): corrected and + rewrote to use regex to parse the text + * fixinc/inclhack.def: more testing + * fixinc/fixincl.x: regenerated + + * fixinc/inclhack.def: added several "test_text" attributes + changed several fixes to use `c_fix = format' + re-alphabetized the fixes + + * fixinc/check.diff: regenerate + * fixinc/fixincl.x: regenerate + * fixinc/check.tpl: added `sparc' and `netinet' to the list + of created dirs + + +2000-05-16 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove. + +2000-05-15 Richard Henderson <rth@cygnus.com> + + * toplev.c (rest_of_compilation): Run full jump pass before + find_basic_blocks of flow2. + +2000-05-15 Richard Henderson <rth@cygnus.com> + + * jump.c: Fix typos and clarify commentary from last change. + (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE. + (safe_to_remove_jump_p): Remove. + (condjump_label): Use pc_set. + +2000-05-15 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns + that get in the way after reload. + (cond_exec_process_if_block): Skip a label heading THEN block. + +2000-05-15 Richard Henderson <rth@cygnus.com> + + * varasm.c (output_constant_pool): Abort instead of converting + (improperly) deleted labels to zero. + +2000-05-16 Neil Booth <NeilB@earthling.net> + + * cpplex.c (parse_string2): Update comment. + (cpp_lex_line): No special assertion treatment for '('. + * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT. + * cpplib.h (SYNTAX_ASSERT): Remove. + +Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * jump.c (condjump_p): Mark as depreached. + (any_condump_p): New. + (any_uncondump_p): New. + (pc_set): New. + (safe_to_remove_jump_p): New. + * rtl.h (any_condump_p, any_uncondjump_p, pc_set + safe_to_remove_jump_p): Declare. + +Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c: Re-install both patches reverted by last patch. + (struct arg_data): New field tail_call_reg. + (initialize_argument_information): Initialize tail_call_reg + (load_register_parameters): New argument flags, use + tail_call_reg when emiting tail call sequence. + (expand_call): Update call of load_register_parameters; + copy unadjusted_args_size to adjusted_args_size. + +Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p + and bct_p parameters to flags. + * loop.h (LOOP_UNROLL, LOOP_BCT): New constants. + * rtl.h (loop_optimize): Update prototype. + * toplev.c (rest_of_compilation): Update call of loop_optimize. + +2000-05-15 Jakub Jelinek <jakub@redhat.com> + + * calls.c (expand_call): Move expand_start_target_temps call after + start_sequence(). + +2000-05-15 Neil Booth <NeilB@earthling.net> + + * cpphash.c (trad_stringify, warn_trad_stringify, + collect_params): Make some pointers pointers to const. + * cpplex.c (auto_expand_name_space) Guaranteed to always + expand by at least one character. + (SPELL_CHAR, SPELL_NONE): Temporarily reverse order. + (struct token_spelling): Use const U_CHAR * rather than PTR. + (expand_name_space): Fix up token pointers if name space + is moved when expanding. + (INIT_NAME, cpp_scan_line, parse_name, parse_number, + parse_string2, save_comment, spell_token, cpp_output_list): + Update so the routines handle tokens with a direct pointer to + their text, rather than an offset into the token's list's namebuf. + (_cpp_lex_line): Rearrange for clarity. + + * cpplib.c (_cpp_check_directive): Similarly. + (do_define): Make SYM a pointer to const. + * cpplib.h (struct cpp_name): Replace offset with direct pointer. + (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT. + (TOK_OFFSET): Delete. + (TOK_NAME): Update. + +2000-05-14 Geoffrey Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for + 64-bit ABI. + + * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE + into account. + (logical_u_operand): Delete. + (non_logical_cint_operand): Rewrite to take MODE into account. + (non_logical_u_cint_operand): Delete. + (boolean_operator): New function. + (print_operand): Add new %q operand. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator, + remove logical_u_operand and non_logical_u_cint_operand, + update logical_operand and non_logical_cint_operand. + * config/rs6000/rs6000.md: Rewrite the patterns for performing + logical operations to use %q. + + * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place. + (movdi): Make similar to movsi. + * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There + is no such thing as a DImode CONST_DOUBLE. + * config/rs6000/rs6000.c (output_toc): Likewise. + + * config/rs6000/rs6000.c (output_cbranch): Don't output prediction + codes when old mnemonics are in use. Print register names + for cc registers when requested. + + * optabs.c (expand_float): Don't allow mode widening that causes + double rounding. + + * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32 + flags to their current names -maix64 and -maix32. + +2000-05-14 Bruce Korb <bkorb@gnu.org> + + * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before + and/or after current text of file + * fixinc/fixlib.c(must_malloc): + * fixinc/fixlib.h(must_malloc): + reformatting + * fixinc/inclhack.def: replace the "1i" and "$a" sed commands + with usages of ``c_fix = wrap;'' + Add several tests and use the ``c_fix = format'' fixer more. + * fixinc/fixincl.x: regen + * fixinc/check.diff: regen + * fixinc/check.tpl: emit the associated header with the missing + test message + +Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com> + + * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset + variables $src and $dst. + +2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> + + * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro. + (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise. + (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise. + (struct output_buffer: emitted_prefix_p, prefixing_rule): New + fields. + (set_message_prefixing_rule): Declare. + + * diagnostic.c: (current_prefixing_rule): New variable. + (set_message_prefixing_rule): Define. + (output_set_prefix): Adjust buffer->emitted_prefix_p. + (init_output_buffer): Adjust Initialization. + (output_emit_prefix): Rewrite. Take prefixing rules into account. + +Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be> + + * ifcvt.c (if_convert): Do not free NULL. + +2000-05-12 H.J. Lu (hjl@gnu.org) + + * gthr-dce.h: Add support for libobjc. + * gthr-posix.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-vxworks.h: Likewise. + * gthr-single.h: Likewise. + * gthr-win32.h: Likewise. + +2000-05-12 Nick Clifton <nickc@cygnus.com> + + * config/fr30/fr30.c (fr30_move_double): New function: Emit code + to move a double word value. + (di_operand): New function: Return true if the operand is suitbale + for a double word move operation. + (nonimmediate_di_operand): New function: Return true if the + operand is a DImode register or MEM. + + * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and + nonimmediate_di_operand. + + * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and + nonimmediate_di_operand. + + * config/fr30/fr30.md (movdi): New pattern. Required because + other patterns generate DImode results. + (movdi_insn): New pattern. + +2000-05-12 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (struct shadow_summary): Define + bitfields as type unsigned int. + +Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/t-avr: Added definition of FLOAT while generates + fp-bit.c + + * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in + peepholes for tst+jump = sbrs/sbrc optimization. + +Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz> + + * expr.c (emit_push_insn): Do not adjust stack pointer when + preallocating. + +Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be> + + * ggc-simple.c (offsetof): Macro fallback definition moved from here .. + * system.h (offsetof): ... to here. + +2000-05-12 Richard Henderson <rth@cygnus.com> + + * Makefile.in (final.o): Depend on BASIC_BLOCK_H. + * final.c (final_end_function): Use app_disable. Rearrange note + handling into a switch. Emit deleted labels. + (output_asm_label): Generate label strings for deleted labels. + * flow.c (tail_recursion_label_list): New. + (find_basic_blocks_1): Set label_value_list directly. Collect list + of tail recursion labels from call_placeholders. Don't add deleted + labels to the label value list. + (cleanup_cfg): Use free_EXPR_LIST_list. + (flow_delete_insn_chain): Turn non-removable labels into notes. + (flow_delete_block): Don't disable deleting the block because of + a non-removable label. + (tail_recursion_label_p): New. + (merge_blocks_move_predecessor_nojumps): Don't disable the merge + because of a label. + (merge_blocks_move_successor_nojumps): Likewise. Also move a + jump table. + (merge_blocks): Disable a merge because of tail recursion labels. + * ifcvt.c (merge_if_block): Don't disable a merge because of a label. + Use a more accurate measure of not merging the join block. + (find_if_block): Don't disable conversion because of a label. + (find_if_case_1, find_if_case_2): Likewise. + * jump.c (duplicate_loop_exit_test): Preserve the kind of list + element when copying. + (squeeze_notes): Also leave EH notes. + (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for + REG_LABEL notes. + (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when + deleting a label. + * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for + NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref + referring to a deleted label. Convert tail handling to a switch. + * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE + for NOTE_INSN_DELETED_LABEL. + (NOTE): Fix commentary. + * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST. + (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise. + (CODE_LABEL_NUMBER, LABEL_NAME): Update index. + (LABEL_NUSES, LABEL_REFS): Likewise. + * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL. + +2000-05-12 Bruce Korb <bkorb@gnu.org> + + * fixinc/fixfixes.c(format_write): buglet & relaxed rules + * fixinc/check.diff: updated + * fixinc/inclhack.def: corrected & added some test_text-s + * fixinc/genfixes: removed unneeded options to autogen invocation + * fixinc/fixincl.tpl: Specified the output file + * fixinc/fixfixes.c: visual appearance + * fixinc/fixincl.x: regenerate + +2000-05-12 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix, + CTRL_defn_fix): Delete. + (fix_char_macro_defines, fix_char_macro_uses): Rename to + char_macro_def_fix and char_macro_use_fix, respectively. Put + them into the FIXUP_TABLE. Get the string to search for from + a c_fix_arg. + + (format_write): New function. + (format_fix): Use it. + + (FIX_PROC_HEAD): Constify text parameter. + (machine_name_fix): Constify all char *s. + * fixtests.c (skip_quote): Remove double static. + + * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes, + ctrl_use_quotes): Update for new scheme. + * fixincl.x: Regenerate. + +2000-05-12 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as + DWARF2_DEBUG. + (DWARF2_ASM_LINE_DEBUG_INFO): Define. + (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + +2000-05-11 Robert Lipe <robertlipe@usa.net> + + * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO. + * fixincl.x: Regenerate. + +2000-05-11 Richard Henderson <rth@cygnus.com> + + * calls.c: Revert both 05-09 patches. + +2000-05-11 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.c (print_operand): Print FP constants in + hexadecimal. + * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint + for FP values. + + * mklibgcc.in (EQ): Define it to an equal sign in the Makefile, + and replace any occurrences of `=' in multilib dirs with `$(EQ)'. + +2000-05-11 Jason Merrill <jason@casey.cygnus.com> + + * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine. + +2000-05-11 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary. + +Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration. + * config/avr/avr.c (jump_over_one_insn_p): New function. + * config/avr/avr.md: New peepholes added. Output test and + conditional jump to "sbrc" or "sbrs" command. + +2000-05-11 Mark Elbrecht <snowball3@bigfoot.com> + + * cppmain.c (main): Use IS_DIR_SEPARATOR. + +2000-05-11 Jakub Jelinek <jakub@redhat.com> + + * except.c (find_exception_handler_labels_1): New function. + (find_exception_handler_labels): Split into two functions, dive + into CALL_PLACEHOLDERs when looking for exception handler labels. + +2000-05-11 Stan Cox <scox@cygnus.com> + + * regrename.c (replace_reg_in_block): Improve REG_DEAD handling. + * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2. + * toplev.c (rest_of_compilation): Call regrename_optimize before sched2. + +2000-05-11 Bruce Korb <bkorb@gnu.org> + + * fixinc/fixfixes.c (double_slash_fix): obsolete + (else_endif_label_fix): obsolete + (format_fix): new, unused as yet + (main): obsolete + * fixinc/fixlib.h: added fix description struct for use by format_fix + * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using + * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate + modules. Removed the vestiges of the script version. + Added support for "make check". + * fixinc/check.diff: base diff file (needs work!!) + * fixinc/check.tpl: quiet the fixup output + * fixinc/fixtests.c (main): obsolete + * fixinc/fixincl.sh: don't bother copying fixincl to .. + * fixinc/fixincl.tpl: provide for arguments to c_fix routines + +Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * toplev.c (rest_of_compilation): Remove dead code after + combine. + +2000-05-11 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (collect_funlike_expansion): Make "# is not + followed by a macro argument name" a pedwarn, not an error. + Preserve the # in the output. Suppress the warning if lang_asm. + +Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa*64*-*-hpux11*): New target for PA64 support. + * configure: Rebuilt. + +2000-05-10 Laurynas Biveinis <lauras@softhome.net> + + * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace. + +2000-05-10 Kazu Hirata <kazu@hxi.com> + + * combine.c (try_combine): Fix a typo. + +Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.md (insv): Add comment. + +2000-05-10 Richard Henderson <rth@cygnus.com> + + * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT. + * mklibgcc.in: Rewrite to not use functions. Don't shortcut + dependancies on FPBIT and DPBIT. + +2000-05-10 Nick Clifton <nickc@redhat.com> + + * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth + when optimising for size. + (mark_used_regs:) Ditto. + (try_pre_increment_1): Ditto. + +2000-05-10 Zack Weinberg <zack@wolery.cumb.org> + + * cppexp.c (lex): Use %.*s to print non-NUL-terminated string. + Make error message friendlier. + + * cpphash.h (struct hashnode): Use struct hack for name + member. + * cpphash.c (struct hashdummy): New. + (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE. + (make_HASHNODE): No need to set ->name pointer. Correct + setting of p. + (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit. + +2000-05-10 Richard Henderson <rth@cygnus.com> + + * flow.c (find_basic_blocks_1): Remove any spare bb_note + after completion. + +2000-05-10 Bruce Korb <bkorb@gnu.org> + + * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static + +2000-05-10 Eric Schweitz <schweitz@nortelnetworks.com> + + * dwarfout.c (dwarfout_finish): Call retry_incomplete_types + after we enter .debug. + +2000-05-10 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the + abstract instance of a nested inline function. + + * stor-layout.c (finish_record_layout): finalize_type_size + before laying out the pending_statics. + +Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net> + + * cpplex.c (spell_token): New function. + (spell_string, spell_comment, spell_name): fold into + spell_token. + (I, S): Add macros. + (E, H): Remove macros. + (save_comment): Save comment opening characters too. + (_cpp_lex_file): Update to use spell_token. Tidy up comment + handling. + * cpplib.h (I, S): Add macros. + (E, H): Remove macros. + (TTYPE_TABLE): Update entries for new speller. + (SYNTAX_ASSERT): Remove. + +Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net> + + * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag + when removing escaped newlines. Reverse sense of test for + escaped newline. + +2000-05-09 Richard Henderson <rth@cygnus.com> + + * flow.c (find_basic_blocks_1): Do not delete the first + bb_note we run across. + (create_basic_block): Use reorder_insns to move an existing + bb_note to the correct place. + +2000-05-09 Richard Henderson <rth@cygnus.com> + + * calls.c (expand_call): Increment currently_expanding_call + before calling optimize_tail_recursion. + +Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * reload1.c (reload_combine): Fix errors in last change. + +2000-05-09 Zack Weinberg <zack@wolery.cumb.org> + + * gcc.c (used_arg): Skip over a semicolon at the end of the + split-up loop; don't break out of it. + + * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. + (tree.o): Depend on output.h. + + * c-decl.c (pending_invalid_xref_file, + current_function_prototype_file): Constify. + (pushdecl): Constify a local char *. + (define_label): Constify filename parameter. + * c-lex.c (init_parse): Constify parameter and return value. + * c-typeck.c (c_expand_asm_operands): Constify filename parameter. + * c-tree.h: Update prototypes. + * c-parse.in: Constify filename member of %union, and if_stmt_file. + * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, + objc/objc-parse.c: Regenerate. + + * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. + * dwarfout.h: Update prototypes. + * expr.c (expand_expr): Constify a local char *. + * flags.h: Constify main_input_filename. + * function.c (expand_function_end): Constify filename parameter. + * genrecog.c (make_insn_sequence): Use a character array for + c_test_pos. + (main): Remove unused variables. + * input.h: Constify input_filename, main_input_filename, and + file_stack.name. Update prototypes. + * output.h: Declare first_global_object_name and + weak_global_object_name here, as const char *. + * stmt.c (expand_asm_operands): Constify filename parameter. + * toplev.c (compile_file, push_srcloc, debug_start_source_file): + Constify filename parameter. + (input_filename, main_input_filename): Constify. + * toplev.h: Update prototypes. + * tree.c: Include output.h. Don't declare + first_global_object_name or weak_global_object_name. Clean up string + bashing in get_file_function_name_long. + * tree.h (struct tree_decl): Constify filename member. + (input_filename): Constify. + Update prototypes. + * varasm.c (first_global_object_name, weak_global_object_name): + Constify. + (assemble_start_function, assemble_variable): Clean up string bashing. + + * gcc.c: Constify all spec-related strings initialized, + transitively, from string constants. Constify all strings + and string variables related to multilibs. + (set_spec, read_specs): Cast argument to free to PTR. + (used_arg): Do not modify multilib_matches. Use strncmp plus + length comparison to compare multilib switches. + * genmultilib: Constify everything declared in multilib.h. + +Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru> + + * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn + as deleted. + +Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr-protos.h (extra_constraint): change a type of + second argument from char to int to avoid warnings. + (asm_output_byte): Likewise. + + * config/avr/avr.c (MAX_LD_OFFSET) New macro. + (initial_elimination_offset): Handle elimination from + FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM. + (legitimate_address_p): Use MAX_LD_OFFSET. + (legitimize_address): Likewise. + (out_movqi_r_mr): Likewise. + (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'. + (out_movsi_r_mr): Use MAX_LD_OFFSET. + (out_movsi_mr_r): Likewise. + (out_movqi_mr_r): Likewise. + (out_movhi_mr_r): Likewise. + (notice_update_cc): Correct CC for the ashrqi3 with the shift + count as CONST_INT != 6. + (ashlqi3_out): Coding style modifications. Run `fatal_insn' if + shift count is a CONSTANT_P, but not a CONST_INT. + (ashlhi3_out): Coding style modifications. + (ashlsi3_out): Likewise. + (ashrhi3_out): Likewise. + (ashrsi3_out): Likewise. + (lshrhi3_out): Likewise. + (lshrsi3_out): Likewise. + (ashrqi3_out): Generate shift for any known constant count without + scratch register. Run `fatal_insn' if shift count is a CONSTANT_P, + but not a CONST_INT. + (lshrqi3_out): Coding style modifications. Run `fatal_insn' if + shift count is a CONSTANT_P, but not a CONST_INT. + (extra_constraint): change a type of + second argument from char to int to avoid warnings. + (asm_output_byte): Likewise. + (asm_file_end): Output size generated commands count as a hex + number too. + + * config/avr/avr.h (RETURN_ADDR_RTX): New macro. + + * config/avr/avr.md (addhi3): Fragment commented by &&0 is + removed. + (ashlqi3): Values of "length" attribute changed. Shift count + uses constraints 'n' instead of 'i'. + (ashrqi3): Likewise. Values of "cc" attribute changed. Generate + shifts without clobber register. + (lshrqi3): Shift count uses constraints 'n' instead of 'i'. + (call_insn): Correct test for which_alternative == 1 (was 0). + (call_value_insn): Likewise. + + * config/avr/t-avr: Remove definition of FLOAT while generates + fp-bit.c + +2000-05-09 Bruce Korb <bkorb@gnu.org> + + * fixinc/check.tpl: Template for checking fixes + * fixinc/inclhack.def: Added 'test_text' for many fixes + disable hpux8_bogus_inlines on SCO + * fixinc/fixinc.sco: Oh, yes, we don't need this any more. + +Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (expand_call): Reorganize somewhat in order + to avoid unnecesary recalculation inside loop and make + tail call failure code cleaner. + +Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * alias.c (nonlocal_reference_p): Minor reformatting. + * reload.c (find_equiv_reg): Simplify logic for + CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and + some some reformatting. + * reload1.c (reload_combine): Don't assume everything in + CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit. + +2000-05-08 Richard Henderson <rth@cygnus.com> + + * final.c (current_insn_predicate): New. + (final_scan_insn): Set it. + * output.h (current_insn_predicate): Declare. + + * ifcvt.c (cond_exec_process_insns): New argument prob_val. + Attach it to call insns. + (cond_exec_process_if_block): Track probability for true and + false branches. + (dead_or_predicable): Likewise. + + * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New. + (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. + (PROB_VERY_LIKELY, PROB_ALWAYS): New. + (estimate_probability, expected_value_to_br_prob): Use them. + + * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare. + * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'. + (ia64_expand_prediction): New. + (emit_insn_group_barriers): Don't look at notes. Emit barriers + as needed after calls. + (ia64_epilogue_uses): Mark b0 used. + * config/ia64/ia64.md (beq_true, beq_false): Remove. + (bne_true, bne_false): Remove. + (eq_return, eq_not_return, ne_return, ne_not_return): Remove. + (br_true, br_false): New. Use predicate_operator and + ia64_expand_prediction. + (return_true, return_false): Likewise. + (call_internal): Use ia64_expand_prediction. Don't emit stop bit. + (call_internal1, call_value_internal): Likewise. + (call_value_internal1, call_multiple_values_internal1): Likewise. + + * config/ia64/ia64.c (ia64_direct_return): Require frame size zero. + + * config/ia64/ia64.md (extendsfdf2): Split only after reload. + +2000-05-08 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (may_trap_p): Consider old-style and volatile + asms to trap. + +Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count. + +2000-05-08 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.h (predicate_operator): Declare. + + * config/ia64/ia64.md (extendsfdf2): Split the nop case out + of existance. + + * gensupport.c (process_rtx): Copy and post-process each member + of the define_insn rtvec individually. + +Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net> + + * cpplex.c (spell_token): New function. + (TOKEN_LEN): Add 1 for whitespace. + (_cpp_lex_file): Update to use spell_token. + * cpplib.h (E): Remove. + (TTYPE_TABLE): Update CPP_VSPACE entry. + +2000-05-08 Richard Henderson <rth@cygnus.com> + + * flow.c (init_propagate_block_info): Watch out for conditional + branch to next instruction, and thus one outgoing edge. + + * config/ia64/ia64.c (ia64_encode_section_info): Exit early + for global register variables; don't special case __[CD]TOR_LIST__; + mind ggc_p for string allocation. + +2000-05-08 Nick Clifton <nickc@cygnus.com> + + * config/i386/i386.h (ELIMINABLE_REGS): Fix comment. + +2000-05-08 Bruce Korb <bkorb@gnu.org> + + * fixinc/mkfixinc.sh: fixinc.sco is no longer used + i?86-*-msdosdjgpp* no longer uses fixincludes + * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated + * fixinc/inclhack.sh: deleted + * fixinc/hackshell.tpl: deleted + * fixinc/inclhack.tpl: deleted + * fixinc/Makefile.in: Remove dependencies on above + * fixinc/fixincl.sh: "DO NOT EDIT" text modified + +2000-05-08 Andreas Jaeger <aj@suse.de> + + * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor + support. + +2000-05-07 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed + substitutions. + +Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net> + + * cpplex.c: Move new lexer definitions and prototypes + to top. Conditional include these and the code if + NEW_LEXER is defined. Rename functions whose names + clash if this code included. + +Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com) + + * rtl.def (COND_EXEC): Clarify. + + * i386.md (extendsidi2): Clobber (reg:CC 17) in the + same fashion as zero_extendsidi2. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.c (predicate_operator): New. + (ia64_print_operand): Handle 'J'. + (rtx_needs_barrier): Handle COND_EXEC. + * config/ia64/ia64.h (BRANCH_COST): Define. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md: Docuement used unspec values. + (attr predicable): New. + (movxf, movxf_internal): New. + (extendsfdf2): Don't comment out nop. + (floatdidf2): Remove. + (truncxfsf2, truncxfdf2, floatdixf2): New. + (abssi2, absdi2): Put the neg in the "true" slot. + (conditional branch instructions): Mark not predicable. + (cmov*_internal): Use predicate_operator. Split to cond_exec. + (abs*_internal): Likewise. + (alloc, set_bsp): Mark not predicable. + (barrier, insn_group_barrier, flush_cache): Likewise. + (define_cond_exec): New. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * c-decl.c: Include "tm_p.h". + + * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness. + (fetchadd_operand, ia64_expand_fetch_and_op): Declare. + (ia64_expand_op_and_fetch): Declare. + * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace. + (setjmp_operand): Constify variables for XSTR. + (ia64_encode_section_info): Likewise. + (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed + values to int. + (ia64_asm_output_external): Constify name. + (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size. + (process_for_unwind_directive): Provide switch default. + (ia64_expand_compare_and_swap): Remove unused variables. + (ia64_expand_builtin): Likewise. + * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int + for printing. + + * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args. + (symbolic_operand, function_operand, setjmp_operand): Likewise. + (shift_count_operand, shift_32bit_count_operand): Likewise. + (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise. + (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise. + (ia64_function_arg_partial_nregs, ia64_function_value): Likewise. + (ia64_print_operand_address, ia64_secondary_reload_class): Likewise. + (ia64_expand_builtin): Likewise. + (call_multiple_values_operation): Make dest_regno unsigned. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * rtl.def (DEFINE_COND_EXEC): New. + * md.texi: Document it. + + * gensupport.c (input_file): Remove. + (struct queue_elem): Add lineno. + (rtx_ready_queue): Remove. + (errors): New. + (predicable_default): New. + (predicable_true, predicable_false): New. + (define_attr_queue, define_attr_tail): New. + (define_insn_queue, define_insn_tail): New. + (define_cond_exec_queue, define_cond_exec_tail): New. + (other_queue, other_tail): New. + (queue_pattern): New. + (process_rtx): Add patterns to the appropriate queues. + (is_predicable, identify_predicable_attribute): New. + (n_alternatives, collect_insn_data): New. + (alter_predicate_for_insn, alter_test_for_insn): New. + (shift_output_template, alter_output_for_insn): New. + (process_one_cond_exec, process_define_cond_exec): New. + (init_md_reader): Read the entire file. Process define_cond_exec. + (read_md_rtx): Return elements from the queues. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_set_1): Don't update conditional life info + if the register is not_dead. + +2000-05-06 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h. + (mostlyclean): Also delete fixincl, fixinc.sh, and + specs.ready, and make clean in the fixinc subdir. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * Makefile.in (gensupport.o): Compile for the host. + (host-prefix gensuuprt.o): Remove. + (genflags.o): Depend on gensupport.h and OBSTACK_H. + (genattrtab.o): Likewise. + (gencodes.o): Depend on gensupport.h. + (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise. + (genpeep.o, genattr.o, genoutput.o): Likewise. + + * gensupport.c (obstack, rtl_obstack): New. + (init_md_reader): Initialize rtl_obstack. + * gensupport.h (rtl_obstack): Declare. + (message_with_line): Declare. + + * genattr.c: Remove all traces of obstack manipulation. + * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. + * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. + + * genattrtab.c (obstack, rtl_obstack): Remove. + (main): Don't init rtl_obstack. + * genflags.c: Likewise. + + * genrecog.c (message_with_line): Move ... + * gensupport.c: ... here. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * c-typeck.c (build_c_cast): Remove dead code. + +2000-05-06 Richard Henderson <rth@cygnus.com> + + * flow.c (split_edge): Don't allocate global_live_at_start for + the new block unless the old blocks had them as well. + + * flow.c (mark_set_1): Respect not_dead when updating reg_live. + + * ifcvt.c (noce_process_if_block): Don't use an insn_b from + test_bb if a or b uses x. + +2000-05-06 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.h: Remove conditional #define of __extension__. + * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2, + RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros + (ENABLE_RTL_CHECKING only). + * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK, + CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros + (ENABLE_TREE_CHECKING only). + * varray.h: Add __extension__ to VARRAY_CHECK macro + (ENABLE_CHECKING only). + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + Use new tail-calling mechanism on ARM. + * arm.md (sibcall, sibcall_value): New expands. + (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns. + (tailcalling peepholes): Delete. + (push_multi): Simplify. + * arm.c (lr_save_eliminated): Delete definition. + (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete. + (output_return_instruction): Remove checks on lr_save_eliminated. + (output_arm_prologue): Remove old tail-calling code. + (arm_output_epilogue): New parameter, really_return. All callers + changed. Handle tail-calling epilogues. + * arm.h (lr_save_eliminated): Delete declaration. + (frame_pointer_needed): Delete declaration. + * arm-protos.h (arm_output_epilogue): Adjust prototype. + + * arm.md (is_thumb): Examine symbol thumb_code, not expression + TARGET_ARM. + * arm.c (thumb_code): Define it. + (arm_override_options): Set it. + * arm.h (thumb_code): Declare it. + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify. + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add + bogus clobber to insns. + (load_multiple_operation, store_mulitple_operation): Don't check + for it. + * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly. + + * arm.md (and_scc, ior_scc): Add missing mode. + + * arm.md (call_value_symbol): Remove predicate from op2. + + * arm.h (SPECIAL_MODE_PREDICATES): Define. + +Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (get_subtarget): New function. + (force_operand, expand_expr, do_store_flag): Use it. + + * toplev.c (compile_file): Don't take strlen of NAME if null. + +2000-05-06 David Edelsohn <edelsohn@gnu.org> + + * xcoffout.c (xcoff_current_include_file, + xcoff_current_function_file, xcoff_lastfile): Constify char *. + (xcoffout_source_file, xcoffout_source_line): Make filename 'const + char *'. + (xcoffout_declare_function): Make name 'const char *'. + (xcoffout_end_epilogue): Make fname 'const char *' + * xcoffout.h (xcoff_current_include_file, xcoff_lastfile, + xcoffout_declare_function, xcoffout_source_line): Match above. + + * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without + -maix64 is error. + * rs6000.c (print_operand): Fix lossage typo. + (output_cbranch): Remove "cr" decoration for now. + * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. + +Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by + constant count. + +2000-05-05 Bruce Korb <bkorb@gnu.org> + + * fixinc/genfixes: Improve the matching for make target names + +2000-05-05 Catherine Moore <clm@cygnus.com> + + * c-common.c (decl_attributes): For TYPE_DECLs attach the + attribute to the decl. + * c-decl.c (pushdecl): Propagate the USED attribute to the + type copy. + +2000-05-05 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the + same way emit_group_load does. + +2000-05-05 Mark Elbrecht <snowball3@bigfoot.com> + + * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name. + + * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR. + (main): Likewise. + +2000-05-05 Rodney Brown <RodneyBrown@mynd.com> + + * pa.h (FUNCTION_ARG_ADVANCE): Warning removal. + +Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org> + + * config/openbsd.h (LINK_SPEC): pass correct flags to ld + to support -shared, on platforms with dynamic libraries. + +Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be> + + * system.h (S_ISBLK): Provide fallback definition. + +2000-05-05 Geoff Berry <geoffb@bops.com> + + * extend.texi (Extended Asm): Document inability to give asm + statements access to condition codes. + +2000-05-05 Marek Michalkiewicz <marekm@linux.org.pl> + + * varasm.c (asm_emit_uninitialised): Use 0, not NULL + as arg 2 of UNIQUE_SECTION. + +Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com) + + * predict.c: Remove May 4 change. + * bb-reorder.c (make_reorder_chain): Do not perform block movement + if we have predicted the branch at 50-50 probability. + +2000-05-05 Richard Henderson <rth@cygnus.com> + + * flow.c (init_propagate_block_info): Fix merge error + in HAVE_conditional_execution code. + +Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal + shift cycle for unknown shift count. Also generates dec + brpl. + (ashlqi3_out): Don't generate dec + brpl which now generates by + `out_shift_with_cnt'. + (ashlhi3_out): Likewise. + (ashlsi3_out): Likewise. + (ashrqi3_out): Likewise. + (ashrhi3_out): Likewise. + (ashrsi3_out): Likewise. + (lshrqi3_out): Likewise. + (lshrhi3_out): Likewise. + (lshrsi3_out): Likewise. + +2000-05-04 Mark Elbrecht <snowball3@bigfoot.com> + + * gcc.c (free_split_directories): Correct typo in explanation + of make_relative_prefix. + +2000-05-04 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point + comparison codes to branch_comparison_operator. + +2000-05-04 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (noce_process_if_block): Always reset X in the A == B case. + +2000-05-04 Richard Henderson <rth@cygnus.com> + + * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi. + (DPBIT_FUNCS): Remove _sf_to_usi. + (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk. + + * ifcvt.c (noce_process_if_block): Fail if A or B modified + between condition and jump. + + * libgcc2.c (near eh_context_specific): Comment #endif string. + * longlong.h: Don't use strings with embedded newlines. + +2000-05-04 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000-protos.h: Add output_cbranch. + * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete. + (print_operand): Delete %t and %T codes. + (output_cbranch): New function. Support branch prediction. + * config/rs6000/rs6000.md: Use output_cbranch for + conditional branches and returns. + +2000-05-04 Jason Merrill <jason@casey.cygnus.com> + + * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned. + * stor-layout.c (place_field): Likewise. + * integrate.h (struct inline_remap): Make regno_pointer_align unsigned. + * expr.c (store_expr): Make align unsigned. + * explow.c (plus_constant_wide): Make low words unsigned. + * expmed.c (choose_multiplier): Likewise. + * fold-const.c (fold): Likewise. + * tree.h (build_int_2): Likewise. + * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise. + * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*. + (init_emit): Change cast to unsigned char*. + * varasm.c (compare_constant_1): Add cast to char*. + * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*. + * reload1.c (reload): Likewise. + + * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0). + +Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com) + + * predict.c (estimate_probability): If no prediction was found, then + predict the successor that is the next physical block (if such a + successor exists). + +2000-05-04 Richard Henderson <rth@cygnus.com> + + * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place. + +2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H. + +2000-05-04 Mumit Khan <khan@xraylith.wisc.edu> + + * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move + attribute macros from here ... + (CPP_SPEC): to here. + * i386/mingw32.h (CPP_PREDEFINES): Likewise. + (CPP_SPEC): Likewise. + * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. + + * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule. + (libgcc.a): Pass LIB1ASMSRC to libgcc.mk. + +2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype. + + * diagnostic (vbuild_message_string, build_message_string, + build_location_prefix, output_get_prefix, init_output_buffer, + output_notice, vline_wrapper_message_with_location, + v_message_with_decl, default_print_error_function): De-constify. + (set_real_maximum_length): Prototype. + + * diagnostic.h (struct output_buffer, init_output_buffer, + output_get_prefix, output_set_prefix): De-constify. + + * function.c (init_function_start): Constify. + + * gensupport.c (remove_constraints, process_rtx): Prototype. + + * gthr-posix.h: Indent uses of #pragma. + + * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table): + Prototype. + + * predict.c (find_expected_value): Delete prototype. + (expected_value_to_br_prob): Initialize variable `ev_reg'. + + * sbitmap.h (debug_sbitmap): Prototype. + + * ssa.c (compute_coalesced_reg_partition): Prototype. + + * stor-layout.c (debug_rli): Prototype. + + * tree.h (round_down): Prototype. + (init_function_start): Constify. + +2000-05-04 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.h: #define __extension__ away if GCC_VERSION < 2095 + (overly conservative). Change extern inline wrappers to + static inline, define them always, use PARAMS properly. + * cpplex.c (_cpp_get_directive_token): Don't issue pedantic + whitespace warnings for \f and \v at the beginning of a line. + +Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_insns): Free the flow edge list when it + is no longer needed + +2000-05-04 Bruce Korb <bkorb@gnu.org> + + * fixincl/inclhack.def: added broken_cabs - + Remove `extern double cabs' declarations from math.h + * fixincl/inclhack.sh: regen + * fixincl/fixincl.x: regen + * fixincl/fixincl.c: Remove BOGOSITY code + * fixincl/mkfixinc.sh: Remove code for installing "shell" version + +Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and + MEM_ALIAS_SET. + * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET + when calling MEM_COPY_ATTRIBUTES. + * emit-rtl.c (operand_subword, change_address): Likewise. + * explow.c (stabilize): Likewise. + * expr.c (protect_from_queue, emit_move_insn_1): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P + when calling MEM_COPY_ATTRIBUTES. + (make_extraction, simplify_shift_const, gen_lowpart_for_combine): + Likewise. + * cse.c (gen_lowpart_if_possible): Likewise. + * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. + * optabs.c (gen_move_insn): Likewise. + * recog.c (validate_replace_rtx_1): Likewise. + * simplify-rtx.c (add_mem_for_addr): Likewise. + * stmt.c (expand_anon_union_decl): Likewise. + * config/arm/arm.md: Likewise. + * config/h8300/h7300.c (fix_bit_operand): Likewise. + * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise. + (block_move_no_loop, block_move_sequence): Likewise. + * config/rs6000/rs6000.c (expand_block_move_mem): Likewise. + * config/alpha/alpha.c (get_aligned_mem): Likewise. + Clear MEM_ALIAS_SET. + * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling + MEM_COPY_ATTRIBUTES. + +2000-05-03 Robert Lipe <robertlipe@usa.net> + + * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare + to suppress libgcc1. + (i[34567]86-*-sco3.2v5*) Likewise. + (i[34567]86-*-sco3.2v4*) Likewise. + (i[34567]86-*-sco) Likewise. + (i[34567]86-*-solaris2) Likewise. + (i[34567]86-*-sysv5*) Likewise. + (i[34567]86-*-sysv4*) Likewise. + (i[34567]86-*-udk*) Likewise. + (i[34567]86-*-sysv*) Likewise. + +2000-05-03 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.h (U): New define, to correct type of string constants. + (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper + routines, to do casts when passing unsigned strings to libc. + * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them. + + * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *. + * cpphash.c (_cpp_quote_string): Make string an U_CHAR *. + * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *. + * cpplex.c (parse_ifdef, parse_include, validate_else): Make + second argument an U_CHAR *. + + * cppinit.c (builtin_array): Make name and value U_CHAR *, add + length field, clean up initializer. + (ISTABLE): Add __extension__ to designated- + initializers version. + * cpplex.c (CHARTAB): Likewise. + + * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS + case so the file won't be empty. + +Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (struct reorder_block_def): Member succ removed. + (REORDER_BLOCK_SUCC): Removed. + (enum reorder_skip_type): Removed. + (skip_insns_between_block): Renamed to skip_insns_after_block. + Removed second argument. Removed dead code and cleaned up. + (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC. + (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed + second parameter to skip_insns_after_block. + +Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * tree.c (staticp, case LABEL_DECL): New case. + +2000-05-03 Richard Henderson <rth@cygnus.com> + + * Makefile.in (start.encap): Do not depend on LIBGCC1. + + * mklibgcc1.in: Fix typo last change. + +2000-05-03 Jason Merrill <jason@casey.cygnus.com> + + * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long. + (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional. + (GCC_CFLAGS): Use it. + (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS. + * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in, + objc/Make-lang.in: Use it. + +2000-05-03 Jason R Thorpe <thorpej@zembu.com> + + * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint. + +2000-05-03 Richard Henderson <rth@cygnus.com> + + * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate + LIBGCC1 empty with libgcc1.null. + +Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com> + + * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness + change. + +2000-05-03 Greg McGary <gkm@gnu.org> + + * tree.h (tree_common): Add bounded_flag member. Remove + inaccurate comment about number of remaining bits. + (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P, + BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, + MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, + TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, + TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros. + (TYPE_QUAL_BOUNDED): New constant. + (TYPE_QUALS): Handle bounded qualifier. + (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros. + (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, + TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, + TYPE_AMBIENT_BOUNDEDNESS): New macros. + (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants. + (tree_type): Add pointer_depth member. Remove + inaccurate comment about number of remaining bits. + (DECL_POINTER_DEPTH): Add macro. + (tree_decl): Add pointer_depth member. + +Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr-protos.h (test_hard_reg_class): Declared. + * config/avr/avr.c (ashrhi3_out): optimized shift by 15. + (lshrhi3_out): Likewise. + (ashrsi3_out): bugfix in shift by 8. + (test_hard_reg_class): New function. + * config/avr/avr.md: Bugfix inside conditions in peepholes. + (ashlhi3): removed define_expand of this pattern. + (*ashlhi3_insn): renamed to ashlhi3. + (ashlsi3): removed define_expand of this pattern. + (*ashlsi3_insn): renamed to ashlsi3. + (ashrqi3): removed define_expand of this pattern. + (*ashrqi3_insn): renamed to ashrqi3. + (ashrhi3): removed define_expand of this pattern. + (*ashrhi3_insn): renamed to ashrhi3. + (ashrsi3): removed define_expand of this pattern. + (*ashrsi3_insn): renamed to ashrsi3. + (lshrhi3): removed define_expand of this pattern. + (*lshrhi3_insn): renamed to lshrhi3. + (lshrsi3): removed define_expand of this pattern. + (*lshrsi3_insn): renamed to lshrsi3. + +2000-05-03 Rodney Brown <RodneyBrown@pmsc.com> + + * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with + inclusion of "system.h". + +Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.c (ia64_encode_section_info): Add check for + TREE_ASM_WRITTEN. + +2000-05-03 David Mosberger <davidm@hpl.hp.com> + + * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp + if -mauto-pic is on. + (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if + -mconstant-gp is in effect and function-descriptors are being used + to make indirect calls. + * config/ia64/ia64.h (MASK_CONST_GP): New macro. + (MASK_AUTO_PIC): Ditto. + (TARGET_CONST_GP): Ditto. + (TARGET_AUTO_PIC): Ditto. + (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options. + (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or + -mno-pic is in effect. + (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto. + * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if + -mauto-pic is in effect. + (gprel64_offset): New pattern. + (load_gprel64): Ditto. + (call): Handle -mauto-pic like -mno-pic (don't use fptr). If + -mconstant-gp is in effect, no need to preserve gp around direct + calls. + (call_value): Ditto. + * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define. + (FUNCTION_PROFILER): Define. + * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate + @fptr() directive when -mno-pic or -mauto-pic is in effect. + (ASM_OUTPUT_DESTRUCTOR): Ditto. + +2000-05-03 Richard Henderson <rth@cygnus.com> + + * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk. + (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets. + (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets. + (mklibgcc, libgcc.mk): New targets. + (libgcc.a): Use libgcc.mk. + (stmp-multilib): Likewise. + (stmp-multilib-sub): Remove. + (mostlyclean): Don't delete libgcc2 temp files. + * configure.in (AC_PROG_CC_C_O): Add. + (NO_MINUS_C_MINUS_O): Substitute it. + (all_outputs): Add mklibgcc. + * mklibgcc.in: New file. + +2000-05-03 Jason Merrill <jason@casey.cygnus.com> + + * cppexp.c (op_t): Make an int. + + * rtlanal.c (dead_or_set_regno_p): Remove unused variable. + + * varasm.c (initializer_constant_valid_p): Fix parenthesis. + + * gensupport.c (process_rtx): Fix macros used. + +2000-05-03 Richard Henderson <rth@cygnus.com> + + * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for + call-clobbered registers of a call. + +Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com> + + * gensupport.c: New file. + * gensupport.h: New file. + * Makefile.in (HOST_RTL): Depend on gensupport. + (gensupport.o) New rule. + * genattr.c: Use gensupport for reading .md files. + * genattrtab.c: Ditto. + * gencodes.c: Ditto. + * genconfig.c: Ditto. + * genemit.c: Ditto. + * genextract.c: Ditto. + * genflags.c: Ditto. + * genopinit.c: Ditto. + * genoutput.c: Ditto. + * genpeep.c: Ditto. + * genrecog.c: Ditto. + * rtl.def (define_insn_and_split): New DEF_RTL_EXPR. + * md.texi (Insn Splitting): Document define_insn_and_split. + +Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com> + + * flow.c (verify_flow_info): Added two more sanity checks. The + first checks that the blocks are numbered consecutively. The second + checks that n_basic_blocks is actually equal to the number of + basic blocks in the insn chain. + +2000-05-03 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h: Add accessor macros for token lists. + * cpplib.c, cpphash.c, cpplex.c: Use them. + +Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking + memory usage if not in a function. + * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only + return address if static. + +Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest + whether address may trap. + +Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder (chain_reorder_blocks): Changed code to test for + EDGE_FALLTHRU rather than making erroneous assumption that the + first outgoing edge is the fall-through edge. + +Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com> + + * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new + ABI for varargs, across all MIPS. This is incompatible because the + va_list (__builtin_va_list) structure is different, so a compilation + unit passing a va_list and a compilation unit being passed one, should + both be compiled with the same ABI. (The old structure had two + pointers, now it has three.) + +Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (struct reorder_block_def): Remove members end, + block_begin, and block_end. + (REORDER_BLOCK_OLD_END): Delete. + (REORDER_BLOCK_BEGIN): Delete. + (REORDER_BLOCK_END): Delete. + (chain_reorder_blocks): Remove dead code. + +Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (remove_scope_notes): Check for both types of scope + notes as the end of a basic block before deleting. + +2000-05-02 Mumit Khan <khan@xraylith.wisc.edu> + + * final.c (final_start_function): Fix spelling of "necessary". + +2000-05-02 Jason Merrill <jason@casey.cygnus.com> + + * toplev.c (debug_ignore_block): Return int. + * dwarf2out.c (dwarf2out_ignore_block): Likewise. + * toplev.h, dwarf2out.h: Adjust. + * emit-rtl.c (remove_unnecessary_notes): Test return value. + + * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary". + * toplev.c, final.c, rtl.h: Adjust. + +2000-05-02 Zack Weinberg <zack@wolery.cumb.org> + + * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro. + * configure.in: Look for makeinfo in the unified tree, then + for a system makeinfo which is sufficiently new. + * Makefile.in: If configure says makeinfo is too old, don't + build or install Info documentation. + +2000-05-02 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (collect_params): Fix off-by-one error. + (dump_hash_helper): Dump all four macro nodetypes. + +2000-05-02 Jakub Jelinek <jakub@redhat.com> + + * cpphash.c (trad_stringify): Adjust p after stringification as + well. + +2000-05-02 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (CPP_POP, parse_cleanup_t): Delete. + (cpp_buffer): Remove cleanup, seen_eof, manual_pop members. + + * cppfiles.c (file_cleanup): Delete. + * cpphash.c (macro_cleanup): Delete. + (collect_objlike_expansion, collect_funlike_expansion, + macarg, scan_arguments): Remove CPP_POP case. + + * cpplex.c (null_cleanup): Delete. + (cpp_pop_buffer): Do the work that was done in the cleanups + here. Call _cpp_unwind_if_stack from here. + (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput, + cpp_scan_buffer): Run until we see CPP_EOF and the top of + stack is the buffer _below_ the one we stacked. + (cpp_get_token): Always pop an exhausted buffer. Return + CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof. + * cpplib.c (skip_if_group): Don't call cpp_get_token to + increment the line number. + (_cpp_handle_eof): Rename to _cpp_unwind_if_stack. + + * fix-header.c (read_scan_file) [parsing getchar()]: Run until + we see CPP_EOF and the top of stack is the buffer _below_ the + one we stacked. + * scan-decls.c: Likewise. + +2000-05-02 Andrew Haley <aph@cygnus.com> + + * config/ia64/ia64.c (ia64_encode_section_info): Handle the case + where this function is called for the second time on a decl that + has had its section info changed in such a way as to move it out + of small data/bss. + * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition. + +2000-05-01 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before + the sequence we're moving, not to merge_bb->head. + +2000-05-01 Richard Henderson <rth@cygnus.com> + + * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove + reference to alpha/t-linux. + (alpha*-*-linux-gnu*): Likewise. + * configure: Rebuild. + + * calls.c (expand_call): Don't emit reg notes for a sibcall. + + * flow.c (calculate_global_regs_live): Skip for_each_successor_phi + if not in SSA form. + + * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING. + +2000-05-01 Jason Merrill <jason@casey.cygnus.com> + + * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and + TREE_THIS_VOLATILE. + +2000-05-01 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (noce_emit_cmove): Conditionally compile call to + emit_conditional_move. + +2000-05-01 Jakub Jelinek <jakub@redhat.com> + + * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1 + as the dynamic linker. + +2000-05-01 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (open_include_file): Open file in blocking mode. + (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore. + Only exclude block devices and directories. + + * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now + static. Allocate the hashnode and its string in the same + block of memory. + (del_HASHNODE): Don't free h->name. + (_cpp_lookup): If there is no entry for this string, create + one, of type T_VOID. + (_cpp_lookup_slot): Delete. + * cpphash.h: Update prototypes. + + * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID, + not hp == NULL. + * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert, + do_unassert, cpp_defined): Use _cpp_lookup. Don't create a + node here, just fill in the value field properly. "Delete" + entries by setting the value field to T_VOID. Check for + hp->type == T_VOID, not hp == NULL. + + * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H). + * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include + hashtab.h. + +2000-05-01 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.c (print_operand_address): Do not add + zero to SP. + + * config/mn10300/mn10300.c (expand_epilogue): If SP is to be + adjusted by less than 256 bytes, use ret regardless of having any + callee-saved register to restore. + +2000-05-01 Laurynas Biveinis <lauras@softhome.net> + + * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo. + +2000-05-01 Mark Elbrecht <snowball3@bigfoot.com> + + * config/i386/djgpp.h (INT_ASM_OP): Define. + (CPP_PREDEFINES): Rename MSDOS to __MSDOS__. + (ASM_WEAKEN_LABEL): Define. + (MASK_BNU210): Define. + (SUBTARGET_SWITCHES): Define. + (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define. + (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P, UNIQUE_SECTION): Define. + +2000-05-01 Mumit Khan <khan@xraylith.wisc.edu> + + * i386/cygwin.h (INT_ASM_OP): Define. + +Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (address_cost): renamed to avr_address_cost. + * config/avr/avr.h (ADDRESS_COST): use avr_address_cost. + +Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in + __tmp_reg__ and __zero_reg__ initialization. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * flow.c (propagate_one_insn): Mark sets even when the insn is dead. + + * ifcvt.c (noce_process_if_block): Fail the conversion if X is + referenced bewteen the condition and the jump. Don't delete + anything but the jump. + +Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (scope_def): New struct. + (scope_forest_info): New struct. + (struct reorder_block_def): New member "scope". + (REORDER_BLOCK_SCOPE): New macro. + (relate_bbs_with_scopes): New function and prototype. + (make_new_scope): Likewise. + (build_scope_forest): Likewise. + (remove_scope_notes): Likewise. + (insert_intra_1): Likewise. + (insert_intra_bb_scope_notes): Likewise. + (insert_inter_bb_scope_notes): Likewise. + (rebuild_scope_notes): Likewise. + (free_scope_forest_1): Likewise. + (free_scope_forest): Likewise. + (dump_scope_forest): Likewise. + (dump_scope_forest_1): Likewise. + (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block. + Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new + block. + (reorder_basic_blocks): Added calls to build_scope_scope_forest + and remove_scope_notes before reordering is done. Added calls to + rebuild_scope_notes, free_scope_forest, and reorder_blocks after + after reordering is done. + +2000-40-30 Bruce Korb <bkorb@gnu.org> + + * fixinc/inclhack.def: Added definitions needed by OSR5, + removed two stale entries (defined away with OLD_CPP). + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes + from the last insn in the sequence. + +2000-04-30 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (cpp_idcmp): New function. + * cpplib.h: Prototype it. + * scan_decls.c (scan_decls): Use it to inspect token names. + * fix-header.c (read_scan_file): Likewise. Set system_header_p on + the file being run through the preprocessor. + (check_macro_names): Provide length of token to cpp_defined. + + * Makefile.in: Remove stale warning message. + + * cppfiles.c (redundant_include_p): Provide length of token to + cpp_defined. + * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash + values are unsigned int. + (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length. + (_cpp_lookup_slot): Do not calculate the hash, either. + * cpphash.h: Update prototypes. + * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert): + Hashes are unsigned int. Calculate hash here, pass by value + to _cpp_lookup_slot. + +2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk> + + * simplify-rtx.c (check_value_useless): Delete function. + (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter + by hand. + (cselib_invalidate_regno): Likewise. + (cselib_invalidate_mem_1): Likewise. + (references_value_p): Recognize useless values by the fact that they + have no locations. + (discard_useless_values): Likewise. + (cselib_record_set): This may turn a useless value + into a useful one. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * config/d30v: New port. + + * configure.in (d30v-*): Set fp format. + * configure: Rebuild. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * ifcvt.c: New file. + * Makefile.in (OBJS): Add it. + (ifcvt.o): New target. + * jump.c (jump_optimize_1): Remove all code related to if-conversion, + and conditional arithmetic. + (find_insert_position): Remove. + * timevar.def (TV_IFCVT, TV_IFCVT2): New. + * toplev.c (DFI_ce, DFI_ce2): New. + (dump_file): Add ce and ce2 dumps. + (rest_of_compilation): Run if_convert a couple o times. Set + cse_not_expected after cse2. Don't set no_new_pseudos until + after sched1 or recompute_reg_usage. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * config/alpha/t-crtbe (crtbegin.o): Add "-I.". + (crtend.o, crtbeginS.o, crtendS.o): Likewise. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * flow.c (struct reg_cond_life_info): New. + (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg. + (init_propagate_block_info): Initialize them. + (free_propagate_block_info): Destruct them. + (mark_set_1): Consider conditional life before killing a register. + (mark_regno_cond_dead): New. + (free_reg_cond_life_info): New. + (flush_reg_cond_reg_1, flush_reg_cond_reg): New. + (ior_reg_cond, not_reg_cond, nand_reg_cond): New. + (mark_used_reg): Record conditional life. + + * haifa-sched.c (schedule_insns): Disable death counting + sanity check for HAVE_conditional_execution. + +2000-04-30 Richard Henderson <rth@cygnus.com> + + * Makefile.in (TIMEVAR_H): New. + (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it. + (timevar.h): Remove rule. + +2000-04-29 Richard Henderson <rth@cygnus.com> + + * config/alpha/crtend.asm: Use C comments instead of #. + * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden. + + * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL. + +2000-04-29 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.h (enum node_type: Take out T_MCONST. + (union hashval): Move into struct hashnode. + (struct hashnode): Pack tighter. Remove file, line, col + members. + * cpphash.c: Constify most of the macro-definition structures. + (struct definition): Replace by struct object_defn + and struct funct_defn. Put file, line, column information + here. All users updated to match. + (_cpp_create_definition, _cpp_macroexpand): Remove special + case for #define WORD OTHERWORD. + * cpplib.c (do_undef): Remove T_MCONST case. + + * cpphash.h: Move struct reflist, struct definition, and the + DEFINITION typedef to cpphash.c. Use 'struct definition *' in + union hashval. _cpp_free_definition takes a HASHNODE pointer. + * cpphash.c (_cpp_free_definition): Free data pointed to by + MCONST, XCONST, MACRO, and FMACRO nodes properly. + (_cpp_create_definition, del_HASHNODE): Just call + _cpp_free_definition to clear out a hashnode. + * cpplib.c (do_pragma_poison): Likewise. + +Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (FIRST_DATA_REGNUM, + LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM, + FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros. + (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM. + (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P, + REGNO_AM33_P): Redefine in terms of the new macros. + (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. + (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, + STRUCT_VALUE): Likewise. + (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, + ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved. + +Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * regmove.c (struct record_stack_memrefs_data): New. + (record_stack_memrefs): New function. + (combine_stack_adjustments_for_block): Use it. + +Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (calls_function_1): Propertly handle TREE_LIST expressions; + use special_function_p to detect alloca. + +Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org> + + * gcc.texi: Fixes for makeinfo 4.0 --html. + +2000-04-28 Zack Weinberg <zack@wolery.cumb.org> + + * pcp.h: Delete file. + +2000-04-28 Kazu Hirata <kazu@hxi.com> + + * h8300.c (function_epilogue): Clean up flags when the last insn + in a function is a barrier. + +2000-04-28 Chris Demetriou <cgd@sibyte.com> + + * configure.in (sparc-hal-solaris2*): protect [] glob from + my expansion. + (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines + rather than hard-coded constants in target_cpu_default2. + * configure: Regenerate. + +2000-04-28 Jason Merrill <jason@casey.cygnus.com> + + * tree.c (get_callee_fndecl): Extract the initial value from + a readonly decl. + +2000-04-28 Richard Henderson <rth@cygnus.com> + + * varasm.c (record_constant_1): Record the CODE_LABEL when + taking the address of a LABEL_REF. + +2000-04-28 Richard Henderson <rth@cygnus.com> + Jan Hubicka <jh@suse.cz> + + * calls.c (combine_pending_stack_adjustment_and_call): Return the + adjustment; don't do the stack adjust. + (expand_call): Call compute_argument_block_size right before + allocating the block; update comment; don't do alignment sanity + checking for sibling call; use args_size instead of + unadjusted_args_size before args_size is adjusted. Use + combine_pending_stack_adjustment_and_call to compute stack adjust + for must_preallocate case. + + * expr.c (push_block): Remove shadow `temp' in inner scope. + +2000-04-28 Jason Merrill <jason@casey.cygnus.com> + + * toplev.c (rest_of_compilation): Call + note_deferral_of_defined_inline_function even if the function + can't be inlined. + +2000-04-28 Scott Bambrough <scottb@netwinder.org> + + * cpplex.c (_cpp_scan_line): Fix buffer overwrite. + +2000-04-28 Richard Henderson <rth@cygnus.com> + + * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo. + +2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * timevar.c (init_timevar): DeANSIfy function definition. + +2000-04-27 Alex Samuel <samuel@codesourcery.com> + + * Makefile.in (timevar.o): Depend on flags.h. + * timevar.c (unused_stack_instances): New variable. + (timevar_push): Take a timevar_stack_def from + unused_stack_instances if available. + (timevar_pop): Push the popped timevar_stack_def onto + unused_stack_instances. + (TIMEVAR_ENABLE): New macro. + (timevar_def): Make standalone a 1-bit field. Add field used. + (get_time): Rename parameter to now. Return after clearing it if + not TIMEVAR_ENABLE. + (init_timevar): Do nothing if not TIMEVAR_ENABLE. + (timevar_pop): Likewise. + (timevar_stop): Likewise. + (timevar_push): Likewise. Mark the timing variable as used. + (timevar_start): Likewise. + (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print + timevars that were never used. + +2000-04-27 Mark Mitchell <mark@codesourcery.com> + + * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are + always TREE_READONLY. + +2000-04-27 Ulrich Drepper <drepper@cygnus.com> + + * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference + for call instruction with mode QImode. + +2000-04-27 Alex Samuel <samuel@codesourcery.com> + + * Makefile.in (OBJS): Add timevar.o. + (toplev.o): Depend on timevar.h. + (ggc-simple.o): Likewise. + (ggc-page.o): Likewise. + (timevar.o): New rule. + (timevar.h): New rule. + + * timevar.h: New file. + * timevar.c: Likewise. + * timevar.def: Likewise. + + * toplev.h (gc_time, parse_time, varconst_time): Remove. + * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR + throughout. + (TIMEVAR): Remove macro. + (gc_time, parse_time, varconst_time, integration_time, jump_time, + cse_time, gcse_time, loop_time, cse2_time, branch_prob_time, + flow_time, combine_time, regmove_time, sched_time, + local_alloc_time, global_alloc_time, flow2_time, peephole2_time, + sched2_time, dbr_sched_time, reorder_blocks_time, + rename_registers_time, shorten_branch_time, stack_reg_time, + to_ssa_time, from_ssa_time, final_time, symout_time, dump_time, + all_time): Remove. + (compile_file): Don't initialize time variables. Call + init_timevar and start TV_TOTAL timer. Call timevar_print instead + of many calls to print_time. + (rest_of_compilation): Add timing for reload_cse_regs. + (get_run_time): Removed to timevar.c. + (print_time): Likewise. + (get_run_time): Implement using TV_TOTAL time variable. + (print_time): Get total run time from get_run_time. + * ggc-page.c (ggc_collect): Push and pop TV_GC instead of + computing elapsed time explicitly. + * ggc-simple.c (ggc_collect): Likewise. + (gc_time): Remove declaration. + +2000-04-27 Mark Mitchell <mark@codesourcery.com> + + * calls.c (combine_pending_stack_adjustment_and_call): New function. + (expand_call): Use it. + +2000-04-27 Jan Hubicka <jh@suse.cz> + + * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT + fields. + +Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movhi): Simplify. Prefer data + registers. + +Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * function.c (epilogue_done): Pass whole insn to record_insns. + +Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * cse.c (CSE_ADDRESS_COST): Remove. + (find_best_addr): Add new parameter "MODE", use address_cost instead + of CSE_ADDRESS_COST + (address_cost): New. + (fold_rtx): Update call of find_best_addr. + * rtl.h (address_cost): Declare. + * loop.c (general_induction_var): Add new parameter "MODE", use + address_cost instead of ADDRESS_COST + (init_loop): Use address_cost instead of ADDRESS_COST. + (check_insn_for_givs): Update call of general_induction_var. + (find_mem_givs): Likewise. + (consec_sets_giv): Likewise. + * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost. + * i386.c (ix86_address_cost): New. + * i386-protos.h (ix86_address_cost): Declare. + +Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movqi): Simplify. Prefer data + registers. + +Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * expr.c (store_expr): Use clear_storage instead of direct memset + libcall. + +Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.c (mn10300_address_cost): Test + ASHIFT, AND and LABEL_REF. + +Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * invoke.texi (-foptimize-sibling-calls): Fix. + +Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (load_mems) Don't use hard registers for the hoisting. + + * unroll.c (unroll_loop): Avoid overflow in the n_iterations + calculation; rename const_equiv array in the preconditioning code + from loop_unroll to loop_unroll_precondition + +2000-04-27 Richard Henderson <rth@cygnus.com> + + * flow.c (struct propagate_block_info): Remove new_dead, new_live; + add new_set. + (propagate_one_insn): Clear it. Don't update reg_live here. + (init_propagate_block_info): Update for pbi member changes. + (free_propagate_block_info): Likewise. + (mark_set_1): Know that zero_extract, sign_extract, and + strict_low_part don't kill their argument. Alter hard subregs. + Update new_set for non-CLOBBER sets. Update reg_live. + (find_auto_inc): Update reg_live, not new_dead. + (mark_used_reg): Update reg_live, not new_live. Examine new_set + to determine if the reg in question was set this insn. Only update + reg info with PROP_REG_INFO. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (allocate_reg_life_data): Set max_regno here ... + (life_analysis): ... not here. + + * flow.c (calculate_global_regs_live): Force stack pointer + live at end. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * jump.c (redirect_exp_1): Rework from old redirect_exp. Never + commit change group changes. + (invert_exp_1): Similarly. + (redirect_exp, invert_exp): Use them. + (redirect_jump_1): New. + (invert_jump_1): New. + (jump_optimize_1): Remove code subsumed by condexec.c. + * rtl.h (invert_jump_1, redirect_jump_1): Declare. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (dead_or_set_regno_p): Use find_regno_note. + + * genconfig.c (main): Set all HAVE_foo to 1. + + * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array. + +2000-04-26 Alex Samuel <samuel@codesourcery.com> + + * invoke.texi: Document -fssa flag. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (count_reg_sets_1): Remove. + (count_reg_sets, count_reg_references): Remove. + (recompute_reg_usage): Implement with update_life_info. + Reallocate life data. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (update_life_info): Consider blocks null to mean the + universal set. + (calculate_global_regs_live): Likewise. + (life_analysis): Do that instead of collecting all_blocks. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (tidy_fallthru_edge): Don't delete the jump when it's + a still-valid conditional jump. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly. + + * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability. + * flow.c (calculate_loop_depth): Remove. + * output.h (calculate_loop_depth): Don't declare. + * toplev.c (rest_of_compilation): Expand calculate_loop_depth + inline; run estimate_probability at the same time. + +2000-04-26 Neil Booth <NeilB@earthling.net> + + * cpplib.h: "~=" is not a single pp-token. + * cpplex.c: Correct commentary. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_set_1): New arguments code and flags; update all + callers. Track regno_first and regno_last; do HARD_REGNO_NREGS + test in one place. Tidy flags tests. Don't bias REG_N_REFS by + loop_depth when optimizing for size. Do new_dead update after + emitting REG_UNUSED notes. Merge mark_set_reg code. + (mark_set_reg): Remove. + (propagate_one_insn): Use mark_set_1 for call-clobbered registers; + arrange to not emit REG_UNUSED notes. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN. + * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (propagate_one_insn): Break out from propagate_block. + (init_propagate_block_info): Likewise. + (free_propagate_block_info): Likewise. + (propagate_block): Use them. Export. + * basic-block.h: Declare them all. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * basic-block.h (life_analysis): Declare here ... + * output.h: ... not here. + * flow.c (life_analysis): Remove nregs parameter; replace + remove_dead_code with flags. Remove ssa dead code check. + Only init alias analysis if we'll use it. + * reg-stack.c (reg_to_stack): Update life_analysis arguments. + * ssa.c (convert_to_ssa): Likewise. + (convert_from_ssa): Likewise. + * toplev.c (rest_of_compilation): Likewise. + +2000-04-26 Richard Henderson <rth@cygnus.com> + + * flow.c (flow_delete_block): Rename from delete_block. Export. + * basic-block.h (flow_delete_block): Declare. + +2000-04-26 David S. Miller <davem@redhat.com> + + * optabs.c (emit_libcall_block): Verify insns with INSN_P before + taking a PATTERN of it. + +2000-04-26 <NeilB@earthling.net> + + * cpplex.c (spell_other, spell_char): Remove. + (SPELL_CHAR): New. + (token_spelling, trigraph_map): Use unsigned chars. + (_cpp_lex_line): Tidy up the switch statement. + * cpplib.h: Implement spell_char with spell_string. + (C): New. + +2000-04-26 <RodneyBrown@pmsc.com> + + * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal. + * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal. + +2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi, + reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa, + dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save, + dwarf2out_return_save, dwarf2out_return_reg, + dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename, + add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label, + gen_compile_unit_die, dwarf2out_init): Constify a char*. + + * dwarf2out.h (dwarf2out_init): Likewise. + + * dwarfout.c (filename_entry, primary_filename, last_filename, + type_tag, output_compile_unit_die, dwarfout_init): Likewise. + + * tree.h (dwarf2out_def_cfa, dwarf2out_window_save, + dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save, + dwarf2out_return_reg): Likewise. + +2000-04-26 Andreas Jaeger <aj@suse.de> + + * extend.texi (Function Attributes): Fix description of pure + attribute. + +2000-04-26 Jason Merrill <jason@casey.cygnus.com> + + * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT + before calling rest_of_compilation. + +2000-04-26 Andreas Jaeger <aj@suse.de> + + * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in + last patch. + +2000-04-25 Richard Henderson <rth@cygnus.com> + + * cse.c (cse_insn): Emit barrier after unconditional jump. + + * calls.c (expand_call): Disable tail call generation once + rtx_equal_function_value_matters is false. + + * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges + like EDGE_EH edges. + +2000-04-25 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR. + + * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs. + + * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE + is the primary DIE for a member function. + (gen_decl_die): Call set_decl_origin_self here. + * dwarfout.c (output_decl): And here. + * integrate.c (output_inline_function): Not here. + Don't clear DECL_INLINE until after calling rest_of_compilation. + (set_decl_origin_self): No longer static. + * tree.h: Add prototype. + * toplev.c (note_deferral_of_defined_inline_function): Only write + out abstract instance for actual inlines. + +2000-04-25 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return + EXTENDED_REGS only if TARGET_AM33. + * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing + SP_REGS to register allocation and reloading unless absolutely + necessary. + (movsi3): Remove special-case of adding non-constants to SP. + +2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires + INCLUDES to search and does not provide any of its own. Also it + now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED + parameters. Also it does not call AC_DEFINE. + (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls + AC_DEFINE and provides for automatic entries for autoheader. + (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test. + + * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS + so we can pass -I flags and include gansidecl.h/system.h in this + test. + + * acconfig.h: Delete all NEED_DECLARATION_* entries. + +2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, + ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, + ENABLE_GC_ALWAYS_COLLECT): Delete entries. + + * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, + ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, + ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE + for these macros. Clean up spacing and linewraps. + +2000-04-26 Jason Merrill <jason@casey.cygnus.com> + + * calls.c (expand_call): Use get_callee_fndecl. + + * print-tree.c (print_node): Print the chain of an _EXPR. + +Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com> + Jim Wilson <wilson@cygnus.com> + Andrew Haley <aph@cygnus.com> + + * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc + and gp save/restore problems. + * config/ia64/crtend.asm: Add IA-64 unwind support. + * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size + in fr_pad_size calculation. + (save_restore_insns): Move PR save area. Correct uses of + RTX_FRAME_RELATED_P. + (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P. + (ia64_expand_epilogue): Add eh_epilogue support. + (ia64_function_prologue): Emit .prologue directive. + (ia64_init_machine_status, ia64_mark_machine_status): New functions. + (ia64_override_options): Set init_machine_status and + mark_machine_status. + (rtx_needs_barrier): Handle bsp reads and writes. + (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved): + New static variables. + (process_set, process_for_unwind_directive): New functions. + * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT, + ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR, + ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New + macros. + (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section. + (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define. + (struct machine_function): Define. + * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns. + +2000-04-25 Bruce Korb <bkorb@gnu.org> + + * fixinc/Makefile.in: make the removal of old programs more + robust + * fixinc/mkfixinc.sh: use the two new targets in the Makefile: + install-bin and install-sh + +2000-04-25 Nick Clifton <nickc@cygnus.com> + + * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not + defined, define to return zero. + (function_cannot_inline_p): If a function has any target + specific attributes, then use the macro + FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide + whether it can be inlined. If it cannot, issue a suitable + explanation. + + * tm.texi: Add a new node 'Inlining' to document the new macro + FUNCTION_ATTRIBUTE_INLINABLE_P. + +2000-04-25 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix + commentary. + +2000-04-25 Neil Booth <NeilB@earthling.net> + + Restore previous patch, plus the following fixes: + + * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in + flags, not CPP_OPEN_PAREN. + * cpplex.c (expand_token_space, init_token_list, + cpp_free_token_list): Put the dummy token at list->tokens[-1]. + (_cpp_lex_line, _cpp_lex_file): token list is 0-based. + +Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * config/i386/freebsd.h (INT_ASM_OP): Define. + +Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (strength_reduce): Fix typo in the last checkin. + +Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stor-layout.c (finalize_record_size): Simplify to use existing + functions. + (compute_record_mode): No longer static. + * tree.h (compute_record_mode): New declaration. + +2000-04-25 Neil Booth <NeilB@earthling.net> + + * Revert my patch below until cause of build failures + determined. + +2000-04-25 Richard Henderson <rth@cygnus.com> + + * combine.c (combine_instructions): Add missing argument + to try_combine. + + * toplev.c (rest_of_compilation): Delay sibcall optimization + until after emit_eh_context. + +2000-04-24 Nick Clifton <nickc@redhat.com> + + * combine.c (combine_instructions): Do not try to combine a + sequence of insns when the second insn has been replaced by a + note. + +Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu> + + * gcc.c (load_specs): New static function. + (read_specs): Use it. + + * gcc.c (lookup_compiler): Make multiple passes for case + insensitive filesystems. + +2000-04-24 Neil Booth <NeilB@earthling.net> + + * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE. + * cpphash.h (_cpp_check_directive): new. + * cpplex.c (handle_newline, cpp_free_token_list, + init_trigraph_map, trigraph_ok, trigraph_replace, + backslash_start, skip_block_comment, skip_line_comment, + skip_whitespace, parse_name, parse_number, parse_string, + copy_comment, _cpp_lex_line, spell_char, spell_string, + spell_comment, spell_name, spell_other, _cpp_lex_file, + _cpp_output_list): new. + (expand_name_space): take length argument. + (init_token_list): add comment list initialisation. + (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE + instead of HSPACE_BEFORE. + + * cpplib.c (_cpp_check_directive): new + * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT, + DIGRAPH, UNSIGNED_INT, TOK_NAME): new. + (HSPACE_BEFORE): delete. + (TTYPE_TABLE): rearrange. + (struct cpp_toklist): update. + +2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR, + gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three + argument form of AC_DEFINE. + + * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER, + HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY, + WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK, + HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG, + HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise. + + * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE. + +2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES, + deduced.h): Use -isystem, not -I, for including system headers. + +2000-04-24 Nick Clifton <nickc@cygnus.com> + + * config/fr30/fr30.md (addsi3): Do not use small add instruction if + the source register is the frame pointer or arg pointer. + (addsi3_small_int): Disallow if source register is the frame + pointer or arg pointer. + +2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant + call to AC_MSG_RESULT. + +2000-04-24 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * invoke.texi: Correct grammatical errors, document + -fno-gnu-keywords as identical to -fno-asm for C++. + +2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION, + GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT, + GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE, + AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG, + EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_. + + * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S, + GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING, + GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR, + GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with + new macros names. + +2000-04-24 Mumit Khan <khan@xraylith.wisc.edu> + + * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. + (pop_alignment): Likewise. + (handle_pragma_token): Likewise. + +2000-04-24 Robert Lipe <robertlipe@usa.net> + + * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD. + +2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp> + + * combine.c (try_combine): Update reg_nonzero_bits of + newi2pat before newpat. + +Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (strength_reduce): Simplify test to INSN_P. + (record_giv): Attempt to simplify the add value, use CONSTANT_P + expressions instead of CONST_INT. + (express_from_1): Likewise. + +2000-04-24 Mark Mitchell <mark@codesourcery.com> + + * regs.h (reg_n_max): Don't declare. + * flow.c (reg_n_max): Don't define. + * regclass.c (renumber): Don't initialize to zero. + (regno_allocated): Likewise. + (reg_n_max): Define. + (allocate_reg_info): Don't initialize unnecessarily. + +Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com) + + * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p + and blockage_p in the newly allocated attribute. + +Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (addsi): `inc4' on address + registers does not modify cc, but `inc' on an extended + register does. + +Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru> + + * reload.c (find_equiv_reg): Checks all valueno regs + as a reload_reg_p regs. + +2000-04-23 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (collect_objlike_expansion): Add sanity check. + (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If + the buffer is the empty string, return. Mark __DATE__ and + __TIME__ as XCONST nodes, not MCONST. + (_cpp_macroexpand): Avoid pushing an empty buffer. + (funlike_macroexpand): Don't pop token_buffer here. + +Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro. + (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros. + (REGNO_EXTENDED_P, REGNO_AM33_P): New macros. + (REGNO_OK_FOR_BASE_P): Define in terms of them. + (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise. + (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro. + (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise. + +Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (simplify_giv_expr): Be more agressive on simplifying + constant MULT givs. + +2000-04-23 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.h (struct definition): Move file, line, col members... + (struct hashnode): ... here. Also add 'disabled' flag. + (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and + T_IDENTITY. Remove T_DISABLED. + Update prototypes. + + * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION. + (collect_expansion): Split into collect_objlike_expansion and + collect_funlike_expansion. + (_cpp_macroexpand): Split out scan_arguments, stringify, and + funlike_macroexpand. + (_cpp_compare_defs): Rename compare_defs, make static. + (_cpp_make_hashnode): Initialize hp->disabled. + (macro_cleanup): Adjust for new token types. Clear + m->disabled. + (_cpp_create_definition): Move code here to determine what + sort of macro it is, and code to check for redefinitions, from + do_define. Implement a few simple cases without creating a + full DEFINITION. + (_cpp_macroexpand, special_symbol, _cpp_dump_definition): + Handle the simple cases. + (push_macro_expansion): Set buf->has_escapes and hp->disabled + here. + + * cppinit.c (builtin_array): Change MCONST to XCONST + everywhere. + * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here; + fix check for disabled and function-like macros. + * cpplib.c (do_define): Move most logic to + _cpp_create_definition. + (do_undef): Handle new special token types. + +Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead + of CONSTANT_P for mult_val; always use validate_change to update insn. + +2000-04-22 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (trad_stringify, add_pat): New functions. + (collect_expansion): Restore support for -traditional syntax. + Use trad_stringify and add_pat. + (_cpp_macroexpand): Restore support for -traditional semantics. + * cpplex.c (_cpp_scan_line): Don't change space_before if we + get a COMMENT token. + (_cpp_lex_token): Provide COMMENT tokens to caller if + traditional and parsing_define_directive. + (skip_comment): Warn about // comments if -Wtraditional. + * cpplib.c (do_define): Fix typo. Create EMPTY nodes with + proper node type. + (do_undef): Don't warn about undefining EMPTY nodes. + +Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (strength_reduce): Fix biv removal code. + +2000-04-22 Richard Henderson <rth@cygnus.com> + + * predict.c (estimate_probability): Examine both sides of + a branch for no exits. Use 90% not 50% for predict taken. + Reorg for one copy of note generation code. + +2000-04-22 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. + +2000-04-22 Richard Henderson <rth@cygnus.com> + + * diagnostic.c (init_output_buffer): Don't initialize format_args. + (output_clear): Likewise. + (output_printf): Use va_copy. + (vline_wrapper_message_with_location): Likewise. + (v_message_with_decl): Likewise. + (line_wrapper_printf): VA_START infor buffer.format_args directly. + * system.h (va_copy): Provide default implementation. + +2000-04-22 Richard Henderson <rth@cygnus.com> + + * predict.c (expected_value_to_br_prob): Don't bomb if op1 of + the collected condition is not a constant. + +2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> + + * diagnostic.h: New file. + + * Makefile.in (diagnostic.o): Depends on diagnostic.h + + * diagnostic.c: Tweak. Rationalize the output logic. Adjust + various function prototypes. + (diagnostic.h): #include. + (struct output_buffer): Move into diagnostic.h. + (get_output_prefix): Rename to output_get_prefix. Export. + (init_output_buffer): Export. Break out. Ajust intialization. + (output_space_left, output_append): Export. + (output_newline): Rename to output_add_newline. Export. + (output_clear): Nullify additional output_buffer fields. + (output_puts): Rename to output_add_string. Export. + (dump_output): Rename to output_flush_on. Export. + (build_location_prefix): Constify return-type. + (emit_output_prefix): Rename to output_emit_prefix. Export. + (set_real_maximum_length): New function. + (output_set_maximum_length): Ditto + (output_clear): Ditto. + (output_add_character): Ditto. + (output_add_integer): Ditto. + (output_add_space): Ditto. + (output_format): Ditto. + (output_printf): Adjust buffer initialization. + (vline_wrapper_message_with_location): Ditto. + (v_message_with_decl): Ditto. Adjust call to output_puts + and get_output_prefix. + (default_print_error_function): Adjust buffer intialization. + +Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE + of VOID_TYPE. + +Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead + of explicit 0. + +Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more + accurate data about SP moves. + +Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added + aliases to AM33 registers. + +Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16 + to all EXTENDED bitmaps. + +Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare. + * config/mn10300/mn10300.h (ADDRESS_COST): New macro. + * config/mn10300/mn10300.c (mn10300_address_cost): New function. + +Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com> + + * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when + the operand is not constant. + +Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru> + + * reload.c (find_equiv_reg): Checks all valueno and regno regs + as a call-clobbered regs. + +Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG. + * rtl.h: Likewise. + * rtl.def: Update comment. + * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER. + * integrate.c (expand_inline_function): Likewise. + * profile.c (branch_prob): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG. + * print-rtl.c (print_rtx): Likewise. + * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise. + (reemit_notes): Likewise; also use enum insn_note. + + * stor-layout.c (layout_decl): Only set DECL_MODE if not already set. + (place_field): Properly compute know and actual alignment. + + * gengenrtl.c (gencode): Write obstack_alloc_rtx function start + in proper format. + + * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL + note for REG1. + +2000-04-21 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (struct arg, struct arglist): Const-ify strings. + (warn_trad_stringify, duplicate_arg_p): New helper functions. + (collect_expansion): Rewrite to scan over a token list. + Remove -traditional support. + (collect_formal_parameters): Rename to collect_params; rewrite + to scan over a token list. + (_cpp_create_definition): Adjust to scan a token list. + (_cpp_macroexpand): Remove -traditional support. + (_cpp_compare_defs): Whitespace is now canonicalized. + (comp_def_part): Delete function. + + * cpphash.h: Update prototypes. + * cpplex.c (init_token_list): Don't set lineno if there is no + buffer. + (pedantic_whitespace): New function. + (_cpp_scan_line): Mark tokens that had hspace before. Don't + consume a newline. Use pedantic_whitespace. + (_cpp_lex_token): Remove support for -traditional macros. + (_cpp_get_define_token): Delete. + (_cpp_get_directive_token): Do the real work here. Use + pedantic_whitespace. + (_cpp_init_input_buffer): Initialize pfile->directbuf. + + * cpplib.c (get_macro_name): Delete. + (do_define): Read the entire line into pfile->directbuf, then + feed the token list to _cpp_create_definition. + * cpplib.h (HSPACE_BEFORE): new define. + (struct cpp_reader): Add a toklist member, "directbuf". + + * predict.c (estimate_probability): New heuristic: if a jump + branches around a block with no successors, predict it taken. + Disentangle control flow. + +2000-04-20 Richard Henderson <rth@cygnus.com> + + * loop.c (emit_iv_add_mult): Revert last change. + +2000-04-20 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (enum cpp_ttype): Add token types for all + punctuators. Distinguish pp-numbers from valid C numbers. + Give some tokens better names. Initialize from macro. + (struct cpp_name, cpp_token, cpp_toklist): New data + structures. + Update prototypes. + * cpplex.c (bump_column, expand_name_space, + expand_token_space, init_token_list, cpp_output_list, + _cpp_scan_line): New functions. + (output_line_command): Add third argument, new line number. + * cpphash.h: Update prototypes. + * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new + token names. + +2000-04-20 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier. + +2000-04-20 Zack Weinberg <zack@wolery.cumb.org> + + * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the + object pointed to. + +Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * loop.c (emit_iv_add_mult): Simplify it's input and emit + REG_EQUAL note explaining the calculated value. + + * calls.c (expand_call): Avoid unnecesary precalculation + and outgoing parameters space guarding for sibling calls. + (store_one_arg): Likewise. + +Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. + (rest_of_compilation): Write sibling dump file and account + for time as jump time. + * invoke.texi: Update documentation on dump flags. + +2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl> + + * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>. + +2000-04-19 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (special_symbol): Represent an empty macro with + "\r \r " not just "\r ". + (_cpp_macroexpand): Correct condition for the foo ( ) special + case. + (unsafe_chars): Handle EOF as second argument. + (push_macro_expansion): Simplify test for removing escape at + end. Do not trim both escapes if there is no text in between. + +2000-04-19 Jim Blandy <jimb@redhat.com> + + * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead + of PTR_SIZE, when appropriate. + +2000-04-19 Mark Mitchell <mark@codesourcery.com> + + * system.h (ONLY_INT_FIELDS): Make sure it is defined. + (USE_ENUM_BITFIELDS): Fix typo. + +Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stor-layout.c (place_field): Set rli->offset_align properly. + +2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG, + INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY, + PARM_BOUNDARY): Remove unnecessary casts. + +Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (precompute_arguments): Remove must_preallocate and + args_size calls. + (expand_call): Update call of precompute_arguments. + + * loop.c (check_insn_for_bivs, for_every_insn_in_loop, + check_insn_for_givs): Break out from ... + (strength_reduce) ... here; use for_every_insn_in_loop to call + check_insn_for_givs. + * loop.h (for_every_insn_in_loop): Declare. + (loop_insn_callback): New type. + +2000-04-18 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (do_pragma_poison): Strings in the token buffer are + not nul-terminated. + +Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if + flag_pic and RELOC. + +2000-04-18 Zack Weinberg <zack@wolery.cumb.org> + + * cccp.c, cexp.y, cexp.c, cccp.1: Removed. + + * configure.in: Delete --disable-cpplib option and all + references to cpp_main. + * configure: Regenerate. + * Makefile.in: Remove all references to CCCP, CCCP_OBJS, + @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o, + cccp.o, cccp, or cppmain. Link cppmain.o straight to + cpp$(exeext). Add --no-headers to makeinfo command line when + generating INSTALL. Install and uninstall cpp.1 manpage, not + cccp.1. + * install.texi: Delete all references to cexp.y/cexp.c. + Delete ancient instructions for compiling GCC on 3b1. + * INSTALL: Regenerate. + + * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff, + mips/t-elf, mips/t-r3900: Remove references to cccp.c. + * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to + cexp.c/cexp.y. + * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING, + which is no longer tested anywhere. + + * cppinit.c (handle_option): Don't run error message through + gettext twice. + +Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot. + * cpperror.c (hashtab.h): Now include. + * cppexp.c (hashtab.h): Likewise. + * cpplex.c (hashtab.h): Likewise. + * cppfiles.c (hashtab.h): Likewise. + (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type + to htab_find_slot_with_hash. + * cpphash.c (hashtab.h): Now include. + (_cpp_lookup_slot): INSERT is now enum insert_option. + * cpphash.h (_cpp_lookup_slot): Likewise. + * cppinit.c (hashtab.h): Include earlier. + (initialize_builtins): Pass enum to htab_find_slot. + * cpplib.c (hashtab.h): Now include. + (do_define, do_undef): Pass enum type to _cpp_lookup_slot. + (do_pragma_poison, do_assert): Likewise. + * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to + htab_find_slot_with_hash. + * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise. + * tree.c (type_hash_add): Likewise. + (build1): Minor cleanup. + + * ggc-common.c: Add missing blanks. + * print-tree.c (print_node): Print DECL_OFFSET_ALIGN. + * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment. + + * stmt.c (mark_case_node): New function. + (mark_case_nesting): Call it. + + * expmed.c (emit_store_flag): If comparing two-word integer + with zero, can optimize NE, EQ, GE, and LT. + + * c-decl.c (mark_binding_level): Use 'for' instead of `while'. + * conflict.c: Minor cleanups. + * optabs.c: Add blank line + * simplify-rtx.c: Minor cleanups. + +2000-04-18 Stan Cox <scox@cygnus.com> + + * gengenrtl.c (genlegend): Fix misspelling. + +2000-04-18 Robert Lipe <robertlipe@usa.net> + + * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that + bitfields of the host compiler are not signed quantities. + * config.in: Regenerate. + * configure: Regenerate. + * system.h (USE_ENUM_BITFIELDS): Added. + (ENUM_BITFIELDS): Added. + * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD. + (SHORT_ENUM_BUG): Deleted. + * tree.h (tree_common): Members `code', `mode', `built_in_class', + now ENUM_BITFIELD. + * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted. + (CODE_FIELD_BUG): Likewise. + * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG. + (OLD_CC): Likewise. + * config/m68k/x-ccur (X_CFLAGS): Likewise. + +2000-04-18 Mark Mitchell <mark@codesourcery.com> + + * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the + mark is active. + +2000-04-17 Zack Weinberg <zack@wolery.cumb.org> + + * cppexp.c (lex): Don't assume tokens are NUL terminated. + * cpplib.c (do_include, do_import, do_include_next, + read_line_number, detect_if_not_defined): Likewise. + * cpphash.c (collect_expansion): Likewise. + (special_symbol, _cpp_macroexpand): Check return from + cpp_file_buffer. + * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete + macros. Delete all uses. + + * gcc.dg/cpp-mi.c: Add two more test cases. + * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files. + +2000-04-17 Richard Henderson <rth@cygnus.com> + + * bb-reorder.c (fixup_reorder_chain): Don't look up new block again. + (reorder_basic_blocks): If no epilogue in rtl, force last block last. + +2000-04-17 Mark Mitchell <mark@codesourcery.com> + + * function.c (expand_function_start): Use hard_function_value to + compute the RTL to use for DECL_RESULT. + +Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * i386.c (athlon_cost): Fix lea, divide and XFmode move costs. + (x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall): New global variables. + (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only + alloved; fix load penalties for Athlon. + * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall): Declare. + (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY, + TARGET_MEMORY_MISMATCH_STALL): New. + * i386.md (athlon scheduling parameters): Fix latencies according to + Athlon Optimization Manual. + (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to + vector. + (fsqrt instruction patterns): Set athlon_decode to direct. + (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for + PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines. + (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY + and TARGET_PARTIAL_REGISTER_STALL machines. + (pushdf_nointeger): New pattern. + (pushdf_integer): Rename from pushdf. + (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines. + (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines. + +2000-04-17 Richard Henderson <rth@cygnus.com> + + * loop.c (canonicalize_condition): Add WANT_REG argument. + Stop the search if we match it. + * expr.h (canonicalize_condition): Update decl. + * predict.c (expected_value_to_br_prob): Use it. Track last + expected value note. + (find_expected_value): Remove. + + * reorg.c (mostly_true_jump): Always use BR_PROB if present. + +2000-04-17 Zack Weinberg <zack@wolery.cumb.org> + + * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]). + (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of + a plain file. + * configure.in: Call AC_FUNC_MMAP_FILE. + * configure: Regenerate. + * config.in: Regenerate. + + * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP. + * fixinc/fixincl.c: Likewise. + +2000-04-17 Richard Henderson <rth@cygnus.com> + + * builtins.c (expand_builtin_expect): New. + (expand_builtin): Call it. + * builtins.def (BUILT_IN_EXPECT): New. + * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. + * extend.texi: Document it. + + * predict.c (expected_value_to_br_prob): New. + (find_expected_value): New. + * basic-block.h (expected_value_to_br_prob): Declare. + * toplev.c (rest_of_compilation): Invoke it. + + * rtl.h (NOTE_EXPECTED_VALUE): New. + (NOTE_INSN_EXPECTED_VALUE): New. + * rtl.c (note_insn_name): Update. + * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special + cases; handle NOTE_INSN_EXPECTED_VALUE. + +2000-04-17 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use + leaf sibcall delay slot if flag_pic. + (output_sibcall): Always emit call for leaf sibcall if flag_pic. + +2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto. + + * fixproto: If fix-header fails, exit with an error. + +Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * cse.c (struct check_depdendence_data): New. + (check_dependence): New function. + (invalidate): Use check_depdenence. + +2000-04-16 Mark Mitchell <mark@codesourcery.com> + + * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that + UNITS_PER_WORD is unsigned. + + * tree.h (struct tree_common): Remove misleading comment. + +2000-04-16 Dave Pitts <dpitts@cozx.com> + + * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole + message in quotes. Otherwise, IBM's make program treats the '#' as the + start of a comment and ignores the remainder of the line. + + * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed + upper case. + * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. + * cexp.y (initialize_random_junk): Likewise. + * cppfiles.c (find_include_file): Cast alloca return value. + * cppinit.c (initialize_standard_includes): Likewise. + * cpplib.c (cpp_define, cpp_undef): Likewise. + * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. + * final.c (output_asm_insn): Allow for holes in EBCDIC. + * fold-const.c (CHARMASK): New. + (real_hex_to_f): Use it. + * real.c (CHARMASK): New. + (etoasc, asctoeg): Use it. + (asctoeg): EBCDIC lower case characters preceed upper case. + + * i370.c (mvs_add_label): Change spacing for coding conventions. + * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the + outputing case vectors. + (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT. + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check, + since vector in in the data CSECT. + (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. + * i370.md (Many patterns): Put the length in the XL directives. + (movdi): Put back STM and MVC in definition. + (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370 + pattern using the TCA. + * oe.h (CPP_SPEC): Added to allow trigraphs. + * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does + not support the "long long" type. + +2000-04-16 Mark Mitchell <mark@codesourcery.com> + + * config/mips/mips-protos.h (mips_legitimate_address_p): New + function. + (mips_reg_mode_ok_for_base_p): Likewise. + * config/mips/mips.h (REG_OK_STRICT_P): Don't define. + (REG_OK_FOR_INDEX_P): Define unconditionally. + (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p. + (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p. + * config/mips/mips.c (mips16_simple_memory_operand): Adjust now + that GET_MODE_SIZE is unsigned. + (mips_reg_mode_ok_for_base_p): Define. + (mips_legitimate_address_p): Likewise. Adjust now + that GET_MODE_SIZE is unsigned. + (block_move_loop): Make the number of bytes unsigned. + (expand_block_move): Likewise. + (function_arg): Make the loop counter unsigned to match the + boundary condition. + +2000-04-16 Richard Henderson <rth@cygnus.com> + + * rtl.h (enum insn_note): New enumeration. Subsume + NOTE_INSN_DELETED and friends. + (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS. + * rtl.c (note_insn_name): Tweak string order. + +2000-04-15 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it + to offset * 2. + + * cpplex.c (output_line_command): Remove debugging prints. + (cpp_output_tokens): Don't write out a zero-length buffer or + try to see if it has a newline in it. + (_cpp_expand_to_buffer): Copy the source buffer before pushing. + (_cpp_read_and_prescan): Move shift-down of pushback bytes to + the end of the loop. Use memmove. Don't read past the end of + the buffer. Remove trailing newlines from error messages. + +2004-04-16 Neil Booth <NeilB@earthling.net> + + * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new. + * cpplib.c: Add new syntax flags to directive table, and + supporting macros. + +2000-04-15 Ulrich Drepper <drepper@redhat.com> + + * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once + using ret $N. + +2000-04-15 David Edelsohn <edelsohn@gnu.org> + + * toplev.c (display_help): Prefix "f" to "sched-verbose=". + * haifa-sched.c: Update -fsched-verbose comments to use "=". + +Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * Makefile.in (ggc-page.o): Now includes toplev.h. + * ggc-page.c (toplev.h): Now included. + (gc_time): Remove declaration. + (ggc_collect): TIME now long. + * toplev.c (parse_time, varasm_time, gc_time): Still global; all + others static. + * toplev.h (gc_time, parse_time, gc_time): New declarations. + + * toplev.c: Make *_time variable long to reduce chance of overflow. + (TIMEVAR): Likewise for `otime'. + (print_time): Arg is now long; compute percentage in FP and round. + * toplev.h (print_time): Arg is long. + + * tree.c: Minor whitespace changes. + + * configure.in (alpha*-*-*): Add config/alpha/t-alpha. + * configure: Rebuilt. + * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. + (__fixunsxfDI): Renamed from __fixunsxfdi. + (__fixunsdfDI): Renamed from __fixunsdfdi. + (__fixunssfDI): Renamed from __fixunssfdi. + (__floatdisf): Use proper type in REP_BIT macro. + (__fixunsxfSI): Renamed from __fixunsxfsi. + (__fixunsdfSI): Renamed from __fixunsdfsi. + (__fixunssfSI): Renamed from __fixunssfsi. + * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. + Change location of macros and upper-case some names as above. + * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. + * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. + + * varasm.c (assemble_variable): Add cast to remove warning. + (immed_real_const_1): Only use CONST[01]_RTX if not in nested function. + + * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change. + * optabs.c (emit_libcall_block): If have REG_EH_REGION, update + region number to -1. + +2000-04-15 Richard Earnshaw (rearnsah@arm.com) + + * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then + call unshare_all_rtl. + + * arm.md (movhi): REGNO_POINTER_ALIGN is now bits. + +Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3): + Use .s1 not .s0 for all FP instructions. + +2000-04-14 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public + interfaces. + (safe_fwrite, output_line_command): New static functions. + (cpp_expand_to_buffer): Now private to cpplib. + (cpp_scan_buffer): Take a printer. + + * cpphash.h: Update prototypes. + * cpplib.h: Update prototypes. + (cpp_printer): New. + (cpp_buffer): Remove last_nominal_fname. + (cpp_reader): Remove lineno. + + * cppmain.c: Use a cpp_printer. + * fix-header.c: No need to inhibit line commands. Call + cpp_start_read with no printer. + + * cpperror.c (cpp_notice_from_errno): Provide default name. + * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions. + (find_include_file, cpp_read_file): Use make_IHASH. + (file_cleanup): Set control_macro and clear + input_stack_listing_current here. + (_cpp_execute_include): Don't output entering-file marker. + * cpphash.c (special_symbol): Look for the line number in the + buffer, not the reader. + (_cpp_macroexpand): No need to disable line commands. + (_cpp_dump_definition): No need to generate line commands. + (dump_hash_helper): Remove excess newline from output. + * cppinit.c (dump_special_to_buffer): No need to generate line + commands. + (cpp_printer_init): New. + (cpp_start_read): Take a printer, and start it up if it's not + NULL. No need to generate line commands. + (cpp_finish): Expect no buffers stacked at all. Take a + printer argument, and flush the output buffer if it's not + NULL. + * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer. + Don't put two hashes at the beginning of an assertion. + (cpp_get_token): Don't increment pfile->lineno or emit line + commands here. Return EOF if there's no buffer when we get + EOF. + * cpplib.c (do_define, skip_if_group): + No need to disable line commands. + (_cpp_output_line_command): Delete function. + (do_line): Don't emit line commands here, but set things up so + they will be emitted if necessary. Use _cpp_fake_ihash to + make unique nominal_fnames if necessary. + (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line + with 0 for column, not -1. + (_cpp_handle_eof): Don't set the control macro here. Don't + clear input_stack_listing_current here. Don't emit line + commands. + +2000-04-14 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty + always, use the default SVR4 start address. + + * config/rs6000/linux.h (LINK_SPEC): Don't define. + (LINK_SHLIB_SPEC): Define. + (LINK_START_DEFAULT_SPEC): Define. + (LINK_OS_DEFAULT_SPEC): Define. + + * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros. + + * config/rs6000/eabi.asm (__eabi): Call __init rather than + __do_global_ctors to handle constructors. + * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin. + (STARTFILE_YELLOWKNIFE_SPEC): Likewise. + (STARTFILE_MVME_SPEC): Likewise. + (STARTFILE_SIM_SPEC): Likewise. + (ENDFILE_ADS_SPEC): Use crtend. + (ENDFILE_YELLOWKNIFE_SPEC): Likewise. + (ENDFILE_MVME_SPEC): Likewise. + (ENDFILE_SIM_SPEC): Likewise. + (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS. + (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS. + (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects. + (ENDFILE_LINUX_SPEC): Use crtendS for shared objects. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o. + (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS. + (CRTSTUFF_T_CFLAGS_S): Define. + * config/rs6000/eabi-ctors.c: Delete. + + * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte + boundary. + (__fini): Likewise. + * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame. + boundary. + (__fini): Likewise. + +Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com> + + * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift + plus mask size is smaller or equal to the mode size. + +Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK + not yet set. + + * expr.c (reload.h): Now included. + (emit_block_move): Set volatile_ok when checking for movstr. + (emit_move_1): Check for replacements in addresses in multi-word case. + * Makefile.in (expr.o): Now includes reload.h. + + * flow.c (count_basic_blocks): Remove unused var PREV_CALL. + Never have a LIBCALL end a basic block. + (find_basic_blocks_1): Likewise. + Reorganize CALL_INSN cases. + + * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change. + +Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete + completers from mov.ret instruction. + +2000-04-14 Richard Henderson <rth@cygnus.com> + + * fold-const.c (extract_muldiv): Don't distribute and widen + multiply across plus for non-sizetype unsigned types. + +2000-04-14 Richard Henderson <rth@cygnus.com> + + * flow.c (find_auto_inc): Don't autoinc eliminable registers. + If the original source is dead in the incr insn, it's dead now. + +Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to + see if DECL_BIT_FIELD needs to still be set. + + * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. + + * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call + print_int_cst_octal with something that's not an INTEGER_CST. + + * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG + and not a SUBREG to a FLOAT rtl. + +Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com> + + * emit-rtl.c (try_split): Avoid infinite loop if the split + results in a sequence that contains the original insn. + +2000-04-13 Andreas Jaeger <aj@suse.de> + + * config/mips/mips.c (expand_block_move): Pass alignment + argument to move_by_pieces in bits, not bytes. + + * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and + __pic__ for little endian. + +2000-04-13 Andreas Jaeger <aj@suse.de> + + * config/i386/i386-protos.h: Add prototype for + uno_comparison_operator. + +Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage. + * calls.c (ECF_PURE): New flag. + (emit_call_1): Handle ECF_PURE calls. + (initialize_argument_information): Unset ECF_PURE flag too. + (precompute_arguments): Precompute for ECF_PURE too. + (expand_call): Handle ECF_PURE calls too. + (emit_library_call_value_1): Rename no_queue argument to fn_type, + accept value of 2 as pure function. + (emit_library_call_value, emit_library_call): Rename no_queue argument + to fn_type. + * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call. + + * tree.h (DECL_IS_PURE): New macro. + (struct tree_decl): Add pure_flag. + * c-common.c (enum attrs): Add attribute "pure". + (init_attributes): Initialize attribute "pure" + (decl_attributes): Handle attribute "pure". + * extend.texi (Attribute "pure"): Document. + * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from" + in pure function. + (flags_from_decl_or_type): Support attribute "pure". + +2000-04-13 Jason Merrill <jason@casey.cygnus.com> + + * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate + the token except for numbers and identifiers. + +Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com) + + * i386.c (ix86_expand_binary_operator, + ix86_expand_unary_operator): Check no_new_pseudos + instead of reload_in_progress and reload_completed. + (ix86_split_ashldi, ix86_split_ashrdi, + ix86_split_lshrdi): Check no_new_pseudos instead + of reload_completed. + +2000-04-12 Jeffrey A Law (law@cygnus.com) + + * function.c (purge_addressof): Unshare any shared rtl created by + purge_addressof and its children. + +2000-04-12 Mark Mitchell <mark@codesourcery.com> + + * function.c (aggregate_value_p): VOID_TYPE nodes are never + aggregates. + +2000-04-05 Andreas Jaeger <aj@suse.de> + + * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if + not compiling PIC code, add flags for mabi=64. + (SUBTARGET_CPP_SIZE_SPEC): New. + (SUBTARGET_CPP_SPEC): New. + (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default + for MIPS/Linux and lots of code needs these defines. + +Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com> + + * reorg.c (fill_slots_from_thread): Check side_effects_p when + trying the "opposite arithmetic" approach. + +Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI. + (struct sh_args): Add new field force_mem. + (INIT_CUMULATIVE_ARGS): Initialize it. + (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it. + +Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (expand_call): Do not reverse args in "equal from" field. + (emit_library_call_value_1): Emit_libcall_block for const and pure + function. + +Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_combine): Don't enable optimization for fixed + registers when encountering a BARRIER. + +Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * builtins.c (expand_builtin_memcmp): Do expansion even with + !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails. + + * calls.c (expand_call): Do NO_DEFER_POP unconditionally once + stack is propertly aligned; add sanity checking for aligned + stack pointer. + (expand_library_call_value_1): Add sanity checking for aligned + stack pointer. + +Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com> + + * calls.c (emit_library_call_value_1): Change 3rd arg to + locate_and_pad_parm to disregard the setting of partial. + +Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST. + + * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the + CALL_INSN from the normal case. + +Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): + New global variables. + (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the + adjustment. + * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): + Declare, + (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4, + TARGET_ADD_ESP_8): New macros. + * i386.md: Add peep2s to convert esp adjustments to push and pop + instructions. + (pushsi_prologue, popsi_epilogue): New patterns. + +2000-04-12 Jakub Jelinek <jakub@redhat.com> + + * real.c (toe64): Remove stale #endif from the last change. + +2000-04-12 Stephen L Moshier <moshier@mediaone.net> + + * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. + * real.c (toe64): Revert previous change. + +2000-04-12 Jakub Jelinek <jakub@redhat.com> + + * objc/objc-act.c: Include ggc.h. + (objc_tree_index, objc_global_trees): Convert most of the + static tree variables into a static array with previous names + as defines. + (objc_ellipsis_node): New variable. + (lang_init): Call objc_act_parse_init and c_parse_init. + Create objc_ellipsis_node. + (build_selector_translation_table): Use objc_ellipsis_node instead + of (tree)1. + (hack_method_prototype): Likewise. + (get_arg_type_list): Likewise. + (start_method_def): Likewise. + (continue_method_def): Likewise. + (gen_method_decl): Likewise. + (ggc_mark_imp_list): New function. + (ggc_mark_hash_table): New function. + (objc_act_parse_init): New function. + * objc/objc-act.h (objc_ellipsis_node): Add extern variable. + * c-parse.in (c_parse_init): For objc add roots of objc specific + local tree variables. + * objc/objc-parse.y: Rebuilt. + * objc/objc-parse.c: Rebuilt. + (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. + +Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com) + + * cse.c (delete_trivially_dead_insns): Also delete insns + that copy a register to itself where the destination is + a strict_low_part. + +2000-04-11 Richard Henderson <rth@cygnus.com> + + * flow.c (struct propagate_block_info): Add new_dead, new_live. + (propagate_block): Initialize them. Use them in parallel instead + of one tmp variable, ie revert much of the 0408 and 0407 functional + changes, but keep the structural changes. + (mark_set_regs): Take new_dead from propagate_block_info instead. + (mark_set_1, mark_set_reg): Likewise. + (mark_used_regs): Likewise with new_live. + (mark_used_reg): Likewise. Revert 0408 change. + +2000-04-11 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2 + restriction. + (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction. + +2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * config/elfos.h (SELECT_SECTION): Decide whether to use a data or + const section to output a CONSTRUCTOR based on the same conditions + used for VAR_DECLs. + +Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com) + + * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64. + * pa/pa-protos.h (output_call): Add additional argument indicating + if the call is a sibling/tail call. + (compute_zdepdi_operands, output_64bit_and): Prototype new functions. + (compute_64bit_ior, cmpib_comparison_operator): Likewise. + (function_arg, function_arg_partial_nregs): Likewise + * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT. + (emit_move_sequence): Zero extend certain constants as needed + for TARGET_64BIT. + (compute_zdepdi_operands, output_64bit_and): New functions. + (output_64bit_ior, function_arg): Likewise. + (cmpib_comparison_operator, function_arg_partial_nregs): Likewise. + (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT. + (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise. + (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise. + (output_bvb): Likewise. + (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT. + (output_call): New argument 'sibcall'. Generate sibcall sequences + as needed. + (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For + (ouput_arg_descriptor): Do not emit argument descriptors for + TARGET_64BIT. + * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already + defined. + (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define. + (FUNCTION_OK_FOR_SIBALL): Define. + (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define. + (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise. + (CPP_SPEC): Use new spec infrastructure. + (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT. + (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise. + (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise. + (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise. + (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise. + (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise. + (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. + (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise. + (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise. + (FUNCTION_ARG); Call out to C code. + (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define. + (MIN_UNITS_PER_WORD): Likewise. + * pa/pa.md (cmpdi): New expander. + (scc patterns, movstrsi): Not available for TARGET_64BIT. + (64bit conditional arithmetic): New patterns. + (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns. + (movsicc): Not available if modes on all the operands to not match. + (movdicc): New expander and associated patterns. + (64bit branches): New patterns. + (pre_load, post_store): Generate appropriate code for TARGET_64BIT. + (pre_ldd, post_std): New patterns. + (64bit addil, load low part): New patterns. + (special movsf constant): Not available for TARGET_64BIT. + (movsf, movdf expanders): Force constants into memory. + (32bit movdf/movdi patterns): Disable for TARGET_64BIT. + (64bit movdf/movdi patterns): New patterns. + (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns + for TARGET_64BIT. + (extendqidi2, extendhidi2, extendsidi2): Similarly. + (adddi3 expander): Allow "arith_operand" for second input. + (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT. + (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT. + (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too. + (muldi3): New expander for TARGET_64BIT. + (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2) + for TARGET_64BIT. + (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable + patterns for TARGET_64BIT. + (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New + patterns for TARGET_64BIT. + (64bit bit insertion/extractions): New patterns for TARGET_64BIT. + (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT. + (sibcall_epilogue): New expander. + (casesi): Tweak for TARGET_64BIT. + (call expanders): Set & use the outgoing argument pointer. Use the + 64bit call patterns as needed. Add additional arg to output_call. + (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern. + (sibcall, sibcall_internal_symref): New expanders. + (sibcall_value, sibcall_value_internal_symref + (interspace_jump): Turn into an expander + matching patterns. + (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT. + * pa/pa64-regs.h: Eliminate trigraph sequences. + * pa/pa64-start.h (TARGET_PA_20): Fix typo. + +2000-04-11 Zack Weinberg <zack@wolery.cumb.org> + + * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c, + cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace + cpp_token with cpp_ttype everywhere. + * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c: + Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or + CPP_BUF_COL. Line and column numbers are unsigned int, not + long. + * cpplex.c (cpp_buf_line_and_col): Delete. + * cpplib.h (struct cpp_buffer, struct cpp_reader): Change + 'long lineno' to 'unsigned int lineno'. + (CPP_BUF_LINE, CPP_BUF_COL): New macros. + +2000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * extend.texi: ISO C99 is not a draft anymore. + * invoke.texi: ISO C++ is not a draft anymore. + * cpp.texi: __cplusplus is required by the ISO standard. + + * extend.texi (-fthis-is-variable): Undocument. + * flags.h (warn_template_debugging): Remove declaration. + * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable, + -Wenum-clash, -Wtemplate-debugging): Undocument. + +2000-04-10 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT + integer. + (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT + integer. + (ARM_SIGN_EXTEND): Use HOST_UINT. + (STRIP_NAME_ENCODING): Prevent warnings about redefinitions. + (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions. + (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported. + (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported. + + * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT. + (arm_gen_constant): Use HOST_UINT. + (arm_canonicalize_constant): Use HOST_UINT. + (arm_reload_in_hi): Use HOST_UINT. + (arm_reload_out_hi): Use HOST_UINT. + (output_multi_immediate): Use HOST_UINT. + (int_log2): Use HOST_UINT. + (arm_poke_function_name): Use HOST_UINT. + (arm_output_epilogue): Use arm_volatile_func(). + (output_thumb_prologue): Use arm_strip_name_encoding(). + +Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential + of sequence point problems. + +2000-04-10 Nathan Sidwell <nathan@codesourcery.com> + + * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT): + Recomment. + * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment. + +Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * sbitmap.h: Whitespace changes and use upper-case macro args. + (struct simple_bitmap_def): All sizes now unsigned. + (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. + * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. + (sbitmap_vector_alloc): Parms and local vars now unsigned. + (sbitmap_zero): Cast bzero arg to PTR. + (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. + (sbitmap_union_of_diffs): Change loop index to unsigned and rework + loop to make structure clearer. + (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. + (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. + (sbitmap_a_and_b_or_c): Likewise. + (sbitmap_intersection_of_succs): Minor cleanups. + (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. + (sbitmap_union_of_preds): Likewise. + (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. + (debug_sbitmap): New function. + + * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE. + * c-typeck.c (convert_for_assignment): Likewise. + + * expmed.c (init_expmed): Don't free objects we make. + * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups. + + * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases. + (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field. + + * gcse.c (expr_hash_table_size): Now unsigned. + (compute_ae_gen): Local variable `i' now unsigned. + (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise. + (compute_transout, hoist_code): Likewise. + (compute_local_properties): Likewise, also hash_table_size. + (alloc_expr_hash_table): N_INSNS now unsigned. + (delete_null_pointer_checks): Mark arg F as unused. + + * regrename.c: Minor cleanups, including chang some variables + to unsigned int. + +2000-04-10 Neil Booth <NeilB@earthling.net> + + * cpplex.c (skip_block_comment): Use pointer arithmetic rather + than GETC (). + * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New. + +2000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * invoke.texi (-fno-gnu-keywords): Remove classof, headof, + __classof__, and __headof__ from the list of gnu keywords. + (-ansi): Remove -foperator-names from list of implied options. + Do not call it ANSI C++. + (-foperator-names): Document as -fno-operator-names. + +2000-04-09 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (timestamp): Delete. + (del_HASHNODE): If type is T_MCONST, free value.cpval. + (special_symbol): Remove unnecessary braces. Remove + T_VERSION. Treat T_STDC like T_CONST unless + STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__ + when one is encountered, then convert them into T_MCONST + nodes. + * cppinit.c (builtin_array): version_string is T_MCONST. + __STDC__ has a "1" in its cpval. Don't have a terminator + entry. Clean up which entries are dumped. + (initialize_builtins): Only __STDC__ gets the special + -traditional treatment. Count the length of builtin_array. + Render version_string here. + * cpphash.h: Remove T_VERSION. Add T_MCONST. + * cpplib.h (struct cpp_reader): Remove timebuf. + +2000-04-09 Richard Henderson <rth@cygnus.com> + + * genrecog.c (pred): Update comparison_operator for the unordered + operators. + + * config/i386/i386.c (no_comparison_operator): Disallow unordered + operators. + (fcmov_comparison_operator): Allow UNORDERED/ORDERED. + (uno_comparison_operator): New. + (put_condition_code): Handle UNORDERED/ORDERED. + (unsigned_comparison): Likewise. + (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. + (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. + (ix86_expand_fp_compare): Use them. Take scratch as argument, + update all callers. Handle all 8 unordered operators. + (ix86_expand_setcc): Lose the unordered argument, update all callers. + (ix86_expand_branch): Likewise. Don't fully expand fp branches. + * config/i386/i386.h (PREDICATE_CODES): Update. + * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. + (ix86_expand_branch, ix86_expand_setcc): Update. + * config/i386/i386.md (sunordered, sordered): New. + (suneq, sunge, sungt, sunle, sunlt, sltgt): New. + (bunordered, bordered): New. + (buneq, bunge, bungt, bunle, bunlt, bltgt): New. + (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. + (*fp_jcc_5, *fp_jcc_6, and splitters): New. + +2000-04-09 Philip Blundell <philb@gnu.org> + + * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too. + +Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com) + + * i386.md (fix_truncsfhi2, fix_truncdfhi2, + fix_truncxfhi2): New patterns. + * i386.c (output_fix_trunc): Handle converting to HImode. + +2000-04-08 Alex Samuel <samuel@codesourcery.com> + + * ssa.c (convert_to_ssa): Eliminate dead code when calling + life_analysis. + (convert_from_ssa): Call compute_bb_for_insn before life_analysis. + (for_each_successor_phi): Change parameter to basic_block. + (coalesce_regs_in_successor_phi_nodes): Likewise. + (coalesce_regs_in_copies): Likewise. + (compute_coalesced_reg_partition): Use basic_block instead of index. + * rtl.h (convert_to_ssa): Delete. + (convert_from_ssa): Likewise. + (successor_phi_fn): Likewise. + (for_each_successor_phi): Likewise. + (in_ssa_form): Likewise. + * basic-block.h (convert_to_ssa): Moved from rtl.h. + (convert_from_ssa): Likewise. + (successor_phi_fn): Likewise. + (in_ssa_form): Likewise. + (for_each_successor_phi): Likewise. Change parameter to basic_block. + * flow.c (calculate_global_regs_live): Pass a basic_block to + for_each_successor_phi. + +2000-04-08 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_used_reg): Use reg_set_p to determine if a register + was modified in the current insn. + +2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + * arm/thumb.md: Delete. + * arm/thumb-protos.h: Delete. + +2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + Merge changes from merged-arm-thumb-backend-branch onto trunk. + + 2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408 + into branch. + + * arm.md (nop): Use the standard RTL expression. Don't code as a + define_expand. + (*arm_nop, *thumb_nop): Delete. + + * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining + constants. Use casts instead. + (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi, + output_multi_immediate, arm_poke_function_name): Likewise. + * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND, + MASK_RETURN_ADDDR): Likewise. + + 2000-03-31 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 + into branch. + + * arm.md (eh_epilogue): New function. + * arm.h (struct machine_function): Move to here ... + * arm.c: ... from here. + (arm_output_epilogue): Support epilogues for __builtin_eh_return. + (thumb_exit): Extra parameter eh_ofs. All callers changed. + Handle epilogues for __builtin_eh_return. Make bit-fields unsigned. + + 2000-03-30 Nick Clifton <nickc@cygnus.com> + + * config/arm/semi.h (ASM_SPEC): Restore definition. + (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. + + * config/arm/elf.h (ASM_SPEC): Restore definition. + (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. + + * config/arm/arm.h (ASM_SPEC): Remove definition. + (SUBTARGET_EXTRA_ASM_SPEC): Remove definition. + + 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> + + * config/arm/arm.c: Disable -fschedule-insns for Thumb. + + 2000-03-24 Nick Clifton <nickc@cygnus.com> + + Various formating tidyups, elimination of compile time + warnings and synchronisation with internal sources: + + * config/arm/arm-protos.h (assemble_align): Add prototype. + (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. + (gen_comapre_reg): Rename to arm_gen_compare_reg. + (arm_return_addr_rtx): Rename to arm_return_addr. + + * config/arm/arm.c: Include except.h. + Define shorter typenames for strict minipool_node and struct + minipool_fix. + (arm_return_in_memory): For WinCE return all structures <= 32 bits + in memory. + (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. + (gen_comapre_reg): Rename to arm_gen_compare_reg. + + * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not + already defined. + (ASM_SPEC): Define if not already defined. + (ASM_OUTPUT_DEF_FROM_DECLS): Define. + + * config/arm/arm.md: Rename references to gen_rotated_half_load to + arm_gen_rotated_half_load, and references to gen_comapre_reg to + arm_gen_compare_reg. + (indirect_jump): Only accept register operands. + (load_indirect_jump): Keep this pattern since combine can generate + it. + + * config/arm/coff.h: Include aout.h. + (MULTILIB_DEFAULTS): Only define if not already defined. + + * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition + into arm.h (so that COFF ports can support thumb based aliases). + (ASM_SPEC): Move definition into arm.h + + * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove + redundant apcs spec. + (ASM_SPEC): Move definition to arm.h + + * config/arm/semi.h (ASM_SPEC): Move definition to arm.h + + * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support + for entries in the .bss section + + 2000-03-23 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0 + to thumb_far_jump_used_p. + + * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a + single integer parameter. + + * config/arm/arm.c (struct machine_function): Add two new + fields, 'far_jump_used' and 'arg_pointer_live'. + (thumb_far_jump_used_p): Once the decision has been made that + far jumps might be used, always return true. + If being called from the initial elimination offset macro then + do not bother to perform the test if the arg pointer is not + being used. + (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p(). + (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p(). + + 2000-03-23 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (output_return_instruction): Handle more cases where we can + return from a function with an ldr instruction. + (arm_output_epilogue): Likewise. + + * arm.c (thumb_expand_prologue): Don't clobber the frame pointer + if we need to push a large stack frame and there are no callee-saved + registers. + + * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid + in ARM code if the frame pointer has been eliminated. + + * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber + unspec_volatile arguments to avoid duplicates. + (consttable_1, consttable_2): Fixes for big-endian mode. + + * arm.md (all ARM-mode load insns): Add neg_pool_range attribute + as appropriate. + + Re-write constant pool code. + * arm.c (minipool_node, minipool_fix): New types. + (minifix): Delete type. + (arm_add_minipool_constant): Delete. + (arm_compute_minipool_offsets, arm_find_barrier, + arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise. + (get_jump_table_size): Now returns HOST_WIDE_INT. + (move_minipool_fix_forward_ref, add_minipool_forward_ref): New + functions. + (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise. + (assign_minipool_offsets, arm_print_value): Likewise. + (dump_minipool): Rewrite. + (arm_barrier_cost): New function. + (create_fix_barrier): New function. + (push_minipool_barrier): New function. + (push_minipool_fix): Record additional information about the fixup + required. + (note_invalid_constants): Remove push for (UNSPEC 3). Don't + check the mode of what needs fixing. + (arm_reorg): Rewrite. + + 2000-03-08 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.md (indirect_jump): Force constant addresses into + a register. + + 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> + + * config/arm/arm.md: Add splitter to turn SF moves into SI moves. + + 2000-02-24 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c (thumb_expand_prologue): Make sure that stack + adjust is word aligned. + (thumb_expand_epilogue): Make sure that stack adjust is word + aligned. + + * config/arm/elf.h (ASM_FILE_START): Fix type of version string. + + 2000-02-24 Bernd Schmidt <bernds@cygnus.com> + + * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame + pointer relative addresses. + + 2000-02-10 Richard Earnshaw <rearnsha@arm.com> + + * arm.c (find_barrier): Find the last barrier within the allowed + range. + + 2000-02-09 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm-protos.h: Replace PROTO with PARAMS. + + 2000-02-09 Nick Clifton <nickc@cygnus.com> + + * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to + ARM_FUNCTION_PROFILER. + + * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to + ARM_FUNCTION_PROFILER. + + * config/arm/linux-oldld.h: Imported from mainline sources. + + 2000-02-07 Nick Clifton <nickc@cygnus.com> + + * config/arm/lib1funcs.asm: Merge in thumb functions from + lib1thumb.asm. + + * config/arm/lib1thumb.asm: Delete. + + 2000-02-04 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c: Sychronised with current Red hat local + sources. + * config/arm/arm.h: Ditto. + * config/arm/arm-protos.h: Ditto. + + 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk> + + * arm.c (soft_df_operand): Reject SUBREGs containing a constant. + + * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two + byte stores. + + 2000-02-02 Nick Clifton <nickc@cygnus.com> + + * config/arm/thumb.c (thumb_exit): Additional fix for same bug. + + * config/arm/arm.md (epilogue): Fix rtl checking abort because + (return) was emited using an emit_insn() call. + + 2000-01-31 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c (output_thumb_prologue): Fix bug generating + thumb stack frame. + (thumb_exit): Move frame pointer back into hard frame pointer + register if backtracing is being used. + + 2000-01-13 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 + into branch. + + 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk> + + * config/arm/arm.md (neg_pool_offset): Provide default for new + attribute. + (arm_movsi_insn): Add neg_pool_offset attribute. + * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an + rtx for the insn that starts the scan and an unsigned long for its + address. Add MIN_OFFSET and PINSERTED args. All callers changed. + Change scan to ignore insns before MIN_OFFSET. Store size of inserted + instructions in *PINSERTED. + (struct minipool_fixup): Add MIN_ADDRESS elt. + (sort_fixups): Compute it. + (arm_reorg): Changes to support inserting pools before the insn to be + fixed up. + + 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk> + + * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm". + * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm". + * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm". + + Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/semi.h (TARGET_VERSION): Do not define if already + defined. + (TARGET_DEFAULT): Do not define if already defined. + + Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.md (anddi3): Allow disjoint source operands. + (iordi3): Allow disjoint source operands. + (xordi3): Allow disjoint source operands. + (negdi2): Permit construction for ARM and Thumb. + (arm_negdi2): Renamed version of old negdi2 pattern. + (thumb_negdi2): New pattern: Only permit non-overlapping + source and destination. + + Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the + scratch low register so that it will not be deleted. + + Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/pe.h (ARM_PE): Define. + + * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow + interfacearm attribute if this is a PE toolchain. + (output_return_instruction): Do not emit anything if the function + has the naked attribute set. + (is_called_in_ARM_mode): If the function has the interfacearm + attribute then return true. + (thumb_expand_prologue): Do not generate a prologue for naked + functions. + (thumb_expand_epilogue): Do not generate an epilogie for a naked + function. + (output_thumb_prologue): Do not bother if the function is naked. + Strip PE encoding from function name before emitting. + + Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com> + + * arm.md (pic_load_addr): Fix constraints. + + * arm.md (casesi_insn): Fix mis-applied patch. + + * arm.md ("core" function unit): Add rules for single- and + multi-cycle insns. + (All TARGET_THUMB patterns): Add "type" attribute information + where needed. + * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if + the following insn is a CALL. + + * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack + pointer. + * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the + ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME. + (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM. + + Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/linux-gas.h: oops - this file was missed out when the + branch was created... + + Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com> + + * thumb.c: Deleted. Move contents to ... + * arm.c: ... here. + * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove + rule for thumb.o + * configure.in (arm*-*-*): Remove thumb.o from extra_objs list. + * configure: Regen. + + * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't + declare a prototype for asm_output_align(); + + * arm.c (thumb_condition_code): Delete. + (arm_print_operand): Always use arm_condition_code array. + + * arm.c (thumb_return_addr_rtx): Delete. + (arm_save_machine_status, arm_restore_machine_status): Delete. + (arm_init_machine_status, arm_mark_machine_status): New functions. + (arm_init_expanders): Update accordingly. + (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite. + (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx. + * arm.h (RETURN_ADDR_RTX): Call arm_return_addr(). + + Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com> + + * configure.in : Fix arm-*-aout target to use new t-arm-aout + script. + * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout + targets. + + Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com> + + * config/arm/thumb.c (output_thumb_prologue): Fix bug creating + stack backtrace structure. + + * config/arm/arm-protos.h: Add prototypes for functions defined in + arm/pe.h. + + * config/arm/arm.c (arm_override_options): Fix selection of + attributes of default processor. + + * config/arm/coff.h: Delete needless #include. + + * config/arm/pe.c: Delete unused code. + + * config/arm/pe.h (CPP_DEFINES): Delete + (SUBTARGET_CPP_SPEC): Define. + (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. + + * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build. + + Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses + updated. + (CAN_DEBUG_WITHOUT_FP): Define. + (FIXED_REGISTERS): Make r11 call-saved. + (CALL_USED_REGISTERS): Likewise. + (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME. + (FRAME_POINTER_REQUIRED): Correct logic for determining when a + frame-pointer is required. + (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME. + * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g + if the target normally needs a stack frame in non-leaf functions. + (use_return_insn): Correct logic for determining when a return + instruction can be used. + (output_return_instruction): Handle the frame-pointer register as + a normal register when not TARGET_APCS_FRAME. + (arm_output_prologue): Likewise. + (arm_output_epilogue): Likewise. + (output_func_epilogue): Likewise. + (arm_expand_prologue): Likewise. + * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME. + + * arm.c (use_return_insn): No need to check floating point regs if + TARGET_SOFT_FLOAT. + (arm_find_minipool_constant): Correct typo; use GET_CODE to get + the code of value stored in the minipool array. + (arm_add_minipool_constant): Likewise. + +2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * basic-block.h (conflict_graph_enum_fn): K&R fix. + +2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * tree.c (tree_expr_nonnegative_p): New function. + + * tree.h (tree_expr_nonnegative_p): Declare. + + * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to + elide some sign_compare warnings. + (build_conditional_expr): Likewise. + +Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com) + + * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo. + + * i386.md (floathisf2, floathidf2, floathixf2): New patterns. + * i386.c (print_operand): Use the proper suffix for a 387 HImode + operand. Abort if a 387 operand has an unsupported size. + +2000-04-08 Neil Booth <NeilB@earthling.net> + + * cppexp.c (parse_charconst): Null does not end character + constants. + * cppinit.c (ISTABLE): Null character handled as whitespace. + * cpplex.c (null_warning): new function. + (skip_string): Emit warning if nulls encountered. + (_cpp_skip_hspace): Emit warning if nulls encountered. + (_cpp_lex_token): Emit warning if nulls encountered. Drop + them. + * cpp.texi: Update. + +2000-04-07 Richard Henderson <rth@cygnus.com> + + * flow.c (loop_depth): Remove. + (reg_next_use, cc0_live, mem_set_list): Replace with ... + (struct propagate_block_info): New. + (life_analysis): Don't allocate reg_next_use. + (propagate_block_delete_insn): Break out of propagate_block. + Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. + (propagate_block_delete_libcall): Likewise. + (propagate_block): Create a propagate_block_info struct to pass + to subroutines. Allocate one not two temporary regsets. Don't + clobber memory for const calls. Look for clobbers in + CALL_INSN_FUNCTION_USAGE. + (mark_set_regs): Recognize COND_EXEC. + (mark_set_reg): Break out of mark_set_1. + (mark_used_reg): Break out of mark_used_regs. + (mark_used_regs): Recognize COND_EXEC. + (insn_dead_p): Use propagate_block_info struct. + (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. + (find_auto_inc, try_pre_increment_1): Likewise. + (print_rtl_with_bb): Dump regs live at end too. + (count_reg_sets_1): Pass in loop_depth. + (count_reg_sets, count_reg_references): Likewise. + (recompute_reg_usage): Provide it. + +2000-04-07 Richard Henderson <rth@cygnus.com> + + * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H) + not the raw files. + +2000-04-07 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (do_elif): Skip the rest of the line if we're + not going to bother evaluating it. + (skip_if_group): Clear pfile->only_seen_white. Reorder loop + to avoid pointless calls to the lexer. + +Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. + +2000-04-07 Jason Merrill <jason@casey.cygnus.com> + + * calls.c (expand_call): emit_queue if we're trying a sibcall. + +2000-04-07 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove. + +2000-04-06 Geoff Keating <geoffk@cygnus.com> + + * Makefile.in: Build crtbeginS and crtendS like crtbegin and + crtend so they can be multilibbed. + (STAGESTUFF): Remove s-crt and s-crtS. + +2000-04-07 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (alpha_emit_conditional_move): Fail + if we discover we need a pseudo and no_new_pseudos is true. + * config/alpha/alpha.md (ne:DI insn): New. + (trunctfsf2, sne): Emit NE instead of non-canonical LTU. + +2000-04-07 Richard Henderson <rth@cygnus.com> + + * rtl.def (COND_EXEC): New. + * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. + * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. + + * genconfig.c (have_cond_arith_flag): Remove. + (have_cond_exec_flag): New. + (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. + (main): Print HAVE_conditional_execution. + + * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. + (sched_analyze_insn, print_pattern): Likewise. + * reload.c (find_equiv_reg): Likewise. + * rtlanal.c (reg_referenced_p): Likewise. + (note_stores, dead_or_set_regno_p): Likewise. + (reg_overlap_mentioned_p): Rewrite to use a switch. + + * ggc.h (struct rtx_def): Forward declare. + + * print-rtl.c (debug_rtx_range): New. + * rtl.h (debug_rtx_range): Declare. + + * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. + + * gcse.c (gcse_main): Don't rebuild the CFG here. + (delete_null_pointer_checks): Likewise. + * ssa.c (convert_to_ssa): Likewise. + * toplev.c (rest_of_compilation): Do it here instead. Combine + sequential calls to TIMEVAR. Consistently use `insns' instead of + `get_insns()'. Always split insns after reload when optimizing. + + * basic-block.h (merge_blocks_nomove): Declare. + (tidy_fallthru_edge): Declare. + * flow.c (merge_blocks_nomove): Document as merging into previous + blocks. Remove cruft from between blocks; remove all edges out of A. + (tidy_fallthru_edge): Export. + +2000-04-06 Alex Samuel <samuel@codesourcery.com> + + * ssa.c (compute_conservative_reg_partition): Declare with + void arguments. + * toplev.c (clean_dump_file): Remove previously-deleted function + inadvertantly merged back in. + * conflict.c (conflict_graph_add): Use a single call to + htab_find_slot to look up and insert. + +2000-04-06 Richard Henderson <rth@cygnus.com> + + * genrecog.c (*): Rename _last_insn to last_insn. + (make_insn_sequence): Set the position of the peephole2 C test + to be at the last insn. + +2000-04-06 Richard Henderson <rth@cygnus.com> + + * flow.c (compute_flow_dominators): Free worklist. + +2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de> + + * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. + +2000-04-06 Alex Samuel <samuel@codesourcery.com> + + * rtl.h (INSN_P): New macro. + (successor_phi_fn): New typedef. + (for_each_successor_phi): New prototype. + (in_ssa_form): New variable. + (PHI_NODE_P): Likewise. + * flow.c (calculate_global_regs_live): Add to new_live_at_end from + phi nodes in successors. + (mark_used_regs): Add PHI case. + (set_phi_alternative_reg): New function. + (life_analysis): Assert that dead code elimination is not selected + when in SSA form. + * toplev.c (to_ssa_time): New variable. + (from_ssa_time): Likewise. + (compile_file): Zero to_ssa_time and from_ssa_time. + Print time to convert to and from SSA. + (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. + (print_time): Compute percent fraction as integer. + * ssa.c (PHI_NODE_P): Moved to rtl.h. + (convert_to_ssa): Check if we're already in SSA. + Don't eliminate dead code in life_analysis. + Rerun flow and life analysis at bottom. + (eliminate_phi): Use canonical regnos when adding nodes. + (mark_reg_in_phi): New function. + (mark_phi_and_copy_regs): Likewise. + (convert_from_ssa): Rerun life analysis at top. + Use coalesced partition. + Check for removing a phi node at the end of the block. + (compute_coalesced_reg_partition): New function. + (coalesce_regs_in_copies): Likewise. + (coalesce_reg_in_phi): Likewise. + (coalesce_regs_in_sucessor_phi_nodes): Likewise. + (for_each_successor_phi): Likewise. + (rename_context): New struct. + (rename_block): Use a rename_context with rename_insn_1. When + renaming sets of a subreg, emit a copy of the entire reg first. + (rename_insn_1): Treat data as a rename_context *. Save current + insn in set_data. + (rename_set_data): Add field set_insn. + * Makefile.in (HASHTAB_H): Move up in file. + (OBSTACK_H): New macro. + (collect2.o): Use OBSTACK_H in dependencies. + (sdbout.o): Likewise. + (emit-rtl.o): Likewise. + (simplify-rtx.o): Likewise. + (fix-header.o): Likewise. + (OBJS): Add conflict.o. + (conflict.o): New rule. + * basic-block.h: Include partition.h. + (conflict_graph): New typedef. + (conflict_graph_enum_fn): Likewise. + (conflict_graph_new): New prototype. + (conflict_graph_delete): Likewise. + (conflict_graph_add): Likewise. + (conflict_graph_conflict_p): Likewise. + (conflict_graph_enum): Likewise. + (conflict_graph_merge_regs): Likewise. + (conflict_graph_print): Likewise. + (conflict_graph_compute): Likewise. + * conflict.c: New file. + +2000-04-06 Jason Merrill <jason@yorick.cygnus.com> + + * tlink.c (read_repo_files): Don't look for .rpo info for + linker flags. + +Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define. + +Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * config/sh/lib1funcs.asm (___udivsi3_i4): + ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr + only depends on FMOVD_WORKS. + +Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd, + make double constant 8-byte aligned. + +2000-04-06 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32, + movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, + movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. + (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. + Accept storing GENERAL_REGS into offsetable memory. + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow + building a TFmode constant other than 0.0L into GENERAL_REGS. + +2000-04-06 Clinton Popetz <cpopetz@cygnus.com> + + * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER. + +2000-04-06 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete. + (macro_cleanup): No need to cast pbuf->macro. + (collect_expansion): Use _cpp_get_define_token. Goto done if + it returns VSPACE. Remove check for trailing space after + CPP_COMMENT. + (_cpp_create_definition): Don't diddle flags here. Return + directly on error. + (unsafe_chars): Handle c1 being EOF. + (push_macro_expansion): Use unsafe_chars for both accidental-paste + checks. Don't push the buffer till after we're done with + them. + * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. + (PEEKN, FORWARD, GETC, PEEKC): Use them. + (cpp_push_buffer): Don't set new->alimit. Set new->mark + appropriately. + (_cpp_parse_assertion): Don't NUL terminate. + (_cpp_lex_token): Fix -traditional macro handling. Don't skip + hspace before calling _cpp_parse_assertion. Remove all sets + of only_seen_white. Treat '\f' as hspace. Don't do anything + special with '\n' here. + (maybe_macroexpand): Handle T_EMPTY hash entries without + pushing a buffer at all. + (cpp_get_token): Handle clearing only_seen_white here. Handle + incrementing the line number here. Clear + potential_control_macro as well as only_seen_white, if + appropriate. + (cpp_get_non_space_token): Don't eat CPP_POP tokens. + (_cpp_get_define_token): New function, basically like + _cpp_get_directive_token was but doesn't eat horizontal space. + Don't do anything with only_seen_white here. + (_cpp_get_directive_token): Just call _cpp_get_define_token + repeatedly till it returns non-hspace. + + * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. + (conditional_skip, skip_if_group): Return int. + (DIRECTIVE_TABLE): Change origin of all conditional directives + to "COND". + (TRAD_DIRECT_P): New macro. + (_cpp_handle_directive): Use _cpp_get_directive_token. Issue + an error for a bogus directive, unless -lang-asm. Use + TRAD_DIRECT_P. Loop calling handler functions till one returns + zero. + (get_macro_name): Don't diddle flags here. + (do_define): Diddle flags here. Use _cpp_get_directive_token. + Create T_EMPTY nodes for #define macro /* nothing */. + (do_undef): Don't copy the name. Use _cpp_get_directive_token. + Use hp->name when calling pass_thru_directive. + (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): + Return the result of conditional_skip and/or skip_if_group. + Don't call _cpp_output_line_command. + (consider_directive_while_skipping): Use _cpp_get_directive_token. + Issue -Wtraditional warnings as appropriate. Don't complain + about unrecognized directives. If we are to stop skipping, + return the number of the directive that ended the skip. + (skip_if_group): Use _cpp_get_directive_token. Turn off macro + expansion and line commands while skipping. Return the result + of consider_directive_while_skipping, if nonzero. + (do_endif): Just set potential_control_macro here. + (validate_else): Use _cpp_get_directive_token. + (do_assert, do_unassert): Don't save pointers into the + token_buffer across calls to the lexer. Use + _cpp_get_directive_token. + + * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a + pointer, not an offset. Replace 'data', which was a generic + pointer, with 'macro', which points to a struct hashnode. + (cpp_reader): Add 'potential_control_macro' pointer. + * cpphash.h (T_UNUSED): Replace with T_EMPTY. + (CPP_BUF_GET, CPP_FORWARD): Delete. + (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. + (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, + ACTIVE_MARK_P): Update. + (_cpp_get_define_token): New internal function. + * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. + +2000-04-05 Benjamin Kosnik <bkoz@cygnus.com> + + * configure.in: And here. + * configure: Regenerate. + * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if + --enable-libstdcxx-v3 is passed at configure time. + * config.h.in: Regenerate. + +2000-04-05 Mark Mitchell <mark@codesourcery.com> + + * final.c (final): Use xcalloc to allocate line_note_exists. + * function.c (free_after_compilation): Free the temp_slots. + (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots. + (combine_temp_slot): Free temp_slots when they get combined. + (purge_addressof): Fix typo in comment. + * stmt.c (mark_goto_fixup): Mark the fixup itself. + (expand_fixup): Allocate the fixup with ggc_alloc_obj. + + * ggc.h: Include varray.h. + (ggc_pending_trees): Declare. + (ggc_mark_tree_children): Remove declaration. + (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees. + * ggc-common.c (ggc_pending_trees): New variable. + (ggc_mark_roots): Call ggc_mark_trees. + (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all + the ggc_pending_trees. + * Makefile.in (GGC_H): New variable. Use it throughout in place + of ggc.h. + +Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned + GET_MODE_SIZE. + +Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.c (sh_insn_length_adjustment): New function. + * sh-protos.h (sh_insn_length_adjustment): Declare. + * sh.h (ADJUST_INSN_LENGTH): Use it. + +Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com> + + * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes + from the insn where REG_RETVAL is added. + (emit_no_conflict_block): Ditto. + + * md.texi (Standard Names): Clarify when movX is needed. + + * combine.c (simplify_comparison) [MINUS]: Do not replace + all (op (minus A B) 0) with (op A B). + +Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com) + J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (block_lump_real_i4): Add missing clobber of T_REG + (block_lump_real): Likewise. + +2000-04-05 Chris Demetriou <cgd@netbsd.org> + + * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the + remaining non-zero debugging masks. + +Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com) + + * basic-block.h (verify_flow_info): Declare. + (flow_loop_outside_edge_p): Declare. + * flow.c (verify_flow_info): Remove declaration. + (clear_log_links, flow_loop_outside_edge_p): Likewise. + +Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be> + + * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0', + not C++ comments. + +2000-04-05 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1, + snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1, + seqdi_zero_trunc+1): Allow splits only if registers are + different. + +2000-04-04 Ulrich Drepper <drepper@cygnus.com> + + * acconfig.h: Add HAVE_GAS_HIDDEN. + * config.in: Regenerated. + * configure.in: Add test for .hidden pseudo-op in gas. + * configure: Regenerated. + * crtstuff.c: Include auto-host.h. + Emit additional .hidden pseudo-op for __dso_handle if the + assembler knows about it. + +2000-04-04 Philippe De Muyter <phdm@macqel.be> + + * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0, + before freeing argnames. + * cpplib.c (do_ifndef): Cast return value of xstrdup. + +2000-04-05 Michael Meissner <meissner@redhat.com> + + * config/rs6000/rs6000.c (print_operand): Patch from Jonathan + Walton <jonboy@gordian.com> to make memory references with update + work wtih -mregnames. + +2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * regrename.c (regno_first_use_in): Wrap prototype in PARAMS. + (regrename_optimize): Rename variables `def_uses' and + `ext_basic_blocks' to avoid conflicts with similarly named + typedefs in traditional C. + + * calls.c (initialize_argument_information): Fix typo in previous + change. + +2000-04-04 Richard Henderson <rth@cygnus.com> + + * regrename.c (consider_available): Test fixed_regs not + PIC_OFFSET_TABLE_REGNUM. + +2000-04-04 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin, + crtend. + (CRTSTUFF_T_CFLAGS_S): Delete definition. + * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin. + (ENDFILE_LINUX_SPEC): Always use crtend. + * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts. + (powerpc-*-linux-gnu): Likewise. + * configure: Regenerate. + + * config/rs6000/eabi.h: Don't include sysv4.h. + (MULTILIB_DEFAULTS): Don't define. + * config/rs6000/eabiaix.h: Don't include eabi.h. + * config/rs6000/eabile.h: Delete. + * config/rs6000/eabilesim.h: Delete. + * config/rs6000/eabisim.h: Don't include eabi.h. + * config/rs6000/linux.h: Don't include sysv4.h. + (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine. + (MULTILIB_DEFAULTS): Don't redefine. + * config/rs6000/rtems.h: Don't include eabi.h. + * config/rs6000/sol2.h: Don't include sysv4le.h. + * config/rs6000/sysv4le.h: Don't include sysv4.h. + * config/rs6000/t-ppc: Delete. + * config/rs6000/t-ppcgas: Correct comment. + * config/rs6000/t-ppcos: Correct comment. Don't build + multilibs for -fPIC, rather use -fPIC -mstrict-align + as default. + * config/rs6000/t-ppc: Delete. + * config/rs6000/vxppc.h: Don't include sysv4.h. + * config/rs6000/vxppcle.h: Delete. + * configure.in: Use multiple header files for p2pc ELF targets + powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi, + powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu, + powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv, + powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is + always available for these platforms. + +2000-04-04 Richard Henderson <rth@cygnus.com> + + * calls.c (try_to_integrate): Initialize reg_parm_stack_space. + +2000-04-04 Stan Cox <scox@cygnus.com> + + * Makefile.in: Add rules for regrename.o + * regrename.c: New file. + * rtl.h (regrename_optimize): Add prototype. + * toplev.c (rename_registers_dump, flag_rename_registers): New variables + (compile_file, decode_d_option): Add support for -frename-registers. + (rest_of_compilation): Call regrename_optimize. + * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS): + New macros. + +2000-04-04 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * Makefile (gccbug): New target. + (doc): Depend on it. + * gcc.texi (Bugs): Link subnodes. + (gccbug): New node. + * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc. + Document severities, priorities, and classes in bug form. + +2000-04-04 Zack Weinberg <zack@wolery.cumb.org> + + * cpplex.c (trigraph_map, speccase): Combine into single + table, chartab. + (NORMAL, NONTRI): New macros. + (_cpp_read_and_prescan): Change to use unified table. Use + is_hspace to test for whitespace. + + * dbxout.c (CONTIN): If it doesn't have to do anything, give it a + definition that doesn't provoke the "empty body in an + if-statement" warning. + +2000-04-04 Clinton Popetz <cpopetz@cygnus.com> + + * builtins.c (expand_builtin_strlen): Force the source to + be a memory address. + +2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace. + +Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE, + ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants. + (ECF_IS_CONST): Rename to ECF_CONST. + (special_function_p): Make static, change interface. + (flags_from_decl_or_type, try_to_integrate): Break out from ... + (expand_call) ... here; convert number of variables to flags. + (emit_library_call_vlue_1): Likewise. + (setjmp_call_p): New function. + (initialize_argument_information): Accepts flags as argument; + return flags. + (precompute_arguments): Likewise. + * tree.h (special_function_p): Remove. + (setjmp_call_p): Add prototype. + +2000-04-04 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin + so that addresses are offsetable by up to 16 bytes. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for + non-optimizing TARGET_ARCH32 in DF or DI modes because it is not + offsetable. + + * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern. + (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64. + (movsf): Don't force any constant to memory if target is integer + hard register. + Move fp_zero_operand check below the const0_rtx check. + (movtf): Likewise. Also allow fp_zero_operand for stores into + memory. + (movdf): Likewise. Also allow fp_zero_operand for stores into + memory and into integer hard registers. + (clear_df, clear_dfp, movdf_const_intreg_sp32, + movdf_const_intreg_sp64): Remove. + (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and + conditions. + (movdf_no_e_insn_v9_sp32): New pattern. + (movdf_insn_v9only): Remove. + (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns. + (movdf_insn_sp64): Remove. + (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns. + (movdf_no_e_insn_sp64): Allow storing 0.0 into memory. + (following splits): Rewrite conditions. Add two new splits + for storing 0.0 into memory and registers. + (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove. + (movtf_insn_sp32): Redo constraints and conditions. + (movtf_insn_vis_sp32): New pattern. + (movtf_no_e_insn_sp32): Redo constraints and conditions. + (movtf_insn_hq_sp64): Likewise. + (movtf_insn_hq_vis_sp64): New pattern. + (movtf_insn_sp64): Redo constraints and conditions. + (movtf_insn_vis_sp64): New pattern. + (movtf_no_e_insn_sp64): Redo constraints and conditions. + (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers + or memory. + * config/sparc/sparc.c (sparc_override_options): Assume v9 if either + -mvis or -m64 to take down the number of various reload patterns. + +Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com) + + * pa/pa-64.h: New file. + * pa/pa64-regs.h: New file. + * pa/pa64-start.h: New file. + * pa/t-pa64: New file. + * pa/xm-pa64hpux.h: New file. + +2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * sparc.c (output_restore_regs): Prototype. + (sparc_emit_float_lib_cmp): Constification. + + * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise. + + * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify): + Prototype. + + * simplify-rtx.c (entry_and_rtx_equal_p): Constification. + (get_value_hash, hash_rtx): Likewise. + + * ssa.c (compute_conservative_reg_partition): Prototype. + + * tree.c (mark_hash_entry): Prototype. + +2000-04-03 Zack Weinberg <zack@wolery.cumb.org> + + * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING. + * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0. + * i386.md (call_value, call_value_pop): Remove unused variable 'addr'. + + * gcc.c (C specs): Pass -fno-show-column to the preprocessor. + * objc/lang-specs.h: Likewise. + +2000-04-03 Neil Booth <NeilB@earthling.net> + + * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR + and SYNTAX_ERROR2. Replace `' in messages with ''. + (op_to_str): Make re-entrant. + (_cpp_parse_expr): Implement new error macros. Use | rather + than || to logically or 2 boolean integers. Simply expression + checking we have a left operand iff needed. + +2000-04-03 Nick Clifton <nickc@cygnus.com> + + * Makefile.in (diagnostic.o): Depend upon diagnostic.c + +2000-04-03 Philip Blundell <philb@gnu.org> + + * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos. + +2000-04-03 Felix Lee <flee@cygnus.com> + + * fixinc/server.c (find_shell): New function. Avoid $SHELL. + (run_shell): Use it. + +2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk> + + * Makefile.in (stmp-int-hdrs): Make include subdir here... + (stmp-fixproto): ...rather than here. + +Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com> + + * pa.c (print_operand): Compute 'base' only inside the code paths + that use it. + +2000-04-03 Geoffrey Keating <geoffk@cygnus.com> + + * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than + CEIL_DIV_EXPR. + +2000-04-03 Philipp Thomas <pthomas@suse.de> + + * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo. + +Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu> + + * Makefile.in (alias.o): Depend on $(TREE_H). + +2000-04-02 Zack Weinberg <zack@wolery.cumb.org> + + * cppinit.c (cpp_start_read): Turn off -Wtraditional if + processing C++. + * cpplib.c (_cpp_handle_directive): Improve warnings for + traditional C and indented directives. + + * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex, + fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap, + fixinc/inclhack.def: Indent the # of #include_next one space. + * cp/rtti.c: Un-indent #if and #endif. + + * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a + syntax error, but an error has already been printed. + * cpplex.c (_cpp_parse_assertion): Give a more specific error + message when called with nothing remaining on the line. + (_cpp_lex_token): If _cpp_parse_assertion fails, return an + OTHER token, not an ASSERTION. + * cpplib.c (do_assert): When we create a 'base' node, clear + its aschain pointer. + +2000-04-02 Neil Booth <NeilB@earthling.net> + + * cppexp.c: New typedef op_t. struct operation and struct + token updated to use it. + (op_to_str): New function. + (_cpp_parse_expr): Error messages modified to use op_to_str. + +2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node + before checking MUST_PASS_IN_STACK. + +2000-04-02 Neil Booth <NeilB@earthling.net> + + * cppexp.c: New FINISHED dummy token. Combine operator initial + flags and initial priority into a single constant. New + EQUALITY macro. New operator flag SHORT_CIRCUIT. + (_parse_cpp_expr): Implement new constants. Take left operand + checks out of reduction loop. Handle SHORT_CIRCUIT. End of + parse indicated by reducing FINISHED token. Remove new lines + from cpp_error messages. + +2000-04-01 Mark Mitchell <mark@codesourcery.com> + + * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the + permanent obstack. + +2000-04-01 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c: Include symcat.h. Add 'origin' field to struct + directive. Add origin values to DIRECTIVE_TABLE. Generate + the strings and function names on the fly. Take the #sccs + entry out of the table if SCCS_DIRECTIVE is not defined. + (_cpp_handle_directive): Decide if the # was at the beginning + of the line here. Issue -pedantic warnings for extended + directives here. Warn about K+R directives with the # + indented, and C89/extended directives with the # not indented, + here. + (do_import, do_include_next, do_warning, do_ident, do_sccs, + do_assert, do_unassert): Don't issue pedantic warning here. + + * cpphash.h: Add CPP_WTRADITIONAL macro. + * cpplib.h (struct cpp_options): Rename warn_stringify to + warn_traditional; update comments. + * cppinit.c (handle_option): Set warn_traditional not + warn_stringify. + * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with + CPP_WTRADITIONAL (pfile). + * cpplex.c (_cpp_lex_token): Don't decide if directives should + be ignored in -traditional mode here. + + * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them + to initialize speccase[] and trigraph_map[]. Delete all + references to pfile->input_speccase. Always treat '?' as a + special character. Remove table-initialization code from + _cpp_init_input_buffer. + + * cpplib.h (struct cpp_reader): Remove input_speccase field. + * cppinit.c (cpp_cleanup): Don't free input_speccase. + +2000-04-01 Richard Henderson <rth@cygnus.com> + + * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once. + (mostlyclean): Likewise. + + * toplev.c (rtl_dump, jump_opt_dump, etc): Remove. + (struct dump_file_info, enum dump_file_index, dump_file): New. + (open_dump_file): Take a dump_file_index not a suffix, and a decl + not a string. Clean out file if we havn't yet done so. Do nothing + if the dump isn't enabled. + (close_dump_file): Do nothing if the dump isn't open. Dump + graph data if requested. + (dump_rtl, clean_dump_file): Remove. + (compile_file): Don't clean the dump files. Only finalize .bp dump + if flag_test_coverage or flag_branch_probabilities. Only finalize + .combine dump if optimizing. Iterate over dump_file to finalize the + graph dumps. + (rest_of_compilation): Update for open_dump_file/close_dump_file. + Convert all uses of dump_rtl. + (decode_d_option): Iterate over dump_file to implement 'a' and to + locate pass-specific dumps. + +2000-04-01 Neil Booth <NeilB@earthling.net> + + * cppexp.c: Redefine priority constants. + (_cpp_parse_expr): Replace left and right priority scheme with + single priority logic. Move LOGICAL to same place as COMPARE. + Remove bogus check for multiple unary +/- operators. + +2000-04-01 Neil Booth <NeilB@earthling.net> + + * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed + within the switch statement. Binary operations break out of + the switch naturally. '(' tokens handled by forcing + immediate shift. ')' handled by forcing immediate reduce to + the previous '('. New error messages. + +2000-03-31 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low + part', it's already in use. Use %K instead. Add a return at the + end of what is now %K. + * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. + +Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * builtins.c (expand_builtin_apply): Pass proper parameters to + allocate_dynamic_stack_space. + * calls.c (emit_call_1): Do not adjust stack pointer for SIB, + update stack_pointer_delta; do not update arg_size_so_far. + (compute_argument_block_size): Use stack_delta instead of + stack_pointer_pending and arg_size_so_far. + (expand_call): Add sanity checking for stack_pointer_delta; + save and restore stack_pointer_delta for SIB, use + stack_pointer_delta for alignment; do not update arg_space_so_far. + (emit_library_call_value): Use stack_pointer_delta for alignment. + (store_one_arg): Do not update arg_space_so_far. + * explow.c (adjust_stack, anti_adjust_stack): Update + stack_pointer_delta. + (allocate_dynamic_stack_space): Add sanity checking for + stack_pointer_delta. + * expr.c (init_expr, clear_pending_stack_adjust): Clear + stack_pointer_delta. + (emit_push_insn): Update stack_pointer_delta. + * function.h (struct expr_status): Add x_stack_pointer_delta; + remove x_arg_space_so_far. + (arg_space_so_far): Remove. + (stack_pointer_delta): New macro. + +2000-03-31 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h: Merge struct cpp_options into struct cpp_reader. + Reorder struct cpp_options and struct cpp_reader for better + packing. Replace CPP_OPTIONS macro with CPP_OPTION which + takes two args. Change all 'char' flags to 'unsigned char'. + Move show_column flag into struct cpp_options. Don't + prototype cpp_options_init. + * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, + cppinit.c, cpplex.c, cpplib.c: + Replace CPP_OPTIONS (pfile)->whatever with + CPP_OPTION (pfile, whatever), and likewise for + opts = CPP_OPTIONS (pfile); ... opts->whatever; + + * cppinit.c (merge_include_chains): Take a cpp_reader *. + Extract CPP_OPTION (pfile, pending) and work with that + directly. + (cpp_options_init): Delete. + (cpp_reader_init): Turn on on-by-default options here. + Allocate the pending structure here. + (cl_options, enum opt_code): Define these from the same table, + kept in a large macro. Add -fshow-column and -fno-show-column + options. + + * cpperror.c (v_message): If show_column is off, don't print + the column number. + + * cppmain.c: Update for new interface. + * fix-header.c: Likewise. + +2000-03-30 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new + definition. + * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that + are passed to any invocation of AR_FOR_TARGET. + (AR_CREATE_FOR_TARGET): New macro. + (AR_EXTRACT_FOR_TARGET): New macro. + (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET, + AR_EXTRACT_FOR_TARGET. + (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET + in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and + `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and + AR_EXTRACT_FOR_TARGET to sub-makes. + +2000-03-31 Neil Booth <NeilB@earthling.net> + + * cppexp.c: Delete SKIP_OPERAND. Correct priority + PAREN_INNER_PRIO. + (_cpp_parse_expr): Check for multiple unary +/- operators. + Correct priorities of ':' and '?'. Treat ')' as having a + value. Ensure conditional expression is not void. + +2000-03-31 Mark Mitchell <mark@codesourcery.com> + + * alias.c (canon_rtx): Make it global. + (rtx_equal_for_memref_p): CONST_INT equality is now pointer + equality. + * cse.c (struct table_elt): Add canon_exp. + (insert): Clear it. + (invalidate): Canonicalize expressions only once. + * rtl.h (canon_rtx): Declare. + +2000-03-30 Mark Mitchell <mark@codesourcery.com> + + * Makefile.in (emit-rtl.o): Depend on HASHTAB_H. + * alias.c (reg_known_value): Add comments. + (init_alias_analysis): Likewise. + * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same + address. + (cse_basic_block): Fix typo in comment. + * emit-rtl.c: Include hashtab.h. + (const_int_htab): New variable. + (const_int_htab_hash): New function. + (const_int_htab_eq): Likewise. + (rtx_htab_mark_1): Likewise. + (rtx_htab_mark): Likewise. + (gen_rtx_CONST_INT): Cache all CONST_INTs. + (unshare_all_rtx): Fix formatting. + (init_emit_once): Initialize const_int_htab. + * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same + address. + * rtl.texi: Document the fact that all CONST_INTs with the same + value are shared. + +2000-03-30 Richard Henderson <rth@cygnus.com> + + * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits. + +2000-03-30 Zack Weinberg <zack@wolery.cumb.org> + + * configure.in: Comment out --enable-c-cpplib stanza. + * configure: Regenerate. + +Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (store_constructor): Properly compute displacement and + alignment when offset is variable. + + * expmed.c (store_bit_field, store_fixed_bit_field): Fix more + cases of alignment in bytes. + +Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com) + + * c-parse.in (cast_expr): Move change from March 21 into c-parse.in + since it is used to generate c-parse.y. + * objc-parse.c, objc-parse.y: Regenerated. + + * function.c (expand_function_end): Pass alignment argument to + emit_block_move in bits, not bytes. + +Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (move_by_pieces_ninsns): Fix one more missing align + correction. + + * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits. + + * calls.c (expand_call): Pass bit alignment to mark_reg_pointer. + * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. + * function.c (assign_parms): Likewise. + * integrate.c (expand_inline_function): Likewise. + * stmt.c (expand_decl): Likewise. + (copy_rtx_and_substitute): Likewise. + * expr.c (expand_expr, expand_expr_unaligned): Likewise. + (clear_by_pieces): Fix error in last change. + * emit-rtl.c (init_emit): Set known registers alignment in bits. + * function.h (regno_pointer_align): Now unsigned. + * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN + is in bits. + * config/i386/i386.c (aligned_operand): Likewise. + * config/sparc/sparc.c (mem_min_alignment): Likewise. + * config/alpha/alpha.c (aligned_memory_operand): Likewise. + (unaligned_memory_operand): Likewise. + (alpha_expand_block_move, alpha_expand_block_clear): Likewise. + Also make alignments and sizes unsigned and some whitespace cleanup. + (alpha_va_start): Do nothing if VALIST's type is error_mark_node. + + * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst. + (expand_builtin_apply): Pass alignment to emit_block_move in bits. + (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. + (expand_builtin_memset): Likewise, but to clear_storage. + * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces. + (restore_fixed_argument_area): Likewise. + (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field. + (load_register_parameters): Likewise, to emit_group_load. + (expand_call): Likewise, to emit_group_store and emit_block_move. + (emit_library_call_value_1): Likewise, to emit_block_move. + (store_one_arg): Likewise, and to emit_push_insn. + * expmed.c (extract_bit_field): Alignment is in bits, not bytes. + (extract_fixed_bit_field, extract_split_bit_field): Likewise. + * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise. + (emit_block_move, emit_group_load, emit_group_store): Likewise. + (clear_by_pieces, clear_storage, emit_push_insn): Likewise. + (expand_assigment, store_expr, store_constructor_field): Likewise. + (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise. + (store_constructor, store_field, get_inner_reference): Likewise. + Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT. + (expand_expr, case COMPONENT_REF): Likewise. + (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes + and positions; reindent code. + * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned. + * function.c (purge_addressof_1): Pass bit align to store_bit_field. + (assign_parms): Likewise to emit_group_store. + * optabs.c (prepare_cmp_insn): Alignment is in bits. + (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned. + * stmt.c (expand_value_return): Pass align in bits to emit_group_load. + (expand_return): Likewise to {extract,store}_bit_field. + * stor-layout.c (get_mode_alignment): Minor cleanup. + * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits. + * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise. + +2000-03-29 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h: Undo effects of previous delta: + (ASM_SPEC): Do not define. + (SUBTARGET_EXTRA_ASM_SPEC): Do not define. + + * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix + typo. + +2000-03-29 Zack Weinberg <zack@wolery.cumb.org> + + * cppinit.c (cpp_start_read): Call initialize_dependency_output + only after reading in the primary source file. + +2000-03-29 Geoff Keating <geoffk@cygnus.com> + + * c-common.c (c_common_nodes_and_builtins): The first parameter to + __builtin_va_start and __builtin_va_copy is now either a 'va_list' + or a reference to a va_list. + * builtins.c (stabilize_va_list): Simplify now we don't have to + work around C array address decay. + * c-typeck.c (convert_for_assignment): Handle assignment to + a reference parameter by taking the address of the RHS. + * ginclude/stdarg.h (va_start): Don't take address of first parameter. + (va_copy): Likewise. + (__va_copy): Likewise. + * ginclude/varargs.h (va_start): Likewise. + (__va_copy): Likewise. + +Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com) + + * i386/djgpp.h: Remove extraneous "+". + + * stmt.c (stmt_loop_nest_empty): Fix thinko in last change. + + * calls.c (expand_call): Fix typo in last change. + +2000-03-29 Jason Merrill <jason@casey.cygnus.com> + + * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't + been expanded. + +Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stor-layout.c (bit_from_pos, byte_from_pos): New functions. + (pos_from_byte, pos_from_bit, normalize_offset): Likewise. + (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them. + * tree.c (bit_position, byte_position): Likewise. + * tree.h: Declare new functions. + +2000-03-29 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c: Minor formatting changes/ + * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not + already defined. + (ASM_SPEC): Define if not already defined. + +2000-03-29 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (cpp_read_file): Don't pass zero-length string to + _cpp_calc_hash. + +2000-03-29 Jakub Jelinek <jakub@redhat.com> + + * dwarf2out.c (gen_enumeration_type_die): If enum has a negative + value, don't output it as unsigned. + +Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) + + * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. + +2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c (c_common_nodes_and_builtins): Don't special case + cplus_mode when declaring builtin bzero/bcmp, always avoid + prototype arguments. + +2000-03-29 Bruce Korb <bkorb@gnu.org> + + * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" + to a non-file + +Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz> + + Convert ACCUMULATE_OUTGOING_ARGS to an expression. + * calls.c (PUSH_ARGS_REVERSED) Change to expression. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. + (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. + (save_fixed_argument_area, restore_fixed_argument_area): + conditionize by #ifdef REG_PARM_STACK_SPACE only. + (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS + to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. + (precompute_register_parameters): Avoid #ifdefs on + ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. + (stire_one_args): Likewise. + (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. + (emit_library_call_value_1): Likewise. + (compute_argument_block_size): Align to STACK_BOUNDARY only for + ACCUMULATE_OUTGOING_ARGS. + * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default + value. + (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. + (use_crosses_set_p): Likewise. + * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to + #define ACCUMULATE_OUTGOING_ARGS 1. + * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS + frames. + * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New + constants. + (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. + (TARGET_SWITCHES): Add push-args, no-push-args, + accumulate-outgoing-args and no-accumulate-outgoing-args. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. + * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. + (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS + and PUSH_ROUNDING. + (emit_push_insn): Likewise. + * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. + (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. + * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. + (STACK_DYNAMIC_OFFSET): Define correctly for both + ACCUMULATE_OUTGOING_ARGS and normal mode. + * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. + * tm.texi (PUSH_ARGS): Document. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. + +Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz> + + * flags.h (flag_optimize_sibling_calls): Declare. + * calls.c (expand_call): Fail sibcall when + !flag_optimize_sibling_calls + * invoke.texi (flag_optimize_sibling_calls): Document. + * toplev.c (flag_optimize_sibling_calls): New global variable. + (f_options): Add flag_optimize_sibling_calls. + (rest_of_compilation): Conditionize + optimize_sibling_and_tail_recursive_calls by + flag_optimize_sibling_calls. + (main): Set flag_optimize_sibling_calls for -O2. + * stmt.c (expand_return): Conditionize tail recursion by + flag_optimize_sibling_calls. + +2000-03-29 Richard Henderson <rth@cygnus.com> + + * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. + (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. + +2000-03-29 Nathan Sidwell <nathan@codesourcery.com> + + * except.c (add_eh_table_entry): Mark type_info's as referenced. + +2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi + is given. + * config/rs6000/aix43.h (CPP_SPEC): Likewise. + * config/rs6000/rs6000.h (CPP_SPEC): Moved to... + * config/rs6000/aix.h: then modified likewise. + +2000-03-28 Richard Henderson <rth@cygnus.com> + + * rtl.h: Redistribute enum reg_note documentation. + Kill trailing whitespace. + * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. + Kill trailing whitespace. + +2000-03-28 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (hash_IHASH): Just return i->hash. + (cpp_included): Set dummy.hash using _cpp_calc_hash. Use + htab_find_with_hash. + (cpp_read_file): Likewise. + (find_include_file): Likewise. Properly initialize + ih->nshort. Share ih->name and ih->nshort if possible. + * cpphash.c (_cpp_calc_hash): New function. + (hash_HASHNODE): Just return h->hash. + (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use + htab_find_with_hash. + * cpphash.h: Prototype _cpp_calc_hash. + * cppinit.c (initialize_builtins): Provide a valid hash + to _cpp_make_hashnode, using _cpp_calc_hash. + + * cpphash.c (collect_expansion): # is not a special character + in object-like macros. In -traditional mode, /**/ is not + token paste at the beginning or end of the line. + * cpplib.c (do_include, do_import, do_include_next): If + parse_include fails, return immediately. + +2000-03-28 Jason Merrill <jason@casey.cygnus.com> + + * config/arm/arm.md (return peepholes): Update to reflect the new + call insn patterns. + * config/arm/arm.c (arm_volatile_func): Also check + current_function_nothrow. + (output_return_instruction, output_func_prologue): Use it. + (arm_output_epilogue, arm_expand_prologue): Likewise. + +2000-03-27 Tom Tromey <tromey@cygnus.com> + + * gcc.c (handle_braces): In {x*...} case, break out of loop if + switch is found. + +Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (store_constructor): SIZE now signed. + For EXPR_SIZE, don't evaluate size; just needed if constant. + * fold-const.c (fold): Fix a number of cases when folded tree is + wrong type. + * function.c (flush_addressof): Reenable. + * tree.h (flush_addressof): Likewise. + * toplev.c (independent_decode_option): Look at strings_processed. + * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. + +Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz> + + * sibcall.c (indentify_call_return_value): Find last call in the chain; + Allow stack adjustment after function call. + + * regmove.c (struct csa_memlist): Make mem field rtx *. + (record_one_stack_ref): Accept rtx * instead of rtx as parameter. + (try_apply_stack_adjustment): Replace whole MEM rtx. + (combine_stack_adjustments_for_block): Update calls + to record_one_stack_ref. + +2000-03-28 Neil Booth <NeilB@earthling.net> + + * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with + '\\' rather than a null character, so nulls are not special. Fix + "\\\n" handling in end-of-buffer conditions. Use trigraph map to + speed trigraph conversion. + (_cpp_init_input_buffer): Initialize trigraph map. + +2000-03-27 Alan Modra <alan@linuxcare.com.au> + + * config/i386/i386.c (output_387_binary_op): Correct intel + mode assembly output, and add spaces after commas in AT&T + output. Correct Unixware assembler comment. Document input + constraints. Comment fp operations. Reduce profligate buffer + size. Remove extraneous abort. Localize temp var. + (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. + (output_fix_trunc): Add spaces after commas in assembly output. + +2000-03-27 Richard Henderson <rth@cygnus.com> + + * i386-protos.h (ix86_match_ccmode): Declare. + * i386.c (ix86_match_ccmode): New. + (ix86_expand_fp_compare): Update for pattern renames. + (ix86_expand_strlensi_unroll_1): Likewise. + * i386.h (EXTRA_CC_MODES): Add CCZ. + (SELECT_CC_MODE): Use it for EQ/NE zero. + * i386.md (cmpsi_ccz_1): New. + (cmpqi_ccz_1): New. + (*testsi_ccz_1): New. + (testqi_ccz_1): New. + (cmpsi_ccno_1): Rename from cmpsi_0. + (testsi_ccno_1): Rename from testsi_1. + (testqi_ccno_1): Rename from testqi_1. + (*testqi_ext_ccz_0): Rename from testqi_ext_0. + (testqi_ext_ccno_0): Rename from *testqi_ext_1. + (*cmphi_0): Use ix86_match_ccmode. + (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. + (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. + (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. + (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. + (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. + (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. + (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. + (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. + (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. + (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. + (appropriate peepholes): Likewise. + (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. + (*subsi_3, *subhi_3, *subqi_3): Remove. + (*negdi2_1+1 splitter): Use CCZ for neg patterns. + (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. + (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. + (*neghi2_cmpz, *negqi2_cmpz): Similarly. + (x86_shift_adj_1): Use CCZ. + (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. + +2000-03-27 Stan Cox <scox@cygnus.com> + + * resource.h (mark_resource_type): New. + * resource.c (find_dead_or_set_registers, mark_target_live_regs, + find_free_register): Use mark_resource_type. + (mark_set_resources): Change include_delayed_effects + to mark_resource_type. + * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, + redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): + Use mark_resource_type. + +2000-03-27 Richard Henderson <rth@cygnus.com> + + * i386.md (call_pop_0, call_value_pop_0): New. + (call_pop_1): Remove constraint from unused arg. Support sibcalls. + (call_value_pop_1): Likewise. + (call_0, call_value_0): New. + (call_1, call_value_1): Remove constraint from unused arg. + +2000-03-27 Nick Clifton <nickc@cygnus.com> + + * invoke.texi (Spec Files): Document new spec % command created by + Tom Tromey's recent patch. + +2000-03-27 Jakub Jelinek <jakub@redhat.com> + + * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD + if not defined. + +Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (expand_assignment): Fix typo in last change. + + * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. + +Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * c-convert.c (convert): Return if output or input type is ERROR_MARK. + * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI + and DECL_INLINE if FUNCTION_DECL. + (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. + (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. + Use DECL_WEAK, not DECL_RESULT, to flag for already seen. + (combine_parm_decls): Likewise. + * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. + * print-tree.c (print_node): Likewise. + Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and + DECL_TRANSPARENT_UNION on proper decl types. + Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. + * stor-layout.c (layout_decl): Only check DECL_PACKED and + DECL_BIT_FIELD of FIELD_DECL. + * tree.h (DECL_RESULT_FLD): New macro. + + * expr.c (expand_assignment): Add code to handle variable-sized + BLKmode case. + +2000-03-26 Richard Henderson <rth@cygnus.com> + + * calls.c (expand_call): Pass parms not original exp to + optimize_tail_recursion. Mind return value instead of looking + for a barrier. + * stmt.c (optimize_tail_recursion): Take parameter list, not entire + call_expr. Move checks for call_expr and current_function_decl ... + (expand_return): ... here. + +2000-03-26 Tom Tromey <tromey@cygnus.com> + + * gcc.c (handle_braces): Recognize `%{<S}' construct. + (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New + defines. + (process_command): Use them. + (check_live_switch): Likewise. + (give_switch): Skip ignored switches. + +2000-03-26 Jan Hubicka <jh@suse.cz> + + * jump.c (jump_optimize_1): Fix typo in elide optimizations + for minimal jump pass test. + +2000-03-26 Mark Mitchell <mark@codesourcery.com> + + * integrate.c (function_cannot_inline_p): Do inline functions that + return `void'. + +Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stor-layout.c (layout_type, set_sizetype): early_type_list is + now a list of TREE_LIST entries, not types. + * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. + + * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. + * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and + int_bit_position. + * config/mips/mips.c (function_arg): Likewise; also remove cast + and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. + (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. + * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. + * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. + (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. + (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. + (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. + (struct mips_arg): arg_number, arg_words, fp_arg_words, and + num_adjusts now unsigned. + (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. + * config/sparc/sparc.c (struct function_arg_record_value_parms): + NREGS now unsigned. + (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT + as is BITPOS variable; use host_integerp and int_bit_position. + (function_arg_record_value_2): Likewise. + (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. + Variable REGNO now unsigned. + (function_arg_record_value): NREGS now unsigned. + +2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk> + + * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. + +Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * Rework fields used to describe positions of bitfields and + modify sizes to be unsigned and use HOST_WIDE_INT. + * alias.c (reg_known_value_size): Now unsigned. + * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. + (really_start_incremental_init): Use bitsize_zero_node. + (push_init_level, pop_init_level, output_init_element): Likewise. + Use bitsize_unit_node and bitsize_one_node. + (output_pending_init_elements, process_init_element): Likewise. + * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. + (make_extraction): Position and length HOST_WIDE_INT and unsigned + HOST_WIDE_INT, respectively. + (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. + (num_sign_bit_copies): Returns unsigned. + BITWIDTH now unsigned; rework arithmetic. + Remove recursive call from arg to MAX. + (combine_instructions, init_reg_last_arrays): NREGS now unsigned. + (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): + REGNO now unsigned. + (set_nonzero_bit_and_sign_copies): NUM now unsigned. + (find_split_point, expand_compound_operation, make_extraction): LEN + now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. + (make_field_assignment): Likewise. + (combine_simplify_rtx): Add cast. + (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. + (force_to_mode): WIDTH now unsigned; add cast. + (if_then_else_cond): SIZE now unsigned. + (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. + (extended_count): Now returns unsigned. + (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. + Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. + (simplify_comparison): MODE_WIDTH now unsigned. + (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. + (mark_used_regs_combine): Likewise; rework arithmetic. + (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. + (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. + (record_promoted_value): REGNO now unsigned. + (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. + (get_last_value): REGNO now unsigned. + (use_crosses_set_p): REGNO and ENDREGNO now unsigned. + (reg_dead_regno, reg_dead_endregno): Now unsigned. + (remove_death): Arg REGNO now unsigned. + (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. + (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO + now unsigned. + * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. + * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. + (struct cse_reg_info): REGNO now unsigned. + (cached_regno): Now unsigned. + (REGNO_QTY_VALID_P): Add cast. + (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. + (remove_invalid_regs): Likewise. + (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned + as are variables END and I. + (get_cse_reg_info, insert): Likewise. + (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. + (canon_hash): Likewise. + (insert_regs, lookup_for_remove): REGNO now unsigned. + (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. + New variable RN. + * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. + * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. + * emit-rtl.c (subreg_realpart_p): Add cast. + (operand_subword): Arg I is now unsigned as is var PARTWORDS. + (operand_subword_force): Arg I is now unsigned. + * except.c (eh_regs): Variable I is now unsigned. + * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. + * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; + length is unsigned HOST_WIDE_INT; likewise for internal variables. + (store_split_bit_field, extract_fixed_bit_field): Likewise. + (extract_split_bit_field, store_bit_field, extract_bit_field): + Likewise. + * expr.c (store_constructor_fields, store_constructor, store_field): + Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. + (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. + (do_jump): Likewise. + (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): + MAX_SIZE is now unsigned. + (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. + (emit_group_store): Likewise. + (emit_move_insn): I now unsigned. + (store_constructor): Use host_integerp, tree_low_cst, and + bitsize_unit_node. + (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. + Rework all calculations to use trees and new fields. + * expr.h (promoted_input_arg): Regno now unsigned. + (store_bit_field, extract_bit_field): Adjust types of pos and size. + (mark_seen_cases): Arg is HOST_WIDE_INT. + * flow.c (verify_wide_reg_1): REGNO now unsigned. + * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; + precisions and alignments are unsigned. + (optimize_bit_field_compare, fold_truthop): Likewise. + (int_const_binop): Adjust threshold for size_int_type_wide call. + (fold_convert): Likewise. + (size_int_type_wide): Make table larger and fix thinko that only + had half of table used. + (all_ones_mask_p, fold): Precisions are unsigned. + * function.c (put_reg_info_stack): REGNO is unsigned. + (instantiate_decl): Size is HOST_WIDE_INT. + (instantiate_virtual_regs): I is unsigned. + (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. + (promoted_input_arg): REGNO is unsigned. + * function.h (struct function): x_max_parm_reg is now unsigned. + * gcse.c (max_gcse_regno): Now unsigned. + (struct null_pointer_info): min_reg and max_reg now unsigned. + (lookup_set, next_set): REGNO arg now unsigned. + (compute_hash_table): REGNO and I now unsigned. + (handle_avail_expr): regnum_for_replacing now unsigned. + (cprop_insn): REGNO now unsigned. + (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. + * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. + * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. + * hard-reg-set.h (reg_class_size): Now unsigned. + * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. + * jump.c (mark_modified_reg): I now unsigned; add cast. + (rtx_equal_for_thread_p): Add cast. + * loop.c (max_reg_before_loop): Now unsigned. + (struct_movable): REGNO now unsigned. + (try_copy_prop): REGNO arg unsigned. + (regs_match_p): XN and YN now unsigned. + (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. + (strength_reduce): Likewise; NREGS also unsigned. + (first_increment_giv, last_increment_giv unsigned): Now unsigned. + * loop.h (struct iv_class): REGNO now unsigned. + (max_reg_before_loop, first_increment_giv, last_increment_giv): + Now unsigned. + * machmode.h (mode_size, mode_unit_size): Now unsigned. + (mode_for_size, smallest_mode_for_size): Pass size as unsigned. + * optabs.c (expand_binop): I and NWORDS now unsigned. + (expand_unop): I now unsigned. + * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do + print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. + * real.c (significand_size): Now returns unsigned. + * real.h (significand_size): Likewise. + * regclass.c (reg_class_size): Now unsigned. + (choose_hard_reg_mode): Both operands now unsigned. + (record_reg_classes): REGNO and NR now unsigned. + (reg_scan): NREGS now unsigned. + (reg_scan_update): old_max_regno now unsigned. + (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. + * reload.c (find_valid_class): BEST_SIZE now unsigned. + (find_dummy_reload): REGNO, NWORDS, and I now unsigned. + (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. + Likewise for variable R. + (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, + as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. + (find_equiv_reg): Add casts. + (regno_clobbered_p): Arg REGNO now unsigned. + * reload.h (struct reload): NREGS now unsigned. + (refers_to_regno_for_reload_p): Regno args are unsigned. + (regno_clobbered_p): Likewise. + * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. + (compute_use_by_pseudos): REGNO now unsigned. + (find_reg): I and J now unsigned, new variable K, and change loop + variables accordingly; THIS_NREGS now unsigned. + (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. + (spill_hard_reg): REGNO arg now unsigned; add casts. + (forget_old_reloads_1): REGNO, NR, and I now unsigned. + (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. + (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, + END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. + (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. + (choose_reload_regs): MAX_GROUP_SIZE now unsigned. + (emit_reload_insns): REGNO now unsigned. + (reload_cse_move2add): Add cast. + (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO + and rework loop. + * resource.c (mark_referenced_resources, mark_set_resources): New + variable R; REGNO and LAST_REGNO now unsigned. + (mark_target_live_regs): J and REGNO now unsigned. + * rtl.c (mode_size, mode_unit_size): Now unsigned. + * rtl.h (union rtunion_def): New field rtuint. + (XCUINT): New macro. + (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. + (operand_subword, operand_subword_force): Word number is unsigned. + (choose_hard_reg_mode): Operands are unsigned. + (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. + (find_regno_note, find_regno_fusage, replace_regs): Likewise. + (regno_use_in, combine_instructions, remove_death): Likewise. + (reg_scan, reg_scan_update): Likewise. + (extended_count): Return is unsigned. + * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, + INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. + (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. + (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. + (reg_reg_last_1): FIRS and LAST now unsigned. + (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. + (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO + now unsigned. + (find_regno_note, regno_use_in): Arg REGNO now unsigned. + (find_regno_fusage): Likewise; also var REGNOTE now unsigned. + (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. + (replace_regs): Arg NREGS now unsigned. + * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. + * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. + (simplify_binary_operation): Likewise. + (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and + THIS_LAST now unsigned. + (cselib_record_set): Add cast. + * ssa.c (ssa_max_reg_num): Now unsigned. + (rename_block): REGNO now unsigned. + * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; + sizes now unsigned. + (all_cases_count): Just return -1 not -2. + COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. + Rework tests to use trees whenever possible. + Use host_integerp and tree_low_cst. + (mark_seen_cases): COUNT arg now HOST_WIDE_INT; + Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. + (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. + * stor-layout.c (mode_for_size): SIZE arg now unsigned. + (smallest_mode_for_size): Likewise. + (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. + KNOWN_ALIGN is now an alignment, so simplify code. + Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. + (start_record_layout): Renamed from new_record_layout_info. + Update to new fields. + (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): + New functions. + (place_union_field): Renamed from layout_union_field. + Update to use new fields in rli. + (place_field): Renamed from layout_field. + Major rewrite to use new fields in rli; pass alignment to layout_decl. + (finalize_record_size): Rework to use new fields in rli and handle + union. + (compute_record_mode): Rework to simplify and to use new DECL fields. + (finalize_type_size): Make rounding more consistent. + (finish_union_layout): Deleted. + (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. + (layout_type, case RECORD_TYPE): Call new function names. + (initialize_sizetypes): Set TYPE_IS_SIZETYPE. + (set_sizetype): Set TYPE_IS_SIZETYPE earlier. + (get_best_mode): UNIT is now unsigned; remove casts. + * tree.c (bit_position): Compute from new fields. + (byte_position, int_byte_position): New functions. + (print_type_hash_statistics): Cast to remove warning. + (build_range_type): Use host_integerp and tree_low_cst to try to hash. + (build_index_type): Likewise; make subtype of sizetype. + (build_index_2_type): Pass sizetype to build_range_type. + (build_common_tree_nodes): Use size_int and bitsize_int to + initialize nodes; add bitsize_{zero,one,unit}_node. + * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. + (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. + (DECL_PACKED, DECL_BIT_FIELD): Likewise. + (DECL_FIELD_BITPOS): Deleted. + (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. + (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. + (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. + (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. + (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. + (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. + (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. + (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. + (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. + (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. + (DECL_ALIGN): Adjust to new field in union. + (DECL_OFFSET_ALIGN): New field. + (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. + (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. + (union tree_decl): Add struct for both aligns. + (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. + (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. + (struct record_layout_info): Rework fields to have offset + alignment and byte and bit position. + (start_record_layout, place_field): Renamed from old names. + (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. + (byte_position, int_byte_position): Likewise. + (get_inner_reference): Change types of position and length. + * unroll.c (unroll_loop): New variable R; use for some loops. + MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. + (calculate_giv_inc): Arg REGNO now unsigned. + (copy_loop_body): REGNO and SRC_REGNO now unsigned. + * varasm.c (assemble_variable): Clean up handling of size using + host_integerp and tree_low_cst. + (decode_addr_const): Use byte, not bit, position. + (output_constructor): bitpos and offsets are HOST_WIDE_INT; + use tree_low_cst and int_bit_position. + * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. + +Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. + (reorder_block_def): New members eff_head and eff_end. + (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. + (verify_insn_chain): New function. + (skip_insns_between_block): Add code to skip deleted insns. + Check for note before using. + (chain_reorder_blocks): Replace calls to skip_insns_between_block + with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. + Check for note before using. + (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. + (fixup_reorder_chain): Restructure, clean up, defect removal. + (reorder_basic_blocks): Remove last_insn and references to it. + Moved insn chain verification code into a new function (see above). + Delete defective code that sets last insn. + Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for + all blocks. + +2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. + +2000-03-24 Richard Henderson <rth@cygnus.com> + + * tree.c (lang_safe_for_unsave): Remove. + (unsafe_for_reeval): Transmute and rename from safe_for_unsave, + allowing for two levels of unsafeness. Remove lang hook. + * tree.h: Update declarations. + * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. + Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. + Always fail sibcalls when there are pending cleanups. + +2000-03-24 Geoff Keating <geoffk@cygnus.com> + + * flow.c (propagate_block): When we delete an ADDR_VEC, + also delete the BARRIER following it if there is one. + +2000-03-24 Richard Henderson <rth@cygnus.com> + + * builtins.c (expand_builtin_bzero): Convert `length' argument + to sizetype. + +2000-03-24 Jakub Jelinek <jakub@redhat.com> + + * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for + comparison if regno's are equal. + * calls.c (initialize_argument_informat): Add ecf_flags argument. + Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. + (expand_call): Update caller. + Avoid making a sibling call if argument size of the callee is larger + than argument size of the caller. + Call hard_function_value with outgoing set if in sibcall pass. + Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. + + * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): + Change LEAF_REGISTERS from an array initializer to actual array + identifier. Move static global variable into the function. + (leaf_function_p): Allow SIBLING_CALL_P calls even outside of + sequences for leaf functions. + * global.c (global_alloc): Likewise. + * tm.texi (LEAF_REGISTERS): Update documentation. + + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly + TARGET_FLAT leaf disabling hack. + (LEAF_REGISTERS): Changed from an array initializer to actual array + identifier to avoid duplication and remove the above hack. + (FUNCTION_OK_FOR_SIBCALL): Define. + * config/sparc/sparc.md (sibcall): New attr type. Use it almost + always like call attribute. + (eligible_for_sibcall_delay): New attribute. + (sibcall): New delay type. + (sibcall, sibcall_value, sibcall_epilogue): New expands. + (sibcall_symbolic_sp32, sibcall_symbolic_sp64, + sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. + * config/sparc/sparc.c (sparc_leaf_regs): New array. + (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): + New functions. + (output_function_epilogue): Move part of the code into + output_restore_regs. + (ultra_code_from_mask, ultrasparc_sched_reorder): Handle + TYPE_SIBCALL. + * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New + prototypes. + + * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change + until infrastructure is finished. + +Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) + + * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. + (save_parm_insns): Not here. + +2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.c (expand_builtin_bzero): New function. + (expand_builtin): Handle bzero. + + * builtins.def: Add BUILT_IN_BZERO. + + * c-common.c (c_common_nodes_and_builtins): Provide builtin + prototype & function for bzero. + +2000-03-23 Michael Meissner <meissner@redhat.com> + + * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 + change adding TARGET_FP to the TF floating point insns, except for + trunctfsf2, which generates direct calls to truncdfsf2. + +2000-03-23 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, + try to protect against middle-end changes that break binary + compatibility. + (DWARF_FRAME_REGISTERS): New definition, likewise for backend. + +2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. + +Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * calls.c (expand_call): If TARGET is passed by reference and + is readonly, write a CLOBBER. + +2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.c (expand_builtin): Handle bcmp. + + * builtins.def: Add BUILT_IN_BCMP. + + * c-common.c (c_common_nodes_and_builtins): Provide builtin + prototype & function for bcmp. + +Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... + (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. + * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. + +Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com> + + * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') + alternative when using -fp64 -gp32. + +2000-03-22 Jason Merrill <jason@casey.cygnus.com> + + * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. + * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. + * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. + + * frame.h (frame_state): Revert last change. + * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. + * libgcc2.c (throw_helper): Revert last change. + +2000-03-22 Richard Henderson <rth@cygnus.com> + + * stmt.c (expand_asm_operands): Don't promote the temporary. + +2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> + + * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. + * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, + c_get_alias_set): Likewise. + * c-decl.c (duplicate_decls): Likewise. + * c-typeck.c (default_conversion,build_unary_op): Likewise. + * calls.c (initialize_argument_information): Likewise. + * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): + Likewise. + * dwarfout.c (decl_class_context,output_type): Likewise. + * expr.c (get_inner_reference): Likewise. + * fold-const.c (simple_operand_p,fold): Likewise. + * function.c (aggregate_value_p): Likewise. + * stmt.c (expand_asm_operands): Likewise. + * varasm.c (named_section): Likewise. + +2000-03-22 Jason Merrill <jason@casey.cygnus.com> + + Implement dwarf2 exception handling for the ARM. + * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. + (DWARF_FRAME_RETURN_COLUMN): Define. + * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach + REG_FRAME_RELATED_EXPR note. + (emit_sfm): Likewise. + (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. + * dwarf2out.c (reg_save): Handle saving a register to itself. + (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. + * except.c (eh_regs): Don't use the static chain reg if it's + callee-saved. + * frame.h (frame_state): Add cfa_saved field. + * frame.c (execute_cfa_insn): Set it. + * libgcc2.c (throw_helper): Don't adjust sp if it's restored in + the epilogue. + * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. + Now takes a parm. + (instantiate_virtual_regs): Adjust. + * tm.texi: Adjust. + * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. + * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. + * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. + + * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. + (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. + +2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.def: New file. + + * Makefile.in (TREE_H): Depend on builtins.def. + + * builtins.c (built_in_names): Use builtins.def. + + * tree.h (built_in_function): Likewise. + +2000-03-22 Mark Mitchell <mark@codesourcery.com> + + * tree.c (size_in_bytes): Return size_zero_node, not + integer_zero_node. + +2000-03-22 Geoff Keating <geoffk@cygnus.com> + + * config/fp-bit.c (pack_d): Correct the case when a denormal + is rounded up and stops being denormal. + +2000-03-21 Richard Henderson <rth@cygnus.com> + + * config/alpha/alpha.c (function_arg): Check for void_type_node + before using MUST_PASS_IN_STACK. + +2000-03-21 Stephane Carrez <stcarrez@worldnet.fr> + + * regmove.c (combine_stack_adjustments_for_block): Check that + the stack pointer is a valid memory address. + +Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c: re-install Mar 16 emit_library_call merge. + +2000-03-21 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (mem_min_alignment): If not optimizing, + we cannot be sure that if reload_completed base register will + be properly aligned. + +2000-03-21 Richard Henderson <rth@cygnus.com> + + * flow.c (delete_block): Fix typo last change. + +2000-03-21 Mark Mitchell <mark@codesourcery.com> + + * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, + not COMPLETE_TYPE_P, to check the type of the expression. + +2000-03-21 Michael Meissner <meissner@redhat.com> + + * config/alpha/alpha.md (floating point insns): Add TARGET_FP to + all floating point insns that just tested the macro + TARGET_HAS_XFLOATING_LIBS. + (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is + used to only use the gprs. + +2000-03-21 Nathan Sidwell <nathan@codesourcery.com> + + * tree.h (COMPLETE_TYPE_P): New macro. + (COMPLETE_OR_VOID_TYPE_P): New macro. + (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. + * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. + * c-aux-info.c (gen_type): Use them. + * c-common.c (c_expand_expr_stmt): Likewise. + * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, + grokdeclarator, grokparms, finish_struct, start_function, + store_parm_decls, combine_parm_decls): Likewise. + * c-parse.y (cast_expr): Likewise. + * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, + c_size_in_bytes, c_alignof, build_component_ref, + build_indirect_ref, build_array_ref, convert_arguments, + build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. + * calls.c (initialize_argument_information): Likewise. + * convert.c (convert_to_integer): Likewise. + * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. + * dwarfout.c (location_or_const_value_attribute, + output_enumeration_type_die, output_structure_type_die, + output_union_type_die, output_type): Likewise. + * expr.c (safe_from_p, expand_expr): Likewise. + * function.c (assign_parms): Likewise. + * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. + * tree.c (build_array_type, build_function_type, + build_method_type, build_offset_type, build_complex_type): Likewise. + * c-parse.c, c-parse.h: Regenerated. + +2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/rtems.h: Include config/rtems.h. + +Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if + decl is a FUNCTION_DECL + +Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf + function uses output registers. Don't save RP for leaf functions. + Do save RP even if no epilogue. + * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. + (CALL_USED_REGISTERS): Unmark in registers. + (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, + to near the middle. + +2000-03-20 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.md (bunordered): New expander. + (bordered): New expander. + (buneq): New expander. + (bunge): New expander. + (bungt): New expander. + (bunle): New expander. + (bunlt): New expander. + (bltgt): New expander. + + * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. + (ccr_bit_negated_p): New function. + (print_operand): For %C, generate appropriate cror for UNEQ, + UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. + +2000-03-20 Andreas Jaeger <aj@suse.de> + + * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" + warning. + + * tree.h (safe_for_unsave): Prototype. + +2000-03-20 Richard Henderson <rth@cygnus.com> + + * regmove.c (stack_memref_p): Fix typo, reorg for readability. + (combine_stack_adjustments_for_block): Don't allow sp references + in the side of a set we're not fixing up. + * toplev.c (rest_of_compilation): Run combine_stack_adjustments + after life_analysis. + +2000-03-20 Richard Henderson <rth@cygnus.com> + + * calls.c (expand_call): Don't bother generating tail call + sequences if there are pending cleanups. Use + expand_start_target_temps/expand_end_target_temps to elide + cleanups created during sibcall expansion. + +2000-03-20 Geoff Keating <geoffk@cygnus.com> + + * configure.in: Set $IFS to a value if it doesn't already have one + in the --enable-checking handling. + * configure: Regenerate. + +2000-03-20 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * c-parse.in (SAVE_WARN_FLAGS): Use size_int. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerated. + +Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz> + + * jump.c (delete_noop_moves): Remove code attempting to + combine stack adjustments. + +2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. + * except.c (emit_cleanup_handler): Use them. + (expand_end_all_catch): Likewise. + * function.c (fixup_var_refs): Likewise. + (expand_function_end): Clear catch_clauses_last. + * rtl.h (push_to_full_sequence, end_full_sequence): Declare. + * except.h (struct eh_status): New field x_catch_clauses_last. + (catch_clauses_last): New define. + + * Makefile.in (tree.o): Depend on HASHTAB_H. + * tree.c: Include hashtab.h. + (struct type_hash): Remove next field. + (TYPE_HASH_SIZE): Remove. + (TYPE_HASH_INITIAL_SIZE): New define. + (type_hash_table): Change type to htab_t. + (type_hash_eq, type_hash_hash, print_type_hash_statistics, + mark_hash_entry): New functions. + (init_obstacks): Allocate type hash. + (type_hash_lookup): Use htab functions. + (type_hash_add, mark_type_hash): Likewise. + (dump_tree_statistics): Call print_type_hash_statistics. + +2000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * rs6000/t-aix41: New file. + + * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it. + +Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com> + + * tm.texi (Driver): Fix typos and tweak entry for + INCLUDE_DEFAULTS. + Move misplaced STRUCT_FORCE_BLK entry ... + (Storage Layout): ... to here. + (Run-time Target): Recommend having TARGET_MASK_... helper macros. + +2000-03-19 Richard Henderson <rth@cygnus.com> + + * flow.c (delete_block): Delete the addr_vec along with the block. + (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that + reference labels. + + * fold-const.c (extract_muldiv): Apply type check for defined + overflow to multiply as well as divide. + + * stor-layout.c (layout_decl): Don't abort on any zero sized decl. + +2000-03-18 Mark Mitchell <mark@codesourcery.com> + + * emit-rtl.c (remove_unncessary_notes): Check that all + NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an + associated NOTE_BLOCK. + * function.h (identify_blocks): Update comments. + (reorder_blocks): Declare. + * function.c (identify_blocks): Don't take paramters. + (reorder_blocks): Don't take parameters. + * loop.h (find_loop_tree_blocks): Remove. + (unroll_block_trees): Likewise. + * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use + reorder_blocks instead of unroll_block_trees.h + * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise. + * stmt.c (find_loop_tree_blocks): Remove. + (unroll_block_trees): Likewise. + * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks + in whole-function mode. + * tree.h (reorder_blocks): Remove declaration. + + * expr.c: Include intl.h. + * Makefile.in (expr.o): Depend on intl.h. + +2000-03-18 Richard Henderson <rth@cygnus.com> + + * expr.c (emit_move_insn_1): Clarify cannot_inline message. + +2000-03-18 Mark Mitchell <mark@codesourcery.com> + + * tree.h (tree_index): Remove enumerals for integer types. + (integer_type_kind): New type. + (integer_types): New variable. + (char_type_node): Adjust. + (signed_char_type_node): Likewise. + (unsigned_char_type_node): Likewise. + (short_integer_type_node): Likewise. + (short_unsigned_type_node): Likewise. + (integer_type_node): Likewise. + (unsigned_type_node): Likewise. + (long_integer_type_node): Likewise. + (long_unsigned_type_node): Likewise. + (long_long_integer_type_node): Likewise. + (long_long_unsigned_type_node): Likewise. + * tree.c (integer_types): New variable. + (init_obstacks): Register it as a root. + +Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com> + + * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as + NEXT_INSN. Update last insn in chain. + +2000-03-17 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (dwarf2out_decl): Don't emit anything for types + with TYPE_DECL_SUPPRESS_DEBUG set. + +2000-03-18 Richard Henderson <rth@cygnus.com> + + * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value. + +2000-03-18 Richard Henderson <rth@cygnus.com> + + * i386.c (call_insn_operand): Always allow SYMBOL_REF, + care for HALF_PIC_P. + (expander_call_insn_operand): Remove. + (ix86_expand_epilogue): New arg `emit_return' to control return insn. + * i386.h (PREDICATE_CODES): Update. + * i386.md (all call expanders): Remove predicates, remove special + handling for half-pic. + (*call_1, *call_value_1): Handle SIBLING_CALL_P insns. + (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove. + (sibcall_epilogue): New. + +2000-03-17 Richard Henderson <rth@cygnus.com> + + * rtlanal.c (single_set): Reject if the parallel has anything + except SET or USE or CLOBBER. + +2000-03-17 Jeff Law <law@cygnus.com> + Richard Henderson <rth@cygnus.com> + + * Makefile.in (OBJS): Add sibcall.o. + (sibcall.o): New. + * sibcall.c: New file. + * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default. + (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New. + (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'. + Emit sibcall patterns when requested. Update all callers. + (expand_call): Generate CALL_PLACEHOLDER insns when tail call + elimination seems feasable. + * final.c (leaf_function_p): Sibling calls don't discount being + a leaf function. + * flow.c (HAVE_sibcall_epilogue): Provide default. + (find_basic_blocks_1): Sibling calls don't throw. + (make_edges): Make edge from sibling call to EXIT. + (propagate_block): Don't remove sibcall_epilogue insns. + * function.c (prologue, epilogue): Turn into varrays. Update all uses. + (sibcall_epilogue): New. + (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences. + (identify_blocks_1): Likewise. Break out from ... + (identify_blocks): ... here. + (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ... + (reorder_blocks): ... here. + (init_function_for_compilation): Zap prologue/epilogue as varrays. + (record_insns): Extend a varray instead of mallocing new memory. + (contains): Read a varray not array of ints. + (sibcall_epilogue_contains): New. + (thread_prologue_and_epilogue_insns): Emit and record + sibcall_epilogue patterns. + (init_function_once): Allocate prologue/epilogue varrays. + * genflags.c (gen_insn): Treat sibcall patterns as calls. + * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns. + Broken out from ... + (save_for_inline_nocopy): ... here. + (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. + Broken out from ... + (expand_inline_function): ... here. + (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL. + (subst_constants): Handle 'n' formats. + * jump.c (jump_optimize_minimal): New. + (jump_optimize_1): New arg `minimal'; update callers. Elide most + optimizations if it's set. + * rtl.c (copy_rtx): Do copy jump & call for insns. + * rtl.h (struct rtx_def): Document use of jump and call for insns. + (SIBLING_CALL_P): New. + (sibcall_use_t): New. + * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier. + Invoke optimize_sibling_and_tail_recursive_calls. + * tree.c (lang_safe_for_unsave): New. + (safe_for_unsave): New. + * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare. + + * alpha.h (FUNCTION_OK_FOR_SIBCALL): New. + * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New. + (*sibcall_osf_1, *sibcall_value_osf_1): New. + +2000-03-17 Mark Mitchell <mark@codesourcery.com> + + * objc/objc-act.c (encode_method_prototype): Pass types, not + PARM_DECLs, to int_size_in_bytes. + +Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template. + + * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again. + +Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * Clean up usages of TREE_INT_CST_LOW. + * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerated. + * c-tree.h (min_precision): Move declaration to here. + * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. + (build_unary_op, add_pending_init): Use bit_position. + (pending_init_member, process_init_element): Likewise. + (really_start_incremental_init, push_init_level, pop_init_level): + Don't make copies of nodes or modify them in place, use consistent + types when tracking positions, and use tree routines computations. + (set_init_index, output_init_element): Likewise. + (output_pending_init_elements, process_init_element): Likewise. + * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, + tree_low_cst and int_bit_position; also minor cleanup. + (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. + (print_cst_octal): Precision is unsigned. + (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. + * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. + (simple_type_align_in_bits): Result is unsigned int. + Use tree_int_low_cst and host_integerp. + (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. + (field_byte_offset): Result is HOST_WIDE_INT. + Change types of internal variables so alignments are unsigned int, + offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. + Use host_integerp, tree_low_cst, and int_bit_position. + (add_bit_offset_attribute): Likewise. + (add_data_member_location_attribute): Use tree_cst_low. + (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. + (add_bit_size_attribute): Use tree_low_cst. + (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. + * dwarfout.c: Similar changes to dwarf2out.c. + * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. + * genoutput.c (n_occurences): Return -1 for null string. + (strip_whitespace): Accept null string and make into function. + (scan_operands): Reflect above changes. + * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. + (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. + * ssa.c (rename_registers): Add missing cast of arg to bzero. + * tree.c (int_size_in_bytes): Check for too big to represent. + (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. + * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): + New declarations. + (min_precision): Delete from here. + * varasm.c (decode_addr_const): Use host_integerp, bit_position, + and int_bit_position. + * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. + (encode_method_def): Likewise. + (build_ivar_list_initializer): Use int_bit_position. + (generate_shared_structures): Convert size. + (encode_type, encode_complete_bitfield): Use integer_zerop. + (encode_bitfield): Use tree_low_cst and int_bit_position. + +2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (CPP_SPEC): Fix typo. + +2000-03-17 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * call.c (special_function_p): It is only malloc if it returns + Pmode. + +2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. + (C33_FLAG, TARGET_C3X): Add macros. + (TARGET_SWITCHES): Add -m33 option. + * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33. + +2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add. + (PARALLEL_PACK_FLAG): Delete. + (TARGET_SWITCHES): Update. + (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG. + +Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * fold-const.c (fold): Fix a few cases when the returned result + is not of the same type as the input. + +2000-03-16 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time + warning. + +2000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * libgcc2.h: Move prototypes above macros with the same name. + Wrap some function prototypes in the conditional which indicates + whether they are supported, i.e. "BITS_PER_UNIT == 8". + +2000-03-16 Richard Henderson <rth@cygnus.com> + + * calls.c: Revert last two changes. + +2000-03-16 Bernd Schmidt <bernds@cygnus.co.uk> + + * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that + has exponent 0 is a zero. + + * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that + HASH may already be nonzero. Add code/mode into hash value + immediately after repeat label. + (cselib_lookup): Don't leave the hash table in an inconsistent + state before a hash lookup operation. + +Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (all HI and QI mode non-move patterns): Conditionize + by TARGET_[HQ]IMODE_MATH. + * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, + x86_promote_qi_regs): Declare. + (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS, + TARGET_PROMOTE_QI_REGS): New macros. + (PROMOTE_MODE): New macro. + * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, + x86_promote_qi_regs): New global variables. + +Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (emit_library_call_value_1): Break out from ...; handle + VOIDmode function calls too. + (emit_library_call_value): ... here. + (emit_library_call): Implement by calling emit_library_call_value_1. + +Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (expand_call): Do sanity checking on arg_space_so_far. + Update arg_space_so_far on stack adjustments. + (emit_library_call, emit_library_call_value): Likewise; take into + account arg_space_so_far and pending_stack_adjust when calculcating + the boundary. + +Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com> + + * flow.c: Move all basic block reordering code into its own file. + (create_basic_block): Externalize. + * bb-reorder.c: New file. Copy all basic block reordering code from + flow.c to this file. + (reorder_basic_blocks): Fix fencepost error in for-loop. + (reorder_basic_blocks): Remove braces from single statement for-loops. + * basic-block.h: Add declaration for create_basic_block. + * Makefile.in: Add rules for bb-reorder.o. + +2000-03-16 Neil Booth <NeilB@earthling.net> + + * cppinit.c (handle_option): Implement #unassert directive + as -A- command line option. + (print_help): Update. + * cpptexi.c: Update. + +Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * md.texi (Standard Names): Document `jump'. + +2000-03-15 Jason Merrill <jason@casey.cygnus.com> + + * calls.c (emit_call_1): Nothrow functions can still have nonlocal + gotos. + +2000-03-15 Geoff Keating <geoffk@cygnus.com> + + Merge changes from newppc-branch onto trunk. + + 2000-03-15 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (toc_hash_table): Update for new hash table functions. + (toc_hash_function): Likewise. + (toc_hash_eq): Likewise. + (toc_hash_mark_entry): Likewise. + (toc_hash_mark_table): Likewise. + (output_toc): Likewise. + (rs6000_add_gc_roots): Likewise. + + 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'... + (AR_FLAGS_FOR_TARGET): here. New macro. + + 2000-03-05 Clinton Popetz <cpopetz@cygnus.com> + + * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size, + fpmem_operand) Delete. + (xer_operand) New. + (rs6000_reg_names, alt_reg_names): Change fpmem to xer. + (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p. + (rs6000_save_machine_status, rs6000_restore_machine_status, + rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove + references to above variables. + (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P. + * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES, + DEBUG_REGISTER_NAMES): Chagne fpmem to xer. + (FPMEM_REGNO_P, FPMEM_REGNUM): Delete. + (XER_REGNO_P, XER_REGNO): New. + (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size. + (PREDICATE_CODES): Change fpmem_operand to xer_operand. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to + XER_REGNO_P. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, + REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS. + (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS. + + 2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here... + * rs6000.h: from here. + + * rs6000-protos.h (rs6000_select_section): Provide prototype. + (rs6000_select_rtx_section): Likewise. + (rs6000_encode_section_info): Likewise. + (sdata_section): Likewise. + (sdata2_section): Likewise. + (sbss_section): Likewise. + * sysv4.h (rs6000_select_section): Delete prototype. + (rs6000_select_rtx_section): Likewise. + (rs6000_encode_section_info): Likewise. + (sdata_section): Likewise. + (sdata2_section): Likewise. + (sbss_section): Likewise. + (REG_SAVE_AREA): Delete definition duplicated in rs6000.h. + + * sysv4.h: Delete various unnecessary #undef's and put a comment + on the remaining ones. + Change various comments according to coding standard. + + 2000-02-29 Clinton Popetz <cpopetz@cygnus.com> + + * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, + CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define. + (CR0_REGNO_P) Remove. + * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, + setup_incoming_varargs, mtcrf_operation, print_operand, + rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): + Use the above macros. + + 2000-02-24 Clinton Popetz <cpopetz@cygnus.com> + + * config/rs6000/rs6000.md: Added a new alternative for each + pattern that had a 'x' alternative but no 'y' alternative. + Added a new split for each of the above patterns. + + 2000-02-18 Geoff Keating <geoffk@cygnus.com> + + * aix41.h (ASM_CPU_SPEC): Delete. + (CPP_CPU_SPEC): Delete. + + * aix.h (RS6000_OUTPUT_BASENAME): Define. + (ASM_OUTPUT_LABEL): Define. + (ASM_GLOBALIZE_LABEL): Define. + (STRIP_NAME_ENCODING): Define. + * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define. + (STRIP_NAME_ENCODING): Don't define. + (ASM_OUTPUT_LABEL): Don't define. + (ASM_GLOBALIZE_LABEL): Don't define. + * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output + names, and ASM_OUTPUT_LABEL to output labels, rather than + asm_fprintf. + (ASM_OUTPUT_LABEL): Define. + (ASM_OUTPUT_INT): Use assemble_name. + (ASM_OUTPUT_DWARF_ADDR): Use assemble_name. + (STRIP_NAME_ENCODING): Don't undefine first. + (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for + ELF. + (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels + specified with 'asm' even with -fleading-underscore. + * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX. + (output_epilog): Likewise. + (output_toc): Likewise. + * tramp.asm: Handle -fleading-underscore correctly. + + * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and + -mminimal-toc. + (nonlocal_goto_receiver): Delete. + * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete. + + * rs6000.h (ASM_OUTPUT_DEF): Don't define. + (SET_ASM_OP): Define. + * sysv4.h (ASM_OUTPUT_DEF): Don't undefine. + + * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define. + (ASM_LONG): Define. + + * rs6000.c (rs6000_dll_import_ref): Delete, not used. + * rs6000-protos.h (rs6000_dll_import_ref): Delete. + + * rs6000.h: Add 'u' to more constants. + + 2000-02-18 David Edelsohn <edelsohn@gnu.org> + + * rs6000.md (mfcr+shift): Delete PowerPC64 version. + + 2000-02-15 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (reg_or_u_cint_operand): New function. + (logical_operand): Handle 64-bit hosts. + (logical_u_operand): New function. + (non_logical_cint_operand): Handle 64-bit hosts. + (non_logical_u_cint_operand): New function. + * rs6000.h (DATA_SECTION_ASM_OP): Add tab. + (PREDICATE_CODES): Define new functions. + * rs6000-protos.h: Declare new functions. + * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits. + (movdi_64): Bracket code intended for 64-bit hosts. Create + CONST_DOUBLE for 32-bit values. + (scc insns): Generate DImode compares. + (mfcr insns): Create DImode versions. + (sge matchers): New patterns. + + 2000-02-15 Gabriel Paubert <paubert@iram.es> + + * rs6000.md: Correct instructions length attributes and + constraints on unsigned compare instructions. + (*ne0): Disable for PowerPC64. + + 2000-02-11 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (output_function_profiler): Use .long for a 32-bit + quantity, fix profile1.C test failure under -fPIC. + + * rs6000.c: Add 'u' to many constants to suppress warnings. + (constant_pool_expr_1): Make static. + (rs6000_emit_eh_toc_restore): Remove unused 'r2'. + * rs6000.h: Add 'u' to many constants to suppress warnings. + + * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX + for the start of the TOC, instead of LCTOC..0. + * aix.h (toc_section): Use LCTOC..1 under AIX for the start + of the TOC. + * rs6000.md (load_toc_aix_si): Use LCTOC..1. + (load_toc_aix_di): Use LCTOC..1. + + * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function. + * rs6000.c (rs6000_legitimize_address): New function from + LEGITIMIZE_ADDRESS. Only use create_TOC_reference on + symbols in the constant pool that really are TOC references. + (print_operand_address): For ELF, write TOC offsets under + -fPIC as subtractions in the insn. + (output_toc): For ELF, define symbols in TOC as normal labels, + to match RTL. + (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx. + * rs6000-protos.h (rs6000_legitimize_address): Prototype. + (create_TOC_reference): Prototype only when RTX_CODE is defined. + * rs6000.md (movsi): Only use create_TOC_reference on + symbols in the constant pool that really are TOC references. + + * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define. + * rs6000.c (rs6000_reorg): Delete. + * rs6000-protos.h (rs6000_reorg): Delete. + + 2000-02-09 Geoff Keating <geoffk@cygnus.com> + + * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro. + + * aix.h (SETUP_FRAME_ADDRESSES): Define. + * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable. + [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function. + [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function. + * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore, + rs6000_aix_emit_builtin_unwind_init. + * rs6000.md (eh_epilogue) [TARGET_AIX]: Call + rs6000_emit_eh_toc_restore on AIX. + (return_eh_si): Use r2. + (return_eh_di): Use r2. + + * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH, + since we're breaking binary compatibility anyway. + + 2000-02-09 Clinton Popetz <cpopetz@cygnus.com> + + * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC, + constant_pool_expr_p): Declare them. + (constant_pool_expr_p): Declare it. + * config/rs6000/rs6000.c (toc_label_name): Define. + (rs6000_override_options): Set toc_label_name. + (input_operand): Allow any TOC_RELATIVE_EXPR_P. + (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1, + uses_TOC): New functions. + (print_operand): Delete old '*' case. + (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P, + and strip off rtl for TOC before calling output_addr_const. + (rs6000_emit_load_toc_table): Use toc_label_name. + * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog + the default. + (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete. + (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros. + (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P. + (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs + into explicit TOC_REGISTER offsets. + (TOC_REGISTER): New macro. + * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under + TARGET_TOC to reference TOC_REGISTER. + (load_toc_v4_PIC_1b): Add 4 to offset for toc reload. + * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call + uses_TOC before emitting label references. + + 2000-02-05 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (stack_tie): Fix warning. + + * eabi-ctors.c: Use 'asm' names for the start/end variables, + to handle -fleading-underscore. + * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U. + (USER_LABEL_PREFIX): New macro. + (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L. + (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. + * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and + call-linux can use the same multilibs. + * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv + and call-linux multilibs. Do multilib with -fleading-underscore. + (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change. + (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions + to call-aix. + + * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that + have MASK_SOFT_FLOAT set. + (CPP_FLOAT_DEFAULT_SPEC): New macro. + (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of + CPP_FLOAT_DEFAULT_SPEC. + + * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'. + * rs6000.md: Whitespace change. + * sysv4.h (LINK_TARGET_SPEC): Whitespace change. + * sysv4le.h (LINK_TARGET_SPEC): Whitespace change. + + 2000-02-05 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (eh_epilogue): New expander. + (eh_reg_restore): New expand/split/insn combination. + (return_eh_si): New insn. + (return_eh_di): New insn. + + * eabi-ci.asm: Put a label at the start of the .eh_frame section. + * eabi-cn.asm: Put a zero at the end of the .eh_frame section. + * eabi-ctors.c (__do_global_ctors): Register this object's + frame. Clean up. Call atexit() after the constructors. + (__do_global_dtors): Deregister this object's frame. Clean up. + Allow for recursive calls to exit(). + * rs6000.c (fixuplabelno): New variable. + * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not + TARGET_RELOCATABLE, it slows down exec() under linux. + (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE. + + * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro. + (ASM_OUTPUT_DWARF_DELTA_VAR): New macro. + (ASM_OUTPUT_DWARF_DELTA2): New macro. + (ASM_OUTPUT_DWARF_DELTA4): New macro. + (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro. + (ASM_OUTPUT_DWARF_ADDR): New macro. + (ASM_OUTPUT_DWARF_DATA4): New macro. + (ASM_OUTPUT_DWARF_DATA2): New macro. + (ASM_OUTPUT_DWARF_OFFSET4): New macro. + (ASM_OUTPUT_DWARF_OFFSET): New macro. + (UNALIGNED_INT_ASM_OP): New macro, fake definition. + + 2000-02-03 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (rs6000_sr_alias_set): New variable. + (rs6000_override_options): Initialise rs6000_sr_alias_set. + (rs6000_emit_stack_tie): New function. + (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P + in a way that dwarf2out can understand. + (rs6000_frame_related): New function. + (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify + RTX_FRAME_RELATED_P in a way that dwarf2out can understand. + Use rs6000_emit_stack_tie when needed. + (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set + RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed. + * rs6000.md (stack_tie): New insn. + (return_internal_si): Allow return value to be in the count + register. + (return_internal_di): Likewise. + + * rs6000.c (output_mi_thunk): Remove unused variable `sp'. + + 2000-02-03 Geoff Keating <geoffk@cygnus.com> + + * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h. + + 2000-01-31 Geoff Keating <geoffk@cygnus.com> + + * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. + + * rs6000.md (stmw): Use the right POWER opcode. + (lmw): Likewise. + + 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * rs6000-protos.h: New file. + + * rs6000.c: Include tm_p.h. Fix compile time warnings. + + * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time + warnings. + + * sysv4.h: Likewise. + + 2000-01-28 Geoff Keating <geoffk@cygnus.com> + + * ../../configure.in: Delete powerpcle-*-winnt* + and powerpcle-*-pe|powerpcle-*-cygwin*. + * ../../configure: Regenerated. + * cygwin.h: Delete. + * rs6000.h (OBJECT_WINDOWS_NT): Delete. + (TARGET_WINDOWS_NT): Delete. + (ABI_NT): Delete. + (CALL_NT_DLLIMPORT): Delete. + Delete NT-specific code. + * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code. + * win-nt.h: Delete. + * t-winnt: Delete. + * nt-ci.asm: Delete. + * nt-cn.asm: Delete. + * ntstack.asm: Delete. + + 2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * rs6000.h (SELECT_RTX_SECTION): Move to aix.h. + (ASM_FILE_START): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_SKIP): Likewise. + (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_CASE_LABEL): Likewise. + (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + (ASM_OUTPUT_ASCII): Likewise. + + 2000-01-27 Clinton Popetz <cpopetz@cygnus.com> + + * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and + reload_toc_labelno for non-prologue TOC reloads. Also, don't + increment rs6000_pic_labelno here. + (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table, + and increment rs6000_pic_labelno here. + + 2000-01-24 Geoffrey Keating <geoffk@cygnus.com> + + * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)])) + rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register + allocation knows (reg) is dead before the insn. + + 2000-01-21 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (movsi_to_cr): Correct typo in output template. + + 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> + + * rs6000.c (rs6000_pic_labelno): Always define. + (rs6000_pic_func_labelno): Delete. + (lmw_operation): Check for a zero base register, + which doesn't mean what we want. + (stmw_operation): New function. + (print_operand): Define new 'l' modifier. + (rs6000_stack_info): We must save all 64 bits of the registers + if TARGET_POWERPC64. + (rs6000_output_load_toc_table): Delete. + (rs6000_emit_load_toc_table): New function. + (rs6000_allocate_stack_space): Delete. + (rs6000_emit_allocate_stack): New function. + (rs6000_emit_prologue): New function. + (output_prolog): Use rs6000_emit_prologue. + (rs6000_emit_epilogue): Change a few variable names to be + more accurate. Restore all 64 bits of the registers if + TARGET_POWERPC64. Only restore the FP registers which were used + if they are being saved/restored one-at-a-time. + (output_mi_thunk): Delete inefficient code generation. + (output_function_profiler): Don't use rs6000_output_load_toc_table. + * rs6000.h: Declare rs6000_emit_load_toc_table, + rs6000_allocate_stack_space, stmw_operation. Don't declare + rs6000_output_load_toc_table. + * rs6000.md (elf_high): Allow register 0, but discourage it + heavily. + (elf_low): Support loading into register 0. + (load_toc_aix_si): New pattern. + (load_toc_aix_di): New pattern. + (load_toc_v4_pic_si): New pattern. + (load_toc_v4_pic_di): New pattern. + (load_toc_v4_PIC_1): New pattern. + (load_toc_v4_PIC_1b): New pattern. + (load_toc_v4_PIC_2): New pattern. + (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table. + (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table. + (prologue): New expander. + (movesi_from_cr): New pattern. + (stmw): New pattern. + (save_fpregs_si): New pattern. + (save_fpregs_di): New pattern. + + 2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (movsi): Don't use force_reg when no_new_pseudos. + (movdi): Likewise. + (movhi): Likewise. + (movqi): Likewise. + + 2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (movsi_got): 'unspec 8' returns a SImode result, + at present. + (movsi_got_internal): Likewise. + (movsi_got_internal+1): Likewise. + (set_sp): 'unspec 7' does a SImode clobber. + + 2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md (floatsidf2): Don't use the fpmem "register", just + allocate a stack temporary. + (floatsidf2_internal): Likewise. + (floatsidf2_internal+1): Likewise. Don't do bizzare hacks + with unspec. + (floatunssidf2): Don't use the fpmem "register", just + allocate a stack temporary. + (floatunssidf2_internal): Likewise. + (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks + with unspec. + (floatsidf2_loadaddr): Delete. + (floatsidf2_store1): Delete. + (floatsidf2_store2): Delete. + (floatsidf2_load): Delete. + (fix_truncdfsi2): Don't use the fpmem "register", just + allocate a stack temporary. + (fix_truncdfsi2_internal_si): Delete. + (fix_truncdfsi2_internal_di): Delete. + (fix_truncdfsi2_internal): New insn. + (fix_truncdfsi2_internal+1): Don't use the fpmem "register". + (fix_truncdfsi2_store): Delete. + (fix_truncdfsi2_load): Delete. + (fctiwz): Produce gen_fctiwz. + + 2000-01-19 Geoffrey Keating <geoffk@cygnus.com> + + * eabi.h (INVOKE__main): Define. + * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN + specially. + (rs6000_emit_prologue): Likewise. + * rs6000.h (struct rs6000_stack): Don't keep track of whether + this is the main program. + + 2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (rs6000_va_arg): Delete some unused variables. + + 2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments + goes after the argument. + + 2000-01-12 Geoff Keating <geoffk@cygnus.com> + + * rs6000.md: Document 'unspec' values used. + (epilogue): New expander. + (movesi_to_cr_one): New expander. + (movesi_to_cr and following): New pattern. + (lmw): New pattern. + (return_internal_si): New pattern. + (return_internal_di): New pattern. + (return_and_restore_fpregs_si): New pattern. + (return_and_restore_fpregs_di): New pattern. + * rs6000.h: Declare new functions. + * rs6000.c (rs6000_stack_info): Use current_function_is_leaf + rather than rs6000_calls_p. + (rs6000_makes_calls): Delete. + (lmw_operation): New function. + (mtcrf_operation): New function. + (rs6000_emit_epilogue): New function. + (output_epilog): Call rs6000_emit_epilogue and final if + !TARGET_SCHED_PROLOG, instead of writing text unconditionally. + + 2000-01-12 Geoff Keating <geoffk@cygnus.com> + + * aix43.h (SUBSUBTARGET_SWITCHES): Document switches. + * aix41.h (SUBSUBTARGET_SWITCHES): Document switches. + * aix.h (SUBTARGET_SWITCHES): Document switches. + * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make + sched-prolog and sched-epilog the same. Document all the + switches. + (TARGET_OPTIONS): No longer allow -mdebug-. + + 2000-01-12 Geoff Keating <geoffk@cygnus.com> + + * rs6000.h (ASM_FILE_END): Move to aix.h. + (EXTRA_SECTIONS): Move to aix.h. + (READONLY_DATA_SECTION): Move to aix.h. + (EXTRA_SECTION_FUNCTIONS): Move to aix.h. + (SELECT_SECTION): Move to aix.h. + (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h. + (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM. + (LINK_REGISTER_REGNUM): New definition. + (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM. + (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both + AIX and SVR4. + * sysv4.h: Delete the code between the inclusion of rs6000.h + and svr4.h. + (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h. + (FP_ARG_MAX_REG): Move generic definition to rs6000.h. + (RS6000_REG_SAVE): Move generic definition to rs6000.h. + (RS6000_SAVE_AREA): Move generic definition to rs6000.h. + * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode. + (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si. + (fix_truncdfsi2_internal_di): New pattern. + (fix_truncdfsi2_store): The second arg here is Pmode too. + (fix_truncdfsi2_load): The second arg here is Pmode too. + (tablejumpdi): Now that switch tables hold only SImode values, + gcc needs to know how to add them to the pc which is DImode. + * rs6000.c (rs6000_stack_info): Use symbolic name for + LINK_REGISTER_REGNUM. + (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used. + (output_toc): Delete unused variables s1 and s2. + (output_ascii): Use fputs not fprintf on a variable string. + + 2000-01-07 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (processor_target_table): Add power3 as alias for 630. + * aix43.h: Revert Aug 2 change. + (HAS_INIT_SECTION): Define, not visible yet. + (LD_INIT_SWITCH): Define, not visible yet. + * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. + + 2000-01-04 Joel Sherrill (joel@OARcorp.com> + + * config/rs6000/rtems.h: Include config/rtems.h. + + 2000-01-04 David Edelsohn <edelsohn@gnu.org> + + * rs6000.h (HANDLE_PRAGMA_PACK): Define. + (SLOW_UNALIGNED_ACCESS): Define. + (CASE_VECTOR_MODE): Always use 32-bit offsets. + (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. + (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op. + (toc_section): Likewise and .toc pseudo-op. + (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in + 64-bit mode. + (TEXT_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use + 32-bit offsets. + + 1999-12-17 Jakub Jelinek <jakub@redhat.com> + + * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure + UNITS_PER_WORD and BITS_PER_WORD are compile time constants when + compiling libgcc2. + + 2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * rs6000.h: Move more stuff from here... + * aix.h: to here. + * sysv4.h: Cleanup accordingly. + * netware.h: Likewise + + 2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * rs6000.h: Continue cleanup. + * aix.h: Likewise. + * lynx.h: Likewise. + * netware.h: Likewise. + * sol2.h: Likewise. + * sysv4.h: Likewise. + * win-nt.h: Likewise. + + * rs6000.h (TARGET_SWITCHES): Add descriptions. + (TARGET_OPTIONS): Likewise. + + * sysv4.h (SUBTARGET_SWITCHES): Add descriptions. + (SUBTARGET_OPTIONS): Likewise. + + * rs6000.md: Fix compile time warnings. + + 2000-01-04 Geoff Keating <geoffk@cygnus.com> + + vxworks patches from the Cygnus tree originally by + Michael Meissner <meissner@cygnus.com> and Vladimir Makarov + <vmakarov@cygnus.com>. + * sysv4.h (SUBTARGET_SWITCHES): Add vxworks. + (ENDFILE_SPEC): Likewise. + (LIB_VXWORKS_SPEC): New macro. + (STARTFILE_VXWORKS_SPEC): New macro. + (ENDFILE_VXWORKS_SPEC): New macro. + (LINK_START_VXWORKS_SPEC): New macro. + (LINK_OS_VXWORKS_SPEC): New macro. + (CPP_OS_VXWORKS_SPEC): New macro. + (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs. + * vxppc.h: Rewrite to use proper configuration method. + * vxppcle.h: New file. + * ../../configure.in: Add powerpcle-wrs-vxworks*. + * ../../configure: Rebuilt. + + 2000-01-04 Geoff Keating <geoffk@cygnus.com> + + Lots of changes to rs6000.h, sysv4.h, aix.h, + aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h, + with the aim that rs6000.h is the first header + included and the others override it. + * aix.h: New file. + + * x-aix41-gld: Remove. + * x-aix43: Remove. + * x-aix41: Remove target-specific switches, and don't specify + -Wl,-bbigtoc as we don't need it any more. + * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above. + Use t-aix43 for AIX 4.3 and above. + * ../../configure: Regenerated. + + * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling + options, that don't do anything yet. + (MASK_SCHED_PROLOG): New macro. + (MASK_SCHED_EPILOG): New macro. + (TARGET_SCHED_PROLOG): New macro. + (TARGET_SCHED_EPILOG): New macro. + + 2000-01-04 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c: Correct comment, the `minimal' TOCs are actually + one per translation unit, not one per function. + (output_toc): Also do duplicate constant elimination + for per-translation-unit TOCs. + + * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add + a comment explaining _exactly_ when this pattern gets used. + (builtin_setjmp_receiver): New pattern for better clarity. + (init_v4_pic): Move it into a section dealing with TOC registers. + + 1999-12-30 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (toc_hash_table): New variable. + (rs6000_hash_constant): New function. + (toc_hash_function): New function. + (toc_hash_eq): New function. + (toc_hash_mark_entry): New function. + (toc_hash_mark_table): New function. + (output_toc): Don't output duplicate TOC entries in + a single file. + (rs6000_add_gc_roots): Add the hash table as a GC root. + * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43, + where they clearly shouldn't be. This may need to be fixed + later when there is a GNU ar for AIX. + * x-aix43: Don't define CLIB or AR_FOR_TARGET. + Don't define BOOT_LDFLAGS as it is now not necessary. + + 1999-12-29 Geoff Keating <geoffk@cygnus.com> + + * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *' + for va_list on AIX. Use unsigned_char_type_node rather than + constructing our own version on svr4. + + 1999-12-17 Geoff Keating <geoffk@cygnus.com> + + * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment, + since patently it's not. + + 1999-12-08 Geoff Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into + define_expand/define_insn pair, and handle restore of the + SVR4 -fpic register. + +Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com) + + * acconfig.h (HAVE_GAS_WEAK): New define. + * configure.in (assembler weak support): Check for .weak support. + * config.in, configure: Rebuilt. + * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if + HAVE_GAS_WEAK is defined. + +2000-03-15 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c (arm_output_epilogue): Do not pass %c to + asm_fprintf(). + +2000-03-15 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (open_include_file): New function. + (find_include_file, cpp_read_file): Use it. + +2000-03-15 Jason Merrill <jason@casey.cygnus.com> + + * cpphash.c (dump_hash_helper): Take the slot, not the element. + +Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com> + + * flow.c (verify_flow_info): Check for unconditional return. + +Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.md (restore_stack_nonlocal): New. + * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop. + (__ia64_restore_stack_nonlocal): New. + * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal. + +2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * cpphash.c (collect_formal_parameters): Do not complain about + parameter names that just start with `__VA_ARGS__'. + +Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and + movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines. + * i386.c (pentiumpro_cost): Set mul cost to 4. + (x86_use_movx): Set for PPro. + +Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (ix86_compute_frame_size): stack_alignment_needed is + STACK_BOUNDARY for empty frames now. + +2000-03-14 Mark Mitchell <mark@codesourcery.com> + + * stor-layout.c (layout_union): Remove. + (layout_union_field): New function, split out from layout_union. + (finish_union_layout): Likewise. + (layout_field): Handle unions by calling layout_union_field. + (finish_record_layout): Handle unions. + (layout_type): Combine RECORD_TYPE, UNION_TYPE, and + QUAL_UNION_TYPE handling. + +Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz> + + * flow.c (fixup_reorder_chain): Avoid double labels in the basic block; + end of basic block is jump_insn, not barrier; use create_basic_block + instead of creating basic block by hand. + +2000-03-14 Jason Eckhardt <jle@cygnus.com> + + * flow.c (reorder_basic_blocks): Account for barriers when writing + over NEXT_INSN (last_bb->end). + (verify_flow_info): Add check for missing barriers. + +2000-03-14 Greg McGary <gkm@gnu.org> + + * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. + * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. + * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, + __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, + __unbounded, __unbounded__): New keywords. + * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. + * c-parse.y, c-parse.c, c-parse.h: Regenerate. + * objc/objc-parse.y, objc/objc-parse.c: Regenerate. + +2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk> + + * cselib.h: New file. + * alias.c: Include "cselib.h". + (fixed_scalar_and_varying_struct_p): Accept the addresses of the + MEMs as two new arguments. + (get_addr): New static function. + (find_base_term): Handle VALUEs. + (memrefs_conflict_p): Likewise. + (true_dependence): Call get_addr on the addresses. + Call fixed_scalar_and_varying_struct_p with addresses that have been + passed through get_addr and canon_rtx. + (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency + with true_dependence. + Call get_addr on the addresses; don't call canon_rtx on the MEMs. + * loop.c: Include "cselib.h". + (load_mems): Process extended basic block that enters the loop with + cselib. Use that information to change initialization of the shadow + register so that a constant equivalence is seen by later passes. + * reload1.c: Include "cselib.h". + (reload_cse_invalidate_regno): Delete function. + (reload_cse_mem_conflict_p): Likewise. + (reload_cse_invalidate_mem): Likewise. + (reload_cse_invalidate_rtx): Likewise. + (reload_cse_regno_equal_p): Likewise. + (reload_cse_check_clobber): Likewise. + (reload_cse_record_set): Likewise. + (reg_values): Delete static variable. + (invalidate_regno_rtx): Likewise. + (reload_cse_delete_noop_set): New static function. + (reload_cse_simplify): New static function, broken out of + reload_cse_regs_1. + (reload_cse_noop_set_p): Delete unused argument INSN. + Just call rtx_equal_for_cselib_p on set source and destination. + (reload_cse_regs_1): Break out some code into reload_cse_simplify and + reload_cse_delete_noop_set. Delete code to keep track of values; use + cselib functions instead. Delete code to push/pop obstacks. + (reload_cse_simplify_set): Use cselib to find equivalent values. + Delete code to push/pop obstacks. + (reload_cse_simplify_operands): Likewise. + * rtl.def (VALUE): New rtx code. + * rtl.h (union rtunion_def): New elt rt_cselib. + (X0CSELIB, CSELIB_VAL_PTR): New macros. + * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h". + (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table, + unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values, + discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p, + hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash, + cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno, + cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx, + cselib_record_set, cselib_record_sets): New static functions. + (cselib_lookup, cselib_update_varray_sizes, cselib_init, + cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p, + references_value_p): New functions. + (MAX_USELESS_VALUES, REG_VALUES): New macros. + (table, cselib_current_insn, next_unknown_value, cselib_nregs, + n_useless_values, reg_values, callmem, cselib_obstack, + cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists): + New static variables. + * varray.h (union varray_data_tag): New elt te. + (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros. + * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update + dependencies. + +2000-03-14 Nick Clifton <nickc@cygnus.com> + + * gcc.c (do_spec_1): Catch the case where %* is used in a + substitution pattern, but it has not been initialised. + Issue a meaningful error message if an unrecognised operator + is encountered in a spec string. + +2000-03-14 Richard Earnshaw <rearnsha@arm.com> + + * function.c (prepare_function_start): Correctly initialize + cfun->stack_alignment_needed. + +2000-03-14 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (find_include_file): Don't assume nshort is a + substring of name. + +Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa configurations): Add pa32-regs.h to the + list of tm files as appropriate. + * configure: Rebuilt. + * pa.c (compute_frame_size): Remove explicit knowledge about FP + register numbering. + (hppa_expand_prologue, hppa_expand_epilogue): Likewise. + (fmpyaddoperands, fmpysuboperands): Likewise. + * pa.h: Remove various definitions which depend on knowing + how registers are numbered. + * pa32-regs.h: New file with PA32 register numbering specific + definitions. + +2000-03-14 Richard Henderson <rth@cygnus.com> + + * regmove.c (combine_stack_adjustments): New. + (stack_memref_p, single_set_for_csa): New. + (free_csa_memlist, record_one_stack_memref): New. + (try_apply_stack_adjustment): New. + (combine_stack_adjustments_for_block): New. + * rtl.h (combine_stack_adjustments): Declare. + * toplev.c (rest_of_compilation): Call it. + + * i386.md: Revert 2000-01-16 change. + +2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * gccbug.in: Add web category, gcc specific classes. + +2000-03-14 Nathan Sidwell <nathan@codesourcery.com> + + * stor-layout.c (finalize_record_size): Fix typo. + +2000-03-14 Stan Shebs <shebs@apple.com> + + * c-typeck.c (c_alignof): Error on incomplete types. + * extend.texi (Alignment): Document this. + +2000-03-13 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c: Include mkdeps.h. + (find_include_file, read_include_file): Remove _cpp_ prefix + from name, make static. + (_cpp_execute_include): New function, broken out of + do_include. + + * cpplib.c: Don't include mkdeps.h. + (struct directive): Remove type field. Reorder entries. The + function takes only one argument. + (struct if_stack): Make type field an int. + (directive_table): Rename to dtable. Generate it, the + prototypes of the directive handlers, and the enum for the + directive numbers, from a template macro. + (do_ifndef, do_include_next, do_import): New functions. + (do_define, do_include, do_endif, do_ifdef, do_if, do_else, + do_undef, do_line, do_elif, do_error, do_pragma, do_warning, + do_ident, do_assert, do_unassert, do_sccs): Take only one + argument. + (do_sccs): Define always, but alter behavior based on + SCCS_DIRECTIVE. + (_cpp_handle_directive, consider_directive_while_skipping): + Restructure for new directive table layout. + + (pass_thru_directive): Take a directive number, not a pointer + to a struct directive. + (parse_include): New function, broken out of do_include. + (do_include, do_import, do_include_next): Use parse_include + and _cpp_execute_include. + (do_elif, do_else): Test for T_ELSE specifically when checking + for #elif/#else after #else. + (parse_ifdef): New function, broken out of do_ifdef. + (validate_else): Expect a name arg without a leading #. + (if_directive_name): Delete. + (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call + directive handlers with only one argument. + + * cpphash.h: Update prototypes. + (enum node_type): Remove entries for directives. + * Makefile.in: Update dependencies. + + * cpphash.c (dump_hash_helper): Only dump nodes of type + T_MACRO. Emit a newline after each definition. + +2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * gccbug.in: New file. + * configure.in (all_outputs): Add gccbug. + * Makefile.in (install-common): Install gccbug. + (GCCBUG_INSTALL_NAME): New variable. + * configure: Rebuilt. + +2000-03-13 Jason Merrill <jason@casey.cygnus.com> + + * function.c (put_var_into_stack): Use type_for_mode to calculate + part_type. Use MEM_SET_IN_STRUCT_P. + * expr.c (store_field): Handle CONCAT. + (store_constructor): Use fields_length. + * tree.c (fields_length): New fn. + * tree.h: Declare it. + +2000-03-13 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (LIBCPP_OBJS): Add cpplex.o. + (cpplex.o): New target. + * po/POTFILES.in: Add cpplex.c. + + * cpplex.c (_cpp_grow_token_buffer, null_cleanup, + cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer, + cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer, + skip_block_comment, skip_line_comment, skip_comment, + copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line, + _cpp_parse_name, skip_string, parse_string, + _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token, + _cpp_get_directive_token, find_position, + _cpp_read_and_prescan, _cpp_init_input_buffer): Move here. + (maybe_macroexpand, _cpp_lex_token): New functions. + + * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark, + parse_goto_mark): Delete. + (_cpp_handle_eof): New function. + (_cpp_handle_directive): Rename from handle_directive. + (_cpp_output_line_command): Rename from output_line_command. + (do_if, do_elif): Call _cpp_parse_expr directly. + * cppfiles.c (_cpp_read_include_file): Don't call + init_input_buffer here. + * cpphash.c (quote_string): Move here, rename _cpp_quote_string. + * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive + here; pop the token_buffer and skip the rest of the line here. + * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer + here. + + * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P): + Define here. + (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK, + CPP_GOTO_MARK): New macros. + (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line, + _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token, + _cpp_read_and_prescan, _cpp_init_input_buffer, + _cpp_grow_token_buffer, _cpp_get_directive_token, + _cpp_handle_directive, _cpp_handle_eof, + _cpp_output_line_command): Prototype them here. + * cpplib.h (enum cpp_token): Add CPP_MACRO. + (CPP_RESERVE, get_directive_token, cpp_grow_buffer, + quote_string, output_line_command): Remove. + +2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk> + + * stmt.c (expand_end_case): RANGE may be signed, and when checking + whether it is too large we must also verify that it isn't negative. + +2000-03-13 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0. + (movsi_zero_liveg0): Remove. + (movsf_insn_novis_liveg0): Remove. + (negsi2): Remove. + (negsi2_not_liveg0): Rename to negsi2. + (one_cmplsi2): Remove. + (one_cmplsi2_not_liveg0): Rename to one_cmplsi2. + (one_cmplsi2_liveg0): Remove. + * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE, + MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove. + (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if. + (PREDICATE_CODES): Remove zero_operand. + * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and + TARGET_BROKEN_SAVERESTORE. + (zero_operand): Remove. + * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0, + -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore + options. + (SUBTARGET_OVERRIDE_OPTIONS): Remove. + * config/sparc/linux-aout.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Remove. + * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + + * config/sparc/sparc.md (return_df_no_fpu): New pattern. + +2000-03-13 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (do_pragma_implementation): Fix off-by-one error + truncating a string. Don't assume tokens are nul terminated. + Problem noted by Andreas Jaeger <aj@suse.de> + +2000-03-13 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (add_name_and_src_coords_attributes): Only add + DW_AT_MIPS_linkage_name for TREE_PUBLIC decls. + (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline. + +2000-03-13 Richard Earnshaw <rearnsha@arm.com> + + * stor-layout.c (new_record_layout_info): Fix typo inside ifdef + STRUCTURE_SIZE_BOUNDARY. + +2000-03-13 Mark Mitchell <mark@codesourcery.com> + + * tree.h (record_layout_info_s): New structure. + (record_layout_info): New type. + (new_record_layout_info): New function. + (layout_field): Likewise. + (finish_record_layout): Likewise. + * stor-layout.c (layout_record): Remove. + (new_record_layout_info): New function. + (layout_field): New function, broken out from layout_record. + (finalize_record_size): Likewise. + (compute_record_mode): Likewise. + (finalize_type_size): New function, broken out from layout_type. + (finish_record_layout): Likewise. + (layout_type): Use them. + +2000-03-12 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c: Don't include version.h. + (special_symbol) [case T_VERSION]: Look for the string in + hp->value.cpval; don't use version_string. + * cppinit.c (initialize_builtins): Set hp->value.cpval for + __VERSION__ to version_string. + * Makefile.in (cpphash.o): Update deps. + +2000-03-12 Zack Weinberg <zack@wolery.cumb.org> + + Convert cpplib to use libiberty/hashtab.c. + + * cpplib.h (struct cpp_reader): Make hashtab and + all_include_files of type 'struct htab *'. Delete HASHSIZE + and ALL_INCLUDE_HASHSIZE macros. + + * cpphash.h: Update prototypes. + (struct hashnode): Remove next, prev, and bucket_hdr members. + Make length a size_t. Add hash member. + (struct ihash): Remove next member. Add hash member. Make + name a flexible array member. + + * cppfiles.c: Include hashtab.h. + (include_hash): Delete. + (IHASHSIZE): New macro. + (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions. + (cpp_included): Do the hash lookup here. + (_cpp_find_include_file): Rewrite. + (cpp_read_file): Put the "fake" hash entry into the hash + table. Honor the control_macro, if it turns out we've seen + the file before. Don't push the buffer here. + (_cpp_read_include_file): Push the buffer here. + (OMODES): New macro. Use it whenever we call open(2). + + * cpphash.c: Include hashtab.h. + (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper, + _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode, + _cpp_lookup_slot): New functions. + (HASHSIZE): new macro. + (hashf, _cpp_install, _cpp_delete_macro): Delete. + (_cpp_lookup): Use hashtab.h routines. + + * cppinit.c: Include hashtab.h. + (cpp_reader_init): Call _cpp_init_macro_hash and + _cpp_init_include_hash. Don't allocate hashtab directly. + (cpp_cleanup): Just call htab_delete on pfile->hashtab and + pfile->all_include_files. + (initialize_builtins): Use _cpp_make_hashnode and + htab_find_slot to add hash entries. + (cpp_finish): Just call _cpp_dump_macro_hash. + * cpplib.c: Include hashtab.h. + (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to + create hash entries. + (do_pragma_poison, do_assert): Likewise. + (do_include): Don't push the buffer here. Don't increment + system_include_depth unless _cpp_read_include_file succeeds. + (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot + or htab_remove_elt. + (do_pragma_implementation): Use alloca to create copy. + + * Makefile.in: Update dependencies. + +2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cppinit.c (cl_directive_handler): More K&R fixing. + +Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.c (ia64_compute_frame_size): Align size to + STACK_BOUNDARY. + * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses. + +2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth): + Change from char[] to macros. + +2000-03-12 Neil Booth <NeilB@earthling.net> + + * cppinit.c (cpp_start_read): Update indirect function + call to K&R C. + +Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com> + + * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79 + entry. + + * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages. + +2000-03-11 Neil Booth <NeilB@earthling.net> + + * cppinit.c (struct pending option): Replace undef with a + pointer to a directive handling routine. + (struct cpp_pending): Replace separate assert_ and define_ + lists with one directive_ list. + (new_pending_define): Rename new_pending_directive. Extra + argument is the directive's handling routine. + (handle_option): Update to use new_pending_directive. + +2000-03-11 Neil Booth <NeilB@earthling.net> + + * cppfiles.c (file_cleanup, _cpp_find_include_file, + remap_filename, _cpp_read_include_file, actual_directory, + hack_vms_include_specification): Replace bcopy(), index() etc + calls. Add casts to some allocations. Make some variables + pointers to const [unsigned] char. + * cpphash.c (_cpp_install, macro_cleanup, collect_expansion, + collect_formal_parameters): Similarly. + * cppinit.c (struct pending_option, append_include_chain, + cpp_options_init, cpp_reader_init, initialize_standard_includes, + cpp_start_read, new_pending_define, handle_option): Similarly. + * cpplib.c (cpp_define, copy_comment, do_define, do_include, + do_undef, do_error, do_warning, do_pragma, do_pragma_once, + do_pragma_implementation, detect_if_not_defined, + do_ifdef, skip_if_group, cpp_get_token, parse_string, + do_assert, do_unassert): Similarly. + * cpplib.h (cpp_buffer, cpp_options): Update types. Update + function prototypes. + * mkdeps.c (deps_add_target, deps_add_dep): cast allocations. + +2000-03-10 Richard Henderson <rth@cygnus.com> + + * builtins.c (expand_builtin_strlen): Revert last change. + Use emit_insn_before if we're at the beginning of a sequence. + +2000-03-10 Jason Merrill <jason@casey.cygnus.com> + + * builtins.c (expand_builtin_strlen): Make sure that we have something + at the beginning of the sequence. + + * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for + deferred inlines. + + * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. + +2000-03-10 Richard Henderson <rth@cygnus.com> + + * except.c (can_throw): Use INTVAL on a CONST_INT. + (reachable_handlers): Likewise. + * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise. + +2000-03-10 Andreas Jaeger <aj@suse.de> + + * config/mips/linux.h: Undefine MD_EXEC_PREFIX and + MD_STARTFILE_PREFIX since those are not needed on linux. + (ASM_FILE_START): New, from mips/gnu.h. + +2000-03-09 Richard Henderson <rth@cygnus.com> + Alex Samuel <samuel@codesourcery.com> and others + + * Makefile.in (ssa.o): New rule. + (OBJS): Add ssa.o. + (STAGESTUFF): Add *.ssa and *.ussa. + (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa. + * rtl.def (PHI): New RTL expression. + * rtl.h (clear_log_links): New declaration. + (convert_to_ssa): Likewise. + (convert_from_ssa): Likewise. + * flow.c (split_edge): If the entry node falls through to the + split edge's source block, split the entry edge. + (clear_log_links): New function. + * toplev.c (ssa_dump): New variable. + (flag_ssa): Likewise. + (f_options): Add "ssa". + (compile_file): Create SSA dump files. + (rest_of_compilation): Go to and from SSA if enabled. + (decide_d_option): Handle -de for SSA dump files. + * ssa.c: New file. + +Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com> + + * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL + same as VAR_DECL. + +2000-03-09 Benjamin Kosnik <bkoz@cygnus.com> + + * config/alpha/linux.h (WCHAR_TYPE): Make consistent. + +Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com) + + * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case. + (MD_STARTFILE_PREFIX_1): New macro. + +2000-03-09 Robert Lipe <robertl@sco.com> + + * config/ia64/ia64.c: Include system.h. + +2000-03-09 Jason Merrill <jason@casey.cygnus.com> + + * except.c (nothrow_function_p): If -fno-exceptions, just return. + (init_eh_nesting_info): Likewise. + + * tree.h (struct tree_common): Rename raises_flag to nothrow_flag. + (TREE_NOTHROW): Rename from TREE_RAISES. + * toplev.c (rest_of_compilation): Set it. + * print-tree.c (print_node): Adjust. + * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES. + (stabilize_reference_1, get_unwidened, get_narrower): Likewise. + * calls.c (emit_call_1): Add 'nothrow' parm. Add + REG_EH_REGION note as appropriate. + (libfunc_nothrow): New fn. + (emit_library_call, emit_library_call_value): Use it. + (expand_call): Check TREE_NOTHROW. + + * varasm.c (make_decl_rtl): Skip initial '*' when setting + DECL_ASSEMBLER_NAME. + +2000-03-09 Andreas Jaeger <aj@suse.de> + + * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define. + (TARGET_MEM_FUNCTIONS): Define. + +2000-03-09 Jason Merrill <jason@casey.cygnus.com> + + * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int. + + * except.c (can_throw): See through a SEQUENCE. + (nothrow_function_p): New fn. + * except.h: Declare it. + * function.c (current_function_nothrow): New var. + (prepare_function_start): Initialize it. + * output.h: Declare it. + * toplev.c (rest_of_compilation): Set it. + * dwarf2out.c (dwarf2out_begin_prologue): Use it. + +2000-03-09 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (collect_formal_parameters): strncmp returns 0 for + match. (cpp_compare_defs): Count the nul separator when + advancing over argument names. + +2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk> + + * recog.c (preprocess_constraints): Matching constraints affect + same alternative/different operand, not same operand/different + alternative. + + * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable + register and a constant specially. + +2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * libgcc2.h: New file. + * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. + +Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com> + + * configure.in (ia64*-*-elf*, ia64*-*-linux*): New. + * configure: Regenerate. + * config/ia64: New. + +2000-03-08 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (LIBCPP_DEPS): New macro. + (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use + it to declare deps. + * cpperror.c: Include cpphash.h. + * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS + dingleberry. + (lex): Don't use CPP_WARN_UNDEF. + (_cpp_parse_expr): Return an int, the truth value. + * cppfiles.c: Include cpphash.h. + (_cpp_merge_include_chains): Move to cppinit.c and make static. + * cppinit.c (include_defaults_array): Disentangle. + (cpp_cleanup): Don't free the if stack here. + (cpp_finish): Pop off all buffers, not just one. + * cpplib.c (eval_if_expr): Return int. + (do_xifdef): Rename do_ifdef. + (handle_directive): Don't use CPP_PREPROCESSED. + (cpp_get_token): Don't use CPP_C89. + * fix-header.c: Don't use CPP_OPTIONS. + + * cpplib.h: Move U_CHAR, enum node_type, struct + file_name_list, struct ihash, is_idchar, is_idstart, + is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK, + CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC, + CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q, + CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER, + CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes + of _cpp_simplify_pathname, _cpp_find_include_file, + _cpp_read_include_file, and _cpp_parse_expr to cpphash.h. + Move struct if_stack to cpplib.c. Move struct cpp_pending to + cppinit.c. + Change all uses of U_CHAR to be unsigned char instead. + Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED. + +2000-03-08 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (dw_fde_struct): Add 'nothrow'. + (dwarf2out_begin_prologue): Set it. + (output_call_frame_info): Don't emit EH unwind info for leaves. + + * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow + can occur outside of an EH region. + * except.c: Correct comments about rethrow behavior. + (rethrow_symbol_map): Do nothing if !flag_new_exceptions. + +2000-03-08 Andrew MacLeod <amacleod@cygnus.com> + + * flow.c (make_edges): Always call make_eh_edge for calls. + +2000-03-08 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete. + (struct cpp_buffer): Remove fname and underflow fields. + (struct cpp_reader): Remove get_token field. + (struct include_hash): Rename to struct ihash. Add typedef to + IHASH. + (struct if_stack): Remove fname field. + (IF_STACK_FRAME): Rename to IF_STACK. + + * cpperror.c (print_containing_files): Trust that there are no + macro buffers below the top file buffer. + * cppfiles.c: Replace all references to 'struct include_hash' + with 'IHASH'. Rename initialize_input_buffer to + init_input_buffer. Don't set or reference cpp_buffer->fname, + use buffer->ihash->name instead. + * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL + not CPP_NULL_BUFFER. + * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not + IF_STACK_FRAME, IHASH not struct include_hash. + * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove + null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not + struct include_hash, NULL not CPP_NULL_BUFFER. Remove all + references to cpp_buffer->fname (delete entirely, or use + ->ihash->name instead) and IF_STACK->fname. + (cpp_push_buffer): Don't set new->underflow. + (do_include): Use cpp_file_buffer. + + * cpphash.c (collect_formal_parameters): Remove duplicate + increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is + used as a macro argument name. Don't append "..." to namebuf + for varargs macros. After we're done scanning, go through + namebuf and make it NUL separated, not comma separated. + (_cpp_compare_defs): Remove register tag from variables. + Expect defn->argnames to be NUL separated. + (_cpp_dump_definition): Expect defn->argnames to be NUL + separated and in forward order. + * cpphash.h: Update documentation of argnames field. + +2000-03-08 Richard Henderson <rth@cygnus.com> + + * builtins.c (expand_builtin_strlen): Be prepared for strlensi + to fail. Don't pre-expand the source operand. + + * i386.md (strlensi): Initialize eoschar and align before use. + +2000-03-08 Jason Merrill <jason@casey.cygnus.com> + + * expr.c (expand_expr, case ARRAY_REF): Still check for missing + CONSTRUCTOR element. + +2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com> + + * mips.c (mips_expand_prologue): If the last + named argument is the vararg marker "va_list", treat it as + an unnamed argument. + +2000-03-08 Clinton Popetz <cpopetz@cygnus.com> + + * dbxout.c (dbxout_parms): When correcting for promoted + big-endian parameters, use the mode of the DECL_RTL rather + than UNITS_PER_WORD. + +2000-03-08 Nathan Sidwell <nathan@codesourcery.com> + + * c-common.h (make_fname_decl): Declare. + * c-common.c (make_fname_decl): Define. + (declare_hidden_char_array): Remove. + (declare_function_name): Use make_fname_decl. + * c-decl.c (c_make_fname_decl): New function. + (init_decl_processing): Set make_fname_decl. + +Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com) + + * cccp.c (handle_directive): Initialize backslash_newlines_p. + +2000-03-07 Philipp Thomas <pthomas@suse.de> + + * po/POTFILES.in: Remove cppalloc.c from file list. + +2000-03-07 Steve Chamberlain <sac@pobox.com> + + * pj.c (pj_expand_prologue): current_function->args_info is + now current_function_args_info. + + * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX, + LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define. + +2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is + output as hexadecimal rather than the default octal. + +2000-03-07 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (special_symbol): Fix thinko in previous commit. + +2000-03-07 Neil Booth <NeilB@earthling.net> + + * cppexp.c (struct operation, left_shift, right_shift, + cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some + "int"s to "unsigned int"s. + * cpplib.c (detect_if_not_defined, do_assert, do_unassert): + Similarly. + * cpplib.h: Update for above. + * mkdeps.c (deps_init, deps_calc_target): Cast pointers + returned from allocations. + + * cppinit.c (opt_comp, parse_options): New functions. + (handle_option): Use parse_option to parse a single command + line option, that possibly takes an argument. + (cpp_handle_options): Sort the array of command line options on + first invocation (non-ASCII hosts only). + (print_help): Update. + +2000-03-07 Zack Weinberg <zack@wolery.cumb.org> + + * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in + backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>. + + * cppfiles.c (_cpp_find_include_file): Make sure ih->name is + initialized. + * cppinit.c (cpp_cleanup): Free imp->nshort also. + + * cpperror.c (cpp_print_containing_files, + cpp_print_file_and_line, v_cpp_message): Rename to + print_containing_files, print_file_and_line, and v_message. + * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename + to _cpp_parse_expr, parse_escape, and lex. + (parse_charconst): Remove broken multibyte support. + * cppfiles.c (include_hash): Make static. + (cpp_included): New function. + (merge_include_chains, find_include_file, finclude, + simplify_pathname): Rename to _cpp_merge_include_chains, + _cpp_find_include_file, _cpp_read_include_file, and + _cpp_simplify_pathname. + * cpphash.c (cpp_lookup, free_definition, delete_macro, + cpp_install, create_definition, macroexpand, compare_defs, + dump_definition): Rename to _cpp_lookup, _cpp_free_definition, + _cpp_delete_macro, _cpp_install, _cpp_create_definition, + _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition. + * cppinit.c (cpp_handle_option): Rename to handle_option, make + static. + * cpplib.c: Remove extern prototype of cpp_parse_expr. + + * cpphash.h: Update prototypes. + * cpplib.h: Likewise. Prototype _cpp_parse_expr here. + +2000-03-07 Andrew Haley <aph@cygnus.com> + + * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change; + PTRDIFF_TYPE should be based solely on Pmode. + (SIZE_TYPE): ditto. + +2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * rtl.h (rtunion_def): Constify member `rtstr'. + (emit_line_note_after, emit_line_note, emit_line_note_force, + emit_note, decode_asm_operands): Constify. + + * cse.c (canon_hash): Likewise. + + * dbxout.c (dbxout_block): Likewise. + + * diagnostic.c (file_and_line_for_asm, v_error_for_asm, + v_warning_for_asm): Likewise. + + * dwarfout.c (function_start_label): Likewise. + + * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note, + emit_line_note_force): Likewise. + + * final.c (last_filename, asm_insn_count, final_scan_insn, + output_source_line): Likewise. + + * function.h (struct emit_status): Likewise. + + * gcse.c (hash_expr_1): Likewise. + + * genattr.c (gen_attr, main): Likewise. + + * genattrtab.c (struct function_unit, current_alternative_string, + write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq, + attr_numeral, check_attr_test, check_attr_value, + convert_set_attr_alternative, convert_set_attr, + compute_alternative_mask, simplify_by_exploding, gen_attr, + gen_unit): Likewise. + + * genflags.c (gen_insn): Likewise. + + * gengenrtl.c (type_from_format): Likewise. + + * genopinit.c (gen_insn): Likewise. + + * genoutput.c (n_occurrences, process_template, process_template): + Likewise. + + * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): + Likewise. + + * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): + Likewise. + + * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable, + ggc_set_mark, ggc_get_size): Likewise. + + * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise. + + * optabs.c (init_one_libfunc): Likewise. + + * output.h (assemble_start_function): Likewise. + + * recog.c (decode_asm_operands): Likewise. + + * toplev.c (rest_of_compilation): Likewise. + + * tree.h (emit_line_note_after, emit_line_note, + emit_line_note_force): Likewise. + + * varasm.c (asm_output_bss, asm_output_aligned_bss, + asm_emit_uninitialised, assemble_start_function, + assemble_variable, const_hash, compare_constant_1, + find_pool_constant, mark_constant_pool, assemble_alias): Likewise. + + * xcoffout.h (DBX_FINISH_SYMBOL): Likewise. + + * alpha/alpha.md (call_vms, call_value_vms): Likewise. + + * arm/aof.h (ASM_OUTPUT_ASCII): Likewise. + + * arm/aout.h (ASM_OUTPUT_ASCII): Likewise. + + * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p, + arm_dllimport_name_p): Likewise. + + * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op): + Likewise. + + * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p, + arm_mark_dllexport, arm_mark_dllimport, + arm_pe_encode_section_info): Likewise. + + * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS, + ASM_FINISH_DECLARE_OBJECT): Likewise. + + * arm/thumb.c (thumb_function_prologue): Likewise. + + * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise. + + * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise. + + * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/i386-protos.h (asm_output_function_prefix): Likewise. + + * i386/i386.c (asm_output_function_prefix): Likewise. + + * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT, + ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII, + ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. + + * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise. + + * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. + + * m32r/m32r.c (m32r_encode_section_info): Likewise. + + * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mcore/mcore.c (mcore_encode_section_info): Likewise. + + * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/mips.h (ASM_OUTPUT_IDENT): Likewise. + + * mips/mips.md (movdi, movsi): Likewise. + + * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII): Likewise. + + * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog, + output_mi_thunk, output_toc): Likewise. + + * rs6000/rs6000.md (movsi): Likewise. + + * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. + + * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise. + + * v850/v850.c (print_operand, print_operand_address, + v850_encode_data_area): Likewise. + +2000-03-07 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.md (zero_extendsidi2): Always force operand + one to memory for mips16. + +Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. + (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. + (attribute_hash_list, type_hash_canon): hashcode is now unsigned. + (type_hash_lookup, type_hash_add, type_hash_list): Likewise. + (min_precision): Result is unsigned. + (add_double, neg_double, mul_double): Low word is unsigned. + (lshift_double, rshift_double, lrotate_double): Likewise. + (rrotate_double, div_and_round_double): Likewise. + (tree_floor_log2, compare_tree_int): New functions. + (preserve_rtl_expr_temps): New declaration. + * c-common.c (declare_hidden_char_array): Use compare_tree_int. + (decl_attributes): Use tree_log2 to find alignment. + Check for TREE_INT_CST_HIGH for format args. + (min_precision): Now unsigned. + Use tree_floor_log2. + (truthvalue_conversion): Delete long-disabled code. + * c-decl.c (finish_struct): Clean up tests on field width. + (finish_function): Use compare_tree_int. + * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. + * c-typeck.c (comptypes): Use tree_int_cst_equal. + (default_conversion, digest_init): Use compare_tree_int. + (build_binary_op): Use integer_all_onesp and compare_tree_int. + Fix type errors in forming masks. + * calls.c (initialize_argument_information): Use compare_tree_int. + * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. + * except.c (expand_eh_region_start_tree): Use compare_tree_int. + * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. + (store_field): Use compare_tree_int. + (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. + (expand_expr, case ARRAY_REF): Use compare_tree_int. + (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. + (do_store_flag): Use compare_tree_int. + * fold-const.c (encode, decode): Low part is always unsigned. + (force_fit_type, add_double, neg_double, mul_double): Likewise. + (lshift_double, rshift_double, lrotate_double): Likewise. + (rrotate_double, div_and_round_double, int_const_binop): Likewise. + (fold_convert): Use compare_tree_int. + (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. + (invert_truthvalue, case INTEGER_CST): Likewise. + (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. + * mkdeps.c (deps_dummy_targets): Make I unsigned. + * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. + (lshift_double, rshift_double, lrotate_double, rrotate_double): + Likewise. + * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. + (expand_end_case): Use compare_tree_int. + (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. + * stor-layout.c (mode_for_size_tree): Use compare_tree_int. + (layout_decl): Likewise. + (layout_record, layout_union): Make sizes unsigned. + (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. + (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. + * tree.c (struct type_hash): hashcode is unsigned. + (build_type_attribute_variant, type_hash_list): Likewise. + (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. + (attribute_hash_list, build_array_type, build_method_type): Likewise. + (build_complex_type): Likewise. + (real_value_from_int_cst): Remove unneeded casts. + (integer_all_onesp): Add casts. + (tree_floor_log2, compare_tree_int): New functions. + (build_index_type): Use tree_int_cst_sgn. + * varasm.c (assemble_variable): Use compare_tree_int. + +2000-03-06 Jason Merrill <jason@casey.cygnus.com> + + * cpphash.c (collect_expansion): Also catch ## at start of macro. + + * varasm.c (make_decl_rtl): Don't add a number to members of + local classes. + (make_function_rtl): Likewise. + +2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * gcse.c (compute_can_copy): Adjust if/else blocks from rth's + patch from 2000-01-28. + +2000-03-06 Clinton Popetz <cpopetz@cygnus.com> + + * config/sh/sh.c: (barrier_align): Handle a delay slot that is + filled with an insn from the jump target. + +2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x-protos.h (c4x_global_name): Constify char *. + (c4x_external_ref): Likewise. + * config/c4x/c4x.c (struct name_list): Likewise. + +1999-12-16 Ben Collins <bcollins@debian.org> + + * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth + argument to genmultilib. + * genmultilib: accept new MULTILIB_EXCLUSIONS option and output + the contents into the multilib.h header. + * gcc.c: Declare multilib_exclusions for the specs file. + (set_multilib_dir): Use it. + (print_multilib_info): Likewise. + * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option + to pass to genmultilib. + +2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.c (built_in_class_names, built_in_names): Constify a + char*. + + * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not + int. + (_mcleanup): Ensure value matches format specifier in sprintf. + + * cpphash.c (special_symbol): Don't needlessly cast away + const-ness. + + * cppinit.c (base_name): Delete unused prototype. + + * mkdeps.c (deps_init): Make definition K&R safe. + + * tree.h (built_in_class_names, built_in_names): Constify a + char*. + +2000-03-06 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept + floating point instructions for epilogue delay. + + * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs + to gas if it supports .register pseudo. + + * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to + LONG_DOUBLE_TYPE_SIZE if not defined. + Use MAX_LONG_DOUBLE_TYPE_SIZE instead of + LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. + * real.c: Likewise. + * gengenrtl.c: Likewise. + * print-rtl.c: Likewise. + * rtl.c: Likewise. + * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set + MASK_LONG_DOUBLE_128. + * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. + * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. + * config/sparc/linux64 (TARGET_DEFAULT): Likewise. + (SUBTARGET_SWITCHES): Define. + (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling + with -mlong-double-128. + (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. + (MAX_LONG_DOUBLE_TYPE_SIZE): Define. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. + (CC1_SPEC): Include -mlong-double-{64,128} as needed. + * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. + (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling + with -mlong-double-128. + (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. + (MAX_LONG_DOUBLE_TYPE_SIZE): Define. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. + * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, + TARGET_LONG_DOUBLE_128): Define. + * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. + * config/sparc/sparc.c (sparc_override_options): Disallow 64bit + long double on TARGET_ARCH64. + +2000-03-06 Mark Mitchell <mark@codesourcery.com> + + * function.c (free_temps_for_rtl_expr): Don't free slots + that have been pushed into a higher level. + + Revert this patch: + 2000-03-05 Mark Mitchell <mark@codesourcery.com> + +2000-03-05 Mark Mitchell <mark@codesourcery.com> + + * basic-block.h (ALLOCA_REG_SET): Remove. + (INITIALIZE_REG_SET): New macro. + * flow.c (update_life_info): Use it. + (calculate_global_regs_live): Likewise. + (propagate_block): Likewise. + * global.c (build_insn_chain): Likewise. + * haifa-sched.c (schedule_region): Likewise. + +2000-03-05 Stephane Carrez <stcarrez@worldnet.fr> + + * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer. + (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP. + (DWARF_ARANGES_PAD_SIZE): New define. + (output_aranges): Use it to pad the address range header. + (DWARF_ROUND): Fix for non power of 2 rounding. + +2000-03-05 Jason Merrill <jason@casey.cygnus.com> + + * mkdeps.c (deps_calc_target): Remove incorrect 'const'. + +2000-03-05 Mark Mitchell <mark@codesourcery.com> + + * tree.def (RTL_EXPR): Update documentation. + * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. + * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. + * function.c (preserve_rtl_expr_temp): New function. + (preserve_rtl_expr_temps): Likewise. + (preserve_rtl_expr_result): Use it. + + Revert this patch: + 2000-03-04 Mark Mitchell <mark@codesourcery.com> + +2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net> + + * regmove.c (copy_src_to_dest) Do not create src->dest move + for unchanging destination. + +2000-03-04 Mark Mitchell <mark@codesourcery.com> + + * function.h (struct sequence_stack): Remove rtl_expr. + (struct emit_staus): Likewise. + (seq_rtl_expr): Remove. + * tree.h (free_temps_for_rtl_expr): Don't declare. + (start_sequence_for_rtl_expr): Likewise. + * rtl.h (preserve_rtl_expr_result): Likewise. + * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr. + (start_sequence_for_rtl_expr): Remove. + (push_topmost_sequence): Don't save sequence_rtl_expr. + (pop_topmost_sequence): Remove comment about not restoring it. + (end_sequence): Don't set seq_rtl_expr. + (init_emit): Don't initialize it. + (mark_sequence_stack): Don't mark it. + (mark_emit_status): Likewise. + * except.c (protect_with_terminate): Use + start_sequence_for_rtl_expr, not start_sequence. + * expr.c (expand_expr, case RTL_EXPR): Don't call + preserve_rtl_expr_result or free_temps_for_rtl_expr. + * function.c (assign_stack_temp_for_type): Don't set rtl_expr. + (preserve_rtl_expr_result): Remove. + (free_temps_for_rtl_expr): Likewise. + (pop_temp_slots): Likewise. + (mark_temp_slot): Don't mark the rtl_expr. + * stmt.c (expand_start_stmt_expr): Use start_sequence, not + start_sequence_for_rtl_expr. + +2000-03-04 Zack Weinberg <zack@wolery.cumb.org> + + * mkdeps.c, mkdeps.h: New files. + * po/POTFILES.in: Add them. + * Makefile.in (LIBCPP_OBJS): Add mkdeps.o. + (cpplib.o, cppinit.o): Depend on mkdeps.h. + (mkdeps.o): New target. + + * cppfiles.c: Delete deps_output. + * cppinit.c: Include mkdeps.h. Delete known_suffixes, + OBJECT_SUFFIX, and base_name. + (cpp_cleanup): Use deps_free. Free ihash->name when clearing + the include hash. + (initialize_dependency_output): Use deps_init, + deps_add_target, deps_calc_target, and deps_add_dep. Remove + all the unnecessary string bashing. + (cpp_finish): Use deps_write. Remove an unnecessary nesting + level. + * cpplib.c (do_include): Use deps_add_dep. + * cpplib.h (struct cpp_reader): Replace deps_buffer, + deps_allocated_size, deps_size, deps_column members with + single pointer to a struct deps. Delete prototype of + deps_output. + + * cppinit.c: Fix thinko in previous patch. + +Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed. + * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise. + (mode_for_size_tree): New function. + (layout_decl, layout_type): Call it and clean up BLKmode checks. + * tree.h (mode_for_size_tree): New declaration. + + * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused. + +2000-03-04 Jason Merrill <jason@casey.cygnus.com> + + * stmt.c (is_body_block): Move... + * dwarfout.c, dwarf2out.c: ...from here. + * tree.h: Declare it. + * emit-rtl.c (remove_unncessary_notes): Don't remove the body block. + * final.c (final_start_function): Do call remove_unnecessary_notes + when scheduling. + +2000-03-03 Zack Weinberg <zack@wolery.cumb.org> + + * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX. + + * cpplib.h (_dollar_ok): New macro. + (is_idchar, is_idstart): Use it. + (IStable): Rename to _cpp_IStable. Declare it const if + gcc >=2.7 or C99. Delete all references to FAKE_CONST. + (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace, + is_space): Update for renamed IStable. + + * cppinit.c: Delete all references to FAKE_CONST and CAT + macros. Define init_IStable as empty macro if gcc >=2.7 or + C99. Change TABLE() to ISTABLE and hardcode name of table. + (cpp_start_read): Don't change the IStable based on + dollars_in_ident. + + * cpphash.c (unsafe_chars): Add pfile argument. All callers + changed. Handle '$' for char1 correctly. + * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers. + + * cppexp.c (tokentab2): Make const. + (cpp_lex): Make toktab const. + * cppinit.c (include_defaults_array): Make const. + (initialize_standard_includes): Make default_include const. + +2000-03-03 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning. + (dwarf2out_decl): Functions can now have DECL_IGNORED_P. + (gen_decl_die): Likewise. + * dwarfout.c (dwarfout_file_scope_decl): Likewise. + (output_decl): Likewise. + + * varasm.c (make_function_rtl): If we change the name used in the + rtl, update DECL_ASSEMBLER_NAME accordingly. + (make_decl_rtl): Likewise. + + * toplev.c (rest_of_compilation): Tweak formatting. + + * toplev.c (rest_of_compilation): find_loop_tree_blocks before + remove_unnecessary_notes. + (debug_ignore_block): New fn. + * toplev.h: Declare it. + * emit-rtl.c (remove_unncessary_notes): Call it. + * dwarf2out.c (dwarf2out_ignore_block): New fn. + * dwarf2out.h: Declare it. + * final.c (final_start_function): Don't call remove_unnecessary_notes + if we did insn scheduling. + +2000-03-03 Zack Weinberg <zack@wolery.cumb.org> + + * cppinit.c (cpp_handle_option): Set opts->pedantic directly. + * cpplib.h: Delete SET_CPP_PEDANTIC. + +Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if + result is a RECORD_TYPE. + +2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added. + +2000-03-03 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer + addition over compliments over shifts. + +Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_combine_note_use): Handle return register USEs. + REG case: Handle multi-hard-register hard regs. + +Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * md.texi: Document use of '*' in insn pattern name. + +2000-03-03 Jason Merrill <jason@casey.cygnus.com> + + * calls.c (special_function_p): operator new may not be malloc-like. + + * gcse.c (dump_hash_table): Really fix error in last change. + +2000-03-02 Denis Chertykov <denisc@overta.ru> + + * avr.c (print_operand): Use print_operand_address instead of + output_addr_const. + * avr/libgcc.S: Cleanup code. + +2000-03-02 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_emit_set_const_1): Also try c + small constant. + +2000-03-02 Mark Mitchell <mark@codesourcery.com> + + * tree.h (TYPE_ALIGN_UNIT): New macro. + +2000-03-02 Clinton Popetz <cpopetz@cygnus.com> + + * i386.c: (constant_call_address_operand): Reject CONST_INT. + +2000-03-02 Jason Merrill <jason@casey.cygnus.com> + + * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set + for the buffer. + (SET_CPP_PEDANTIC): New macro. + * cpplib.c (do_include): Don't bother checking system_header_p. + (do_warning, do_ident, do_assert, do_unassert): Likewise. + * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC. + + * function.h (struct expr_status): Add x_arg_space_so_far. + (arg_space_so_far): New macro. + * expr.c (init_expr): Initialize it. + * calls.c (emit_call_1): Reset it. + (compute_argument_block_size, expand_call): Use it. + (expand_call, store_one_arg): Increment it. + +Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * varasm.c (output_constant): Strip off a CONVERT_EXPR to + a UNION_TYPE. + +2000-03-02 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (cpp_read_file): New function. + + * cpphash.c (collect_expansion): Make sure to reset last_token + to NORM when we hit a string. Handle trailing whitespace + properly when the expansion is empty. + (create_definition): Disable line commands while parsing the + directive line. + (dump_definition): If pfile->lineno == 0, output a line + command ahead of the dump, and add a trailing newline. + + * cppinit.c (append_include_chain): Add fifth argument, which + indicates whether or not system headers are C++ aware. + (initialize_standard_includes): New function, + broken out of read_and_prescan. Pass 'cxx_aware' value from + the include_defaults_array on to append_include_chain. + (dump_special_to_buffer): Const-ify char array. + (builtin_array): Don't dump __BASE_FILE__. + (cpp_start_read): Use cpp_read_file. Reorder code for + clarity. Don't output line commands here for -D/-A/-U + switches. Don't call deps_output for files included with + -include or -imacros. + + * cpplib.c (do_define): Don't pay any attention to the second + argument. + (cpp_expand_to_buffer): Disable line commands while scanning. + (output_line_command): Work in the file buffer. + * cpplib.h: Remove no_record_file flag from struct cpp_reader. + Fix formatting of comments. Prototype cpp_read_file. + +Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink + reference the language-equivalent of sizetype. + * c-typeck.c (comptypes): Treat sizetype like its language equivalent. + * fold-const.c (size_binop, size_diffop): Put back checks. + * gcse.c (dump_hash_table): Fix minor error in last change. + * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype. + Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of + all sizetypes. + +Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (expand_call) Do not attempt to combine stack adjustments + with inhibit_defer_pop set. + +2000-03-01 Mark Mitchell <mark@codesourcery.com> + + * stor-layout.c (layout_decl): Allow front-ends to explicitly set + the DECL_SIZE for a FIELD_DECL. + +2000-03-01 Bruce Korb <bkorb@gnu.org> + + * fixinc/inclhack.tpl: remove unused symlinks + * fixinc/README: GCC Maintainer info + * fixinc/inclhack.sh: regen + * fixinc/fixincl.sh: regen + +2000-03-01 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (collect_expansion): Trim trailing white space + from macro definitions, but don't go past the last insertion + point. + +Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (mulqi3): New pattern. + +2000-02-29 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New + token types. + (struct cpp_reader): Add parsing_if_directive and + parsing_define_directive flags. + (struct cpp_options): Remove output_conditionals flag. + (check_macro_name): Delete prototype. + + * cpphash.h (struct macrodef): Delete. + (struct reflist): Separate from struct definition. + (struct definition): Remove unused fields. Add column number. + (create_definition): Returns a DEFINITION *. Takes a + cpp_reader * and an int. + + * cpphash.c (SKIP_WHITE_SPACE): Delete. + (PEEKC): Copy defn from cpplib.c. + (rest_extension, REST_EXTENSION_LENGTH): Delete. + (struct arg): New. + (struct arglist): Simplify. + (collect_expansion): Rewrite. Get tokens by calling + cpp_get_token. Add more error checking. + (collect_formal_parameters): New function, broken out of + create_definition and reworked to use get_directive_token. + (create_definition): All real work is now in collect_expansion + and collect_formal_parameters. do_define handles finding the + macro name. Return a DEFINITION, not a MACRODEF. + (macroexpand): Replace bcopy with memcpy throughout. Replace + character-at-a-time copy loop with memcpy and pointer increments. + (compare-defs): d1->argnames / d2->argnames might be null. + + * cpplib.c (copy_rest_of_line): Delete function. + (skip_rest_of_line): Do all the work ourselves. + (skip_string): New function. + (parse_string): Use skip_string. + (get_macro_name): New function. + (check_macro_name): Delete. + (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q. + (cpp_skip_hspace): Use CPP_BUMP_LINE. + (handle_directive): ICE if we're called on a macro buffer. + (do_define): Determine macro name and type (funlike/objlike) + here. Expunge all uses of MACRODEF. + (cpp_push_buffer): Set line_base to NULL. + (do_undef, read_line_number): Don't worry about getting a POP token. + (eval_if_expression): Set/reset parsing_if_directive around + cpp_parse_expr. Don't clear only_seen_white. + (skip_if_group): Remove output_conditionals logic. Use + skip_rest_of_line. + (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE + tokens under appropriate conditions. + (cpp_unassert): Call do_unassert not do_assert. Oops. + + * cppexp.c (parse_defined): New function, break out of + cpp_lex. + (cpp_lex): We now get CPP_ASSERTION tokens and can check them + ourselves, with cpp_defined. + * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput. + + * gcc.dg/20000209-2.c: Turn off -pedantic-errors. + * gcc.dg/strpaste-2.c: New. + +2000-02-29 Mark Mitchell <mark@codesourcery.com> + + * fold-const.c (size_binop): Don't asert inputs are the same and + have TYPE_IS_SIZETYPE set. + (size_diffop): Likewise. + +2000-02-29 Jason Merrill <jason@casey.cygnus.com> + + * dwarfout.c (output_block): Output abstract blocks even if they + don't have TREE_ASM_WRITTEN set. + + * calls.c (emit_library_call): Check for null REG. + +2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * c-decl.c (current_function_decl): Move to toplev.c. + (init_decl_processing): Don't add current_function_decl as a ggc + root here. + * dbxout.c (dbxout_symbol): Change return type to int. + (dbxout_symbol_location, dbxout_syms): Likewise. + (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without + any locals. Use current_function_func_begin_label if set. + * dbxout.h (dbxout_symbol, dbxout_syms): Change return type. + * dwarf2out.c (dwarf2out_begin_prologue): Set + current_function_func_begin_label. + * final.c (final_start_function): Reset it. + * toplev.c (current_function_decl): Define it here. + (current_function_func_begin_label): New variable. + (main): Add both as ggc roots. + * tree.h (current_function_func_begin_label): Declare. + +Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * gcse.c: Cleanups throughout: mostly white-space, but also + some minor rearrangement of code. + +Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com) + + * calls.c (emit_library_call): Do not abort if FUNCTION_ARG + returns a PARALLEL. Use emit_group_load and use_group_regs + as needed. + (emit_library_call_value): Similarly. + + * pa/t-pa: Use quadlib.c instead of quadlib.asm. + * pa/quadlib.asm: Remove. + * pa/quadlib.c: New file. + + * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format. + * configure: Rebuilt. + +2000-02-29 Philip Blundell <pb@futuretv.com> + + * config/arm/conix-elf.h: New file. + * configure.in (arm*-*-conix*): New configuration. + * configure: Regenerate. + +2000-02-28 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (gen_block_die): Output abstract blocks even if they + don't have TREE_ASM_WRITTEN set. + +Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * Eliminate DECL_FIELD_SIZE. + * builtins.c (built_in_class_names, built_in_names): New variables. + * c-decl.c (finish_struct): Set specified size in DECL_SIZE. + * expr.c (expand_expr, case COMPONENT_REF): Get field size from + DECL_SIZE, not DECL_FIELD_SIZE. + * print-tree.c (print_node): Remove code that prints extra blank + lines in some cases. + Properly handle inline and builtin function cases. + * stor-layout.c (layout_decl): Get specified size from DEC_SIZE. + * tree.h (built_in_class_named, built_in_names): New declarations. + (union tree_decl): Rename internal unions to u1 and u2 and change + some of their components. + Add new field built_in_class. + (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE): + Reflect above changes. + (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise. + (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted. + * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE. + (encode_field_decl): Likewise; also remove obsolete test for bitfield. + +2000-02-28 Dmitri Makarov <dim@windriver.com> + + * extend.texi: Document ARM's support for long/short calls. + + * invoke.texi: Document ARM's -mlong-calls command line switch. + + * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. + (arm_encode_call_attribute): Add prototype. + (arm_set_default_type_attribute): Add prototype. + (arm_strip_name_encoding): Add prototype. + + * config/arm/arm.c (arm_init_cumulative_args): replace + initialisation og 'long_calls' field with initialisation of + 'call_cookie' field. + (enum arm_pragma_enum): New enum. + (arm_pragma_long_calls): New static variable. + (arm_process_pragma): Also process "#pragma long_calls_off". + (arm_valid_type_attribute_p): Accept short_call attribute. + (arm_comp_type_attributes): Check long/short call attributes. + (arm_encode_call_attribute): New function: Encode long_call + or short_call attribute in function name. + (arm_set_default_type_attributes): New function: Assign + default attributes to newly defined type. + (current_file_function_operand): New function: Return true if + the symbol is a function which has already been compiled. + (arm_is_longcall_p): New function: Return true if the + indicated function should be called via a long call. + (arm_get_strip_length): New function. Returns number of + prefix characters to be stripped from a function's name. + (arm_strip_name_encoding): New function. Strip prefix characters + from a function's name. + + * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field + with 'call_cookie'. + (SHORT_CALL_FAG_CHAR): Define. + (LONG_CALL_FAG_CHAR): Define. + (ENCODED_SHORT_CALL_ATTR_P): Define. + (ENCODED_LONG_CALL_ATTR_P): Define. + (ARM_NAME_ENCODING_LENGTHS): Define. + (STRIP_NAME_ENCODING): Define. + (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. + (ARM_ENCODE_CALL_TYPE): Define. + (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. + (ARM_DECLARE_FUNCTION_SIZE): Define. + (SET_DEFAULT_TYPE_ATTRIBUTES): Define. + + * config/arm/arm.md (call): Call arm_is_longcall_p to decide + if a long call is needed. + (call_value): Ditto. + (call_symbol): Ditto. + + * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of + ARM_DECLARE_FUNCTION_SIZE. + + * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. + (SUBTARGET_NAME_ENCODING_LENGTHS): Define. + (ARM_STRIP_NAME_ENCODING): Undefine. + (STRIP_NAME_ENCODING): Undefine. + (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. + (ASM_DECLARE_FUNCTION_NAME): Ditto. + (ASM_OUTPUT_COMMON): Ditto. + (ASM_DECLARE_OBJECT_NAME): Ditto. + + * config/arm/pe.c (arm_dllexport_name_p): Check for + ARM_PE_FLAG_CHAR. + (arm_dllimport_name_p): Ditto. + (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. + (arm_mark_dllimport): Ditto. + +Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. + +2000-02-28 Mark Mitchell <mark@codesourcery.com> + + * xcoffout.c (xcoffout_begin_function): Fix typo in previous change. + +2000-02-28 Zack Weinberg <zack@wolery.cumb.org> + + * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE. + * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if + NO_BUILTIN_WCHAR_TYPE is not defined. + (CPP_WCHAR_TYPE): Delete. + * cccp.c (main): Don't change wchar_type if cplusplus. + (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE. + +2000-02-28 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long". + +Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com> + + * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define. + (ASM_WEAKEN_LABEL): Define. + +Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz> + + * expr.c (store_constructor): Do not emit USE. + * rtl.h (stupid_life_analysis): Remove. + +Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * function.c (number_blocks): Reset next_block_index based on + what debugging format is used, not what is defined. + + * lcm.c: Minor reformatting throughout. + (reg_dies, reg_becomes_live): Properly handle multiple hard regs. + + * toplev.c (rest_of_compilation): Account for time in + optimize_mode_switching. + + * jump.c (jump_optimize_1): Don't call delete_barrier_successors + if only marking labels. + +Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (expand_call): Attempt to combine stack adjustments with + pending stack adjustments. + +Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * loop.c (reg_in_basic_block_p): Don't abort when falling through + to the end of the function. + +2000-02-27 Mark Mitchell <mark@codesourcery.com> + + * emit-rtl.c (remove_unncessary_notes): Remove notes for empty + blocks. + * final.c (next_block_index): Remove. + (max_block_depth): Likewise. + (pending_blocks): Likewise. + (init_final): Don't initialize them. + (final_start_function): Don't set next_block_index. Set up + BLOCK_NUMBER. + (final_scan_insn): Use BLOCK_NUMBER, not next_block_index. + * function.h (number_blocks): New function. + * function.c (get_block_vector): New function. + (identify_blocks): Use it. + (reorder_blocks): Set NOTE_BLOCK. + (number_blocks): New function. + * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag. + * tree.h (BLOCK_NUMBER): New macro. + (tree_block): Add block_num field. + * dbxout.c (next_block_number): Remove. + (dbxout_init): Don't set it. + (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN + set. Use BLOCK_NUMBER, rather than next_block_num, to determine + block numbers. + * toplev.c (rest_of_compilation): Always call + find_loop_tree_blocks. Fix indentation. + * dwarf2out.c (next_block_number): Remove. + (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, + to determine block numbers. + (gen_inlined_subroutine_die): Likewise. + (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set. + (decls_for_scope): Don't increment next_block_number. + * dwarfout.c (next_block_number): Remove. + (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, + to determine block numbers. + (output_inlined_subroutine_die): Likewise. + (output_block): Only output blocks that have TREE_ASM_WRITTEN set. + (output_decls_for_scope): Don't increment next_block_number. + * sdbout.c (next_block_number): Remove. + (sdbout_block): Use BLOCK_NUMBER. + (sdbout_begin_block): Simplify. + * xcoffout.c (next_block_number): Remove. + (xcoffout_block): Use BLOCK_NUMBER, not next_block_number. + (xcoffout_begin_block): Don't set next_block_number. + (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not + next_block_number. + +Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * builtins.c (c_strlen): Use size_diffop and return ssizetype value. + (expand_builtin_strcpy): Pass correct type to size_binop. + (expand_builtin_strcmp): Likewise. + Clean up conditional structure. + * c-decl.c (init_decl_processing): Don't call set_sizetype twice. + (complete_array_type): Don't use size_binop for MAXINDEX. + * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. + (c_sizeof_nowarn, c_size_in_bytes): Likewise. + (c_alignof): Use size_one_node. + (build_unary_op): Pass arg of proper type to size_binop. + (really_start_incremental_init, push_init_level): Use sizetype for + constructor{,_bit,_unfilled}_index. + (pop_init_label, output_init_element): Likewise. + (output_pending_init_elements, process_init_element): Likewise. + * calls.c (compute_argument_block_size): Field VAR is ssizetype. + * expr.c (store_expr): Use size_int. + (store_constructor): Use proper types for size_binop args. + (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. + (expand_expr_unaligned): Likewise. + (string_contant): Return object of sizetype. + * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. + (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. + (ARGS_SIZE_TREE): Pass proper types to size_binop. + * fold-const.c (int_const_binop): Refine when size_int is called. + (fold_convert): Likewise. + (size_int_wide): Rework to take KIND as arg, only take low order + bits, handle new sizetype_tab datatype, and chain entries in + size_table. + (size_int_type_wide): New function. + (size_binop): Validate types of arguments. + (ssize_binop): Deleted. + (size_diffop): New function. + (extract_muldiv): Only fold division into multiplication for sizetypes. + * function.c (assign_parms): Use size_diffop and make sure + VAR field is of ssizetype; also pass proper type to size_binop. + (locate_and_pad_parm, pad_to_arg_alignment): Likewise. + (round_down): Deleted from here. + * store-layout.c (sizetype_tab): Now an array. + (sizetype_set, early_root_list): New variables. + (variable_size): Use size_one_node. + (round_up): Pass proper type to size_binop. + (round_down): Moved to here and corrected as above. + (layout_record): Pass proper arg types to size_binop. + (layout_type): Likewise. + If sizetype_set is zero, record the type just laid out. + (make_unsigned_type): Don't call set_sizetype; + (make_signed_type): Likewise; also, call fixup_signed_type. + (initialize_sizetypes): New function. + (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and + set name of bitsizetype to "bit_size_type". + Fix up type of sizes of all types made before call. + * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. + * tree.c (fix_sizetype): Deleted. + (build_common_tree_nodes): Call initialize_sizetypes. + (build_common_tree_nodes_2): Don't call fix_sizetype. + * tree.h (TYPE_IS_SIZETYPE): New macro. + (initialize_sizetype): New declaration. + (enum size_type_kind): New type. + (struct sizetype_tab): Deleted. + (sizetype_tab): Now array; adjust sizetype macros. + (size_diffop, size_int_type_wide): New functions. + (size_int_wide): Change number of args and type; access macros changed. + (ssize_int, sbitsize_int): New macros. + * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. + (ROUND_TYPE_SIZE_UNIT): New macro. + +2000-02-27 Zack Weinberg <zack@wolery.cumb.org> + + * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *. + +Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long): + Mark as possibly unused. + + * cse.c (cse_insn): Delete dead code involving tablejump. + Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. + + * Makefile.in (libcpp.a): Start by deleting it. + +2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * cpplib.h (enum file_change_code): Added rename_file. + * cpplib.c (do_line): If a filename is given, set file_change to + rename_file. + (output_line_command): If file_change is rename_file, always + output a # directive with the file name. + + * cpplib.c (do_pragma): Accept #pragma without consecutive token. + +2000-02-26 Mark Mitchell <mark@codesourcery.com> + + * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE + when copying a PARM_DECL or RESULT_DECL. + +2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fix-header.c (recognized_function): Also fix prototypes for + functions taking "void". + +2000-02-26 Geoff Keating <geoffk@cygnus.com> + + * reload1.c (do_output_reload): Check reg_reloaded_valid before + looking at reg_reloaded_contents. + +2000-02-26 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (STMP_FIXINC): New toggle. + (LIBGCC2_DEPS): Delete all references. + (stmp-headers): Delete target. All references either deleted + or changed to stmp-int-headers. + (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO. + (LIBCPP_OBJS): Take out cppalloc.o. + (cppalloc.o): Delete target. + (stmp-int-hdrs): Depend on $(STMP_FIXINC). + (gen-protos, fix-header): Link with libiberty.a. + * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC + to empty. + + * configure.in: Remove refs to strerror. + * acconfig.h: Take out NEED_DECLARATION_STRERROR. + * system.h: Take out strerror stanza. + + * cpperror.c (my_strerror): Delete function. + (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror. + * cppmain.c (main): Call xmalloc_set_program_name first thing. + * cppalloc.c: Delete file. + * gen-protos.c: Don't provide xrealloc. + + * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use + xstrerror throughout. + +2000-02-26 Bruce Korb <bkorb@gnu.org> + + * fixinc/inclhack.def (undefine_null): the bypass pattern needs to + match for DOS headers, too. + * fixinc/inclhack.sh,fixincl.x: Regenerate. + +2000-02-26 Geoff Keating <geoffk@cygnus.com> + + * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default + is right for most ELF targets. + * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. + Let the default file use %U properly. + * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the + default. + + * config/fp-bit.c (pack_d): Properly handle rounding of denormal + numbers. + +Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * toplev.c (documented_lang_options): Correct spelling error. + (decode_d_option, decode_f_option, main): Likewise. + + * toplev.c (print_time): Avoid SIGFPE when all_time is zero. + + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at + to tell assembler it is permitted to expand large constants. + +2000-02-25 Mumit Khan <khan@xraylith.wisc.edu> + + * protoize.c: (AUX_INFO_SUFFIX): New macro. + (aux_info_suffix): Use. + (SAVE_SUFFIX): New macro. + (save_suffix): Use. + (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null. + (gen_aux_info_file): Use aux_info_suffix instead of ".X". + (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames. + + * invoke.texi (Running Protoize): Update documentation. + +2000-02-25 Mark Elbrecht <snowball3@bigfoot.com> + + * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines. + +2000-02-25 John Wehle (john@feith.com) + + * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to. + +2000-02-25 Anthony Green <green@cygnus.com> + + * toplev.c (rest_of_compilation): Rebuild jump labels if + combine_instructions has created a new direct jump. + * combine.c (try_combine): Add new_direct_jump_p argument. Set it + when appropriate. + (combine_instructions): Call try_combine with new argument. + Return non-null value when new direct jump instruction is created. + * rtl.h: combine_instructions returns an int. + +Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Replace the PATTERN of the insn with an new + jump when changing a computed jump into a jump to a known + target. + +Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk> + + * resource.c (mark_referenced_resources): Changed use SET_DEST (...) + to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER. + + * i386.md (define_expand "clrstrsi"): Fix typo. + +Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com> + + * rtl.texi: Fix typo. + +Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by + UNITS_PER_WORD. Change caller initial_elimination_offset. + (rounded_frame_size): Take into account that argument pushed has + changed. Fix TARGET_ALIGN_DOUBLE problem. + +2000-02-25 Geoff Keating <geoffk@cygnus.com> + + * haifa-sched.c (schedule_block): Explain the real reason + we delete REG_SAVE_NOTEs on the first insn of a block. + Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP. + +2000-02-24 Mark Mitchell <mark@codesourcery.com> + + * input.h (push_srcloc): New function. + (pop_srcloc): Likewise. + * toplev.c (push_srcloc): Define it. + (pop_srcloc): Likewise. + +2000-02-24 Richard Henderson <rth@cygnus.com> + + * flow.c (life_analysis): When collecting reg info, clear + regs_ever_live. + +Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + Fix bug exposed by reload.c no longer rounding the frame + size to BIGGEST_ALIGNMENT: + * sh.c (rounded_frame_size): New function. + (sh_expand_prologue, sh_expand_epilogue): Use it. + (initial_elimination_offset): Likewise. + +Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change: + * sh-protos.h (sh_need_epilogue): Declare. + * sh.c (sh_need_epilogue_known): New static variable. + (sh_need_epilogue): New function. + (function_epilogue): Clear need_epilogue_known. + * sh.md (return): Split into expander / insn pattern. + Make the expander conditional on ! sh_need_epilogue (). + +2000-02-24 Nathan Sidwell <nathan@codesourcery.com> + + * machmode.h (get_mode_alignment): Declare. + (GET_MODE_ALIGNMENT): Call it. + * stor-layout.c (get_mode_alignment): New function. Make + sure alignment is always power of 2. + +2000-02-23 Zack Weinberg <zack@wolery.cumb.org> + + * i386.h: Remove useless definition of "I386" and misleading + comment above it. + +2000-02-23 Zack Weinberg <zack@wolery.cumb.org> + + * tree.h (TREE_SET_PERMANENT): New macro. Document conditions + under which TREE_PERMANENT will be set. + * tree.c (make_node, copy_node, make_tree_vec, tree_cons, + build1): Use TREE_SET_PERMANENT. + * print-tree.c (print_node): Don't report value of + TREE_PERMANENT if ggc_p is true. + + * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to + decide whether to give a type a new alias set. + * objc/objc-act.c (build_objc_string_object): Never copy the string. + * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective + of value of 'obstack'. + + +2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (c4x_process_after_reload): Split all insns. + +2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. + * cpplib.c (cpp_get_token): Produce them. + * cppexp.c (cpp_lex): Handle them. + +2000-02-23 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c (arm_comp_type_attributes): Simply and + comment tests on type attributes. + +Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * final.c (shorten_branches): Make value passed to LOOP_ALIGN + conform to documentation. + * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align + to check for special cases. + * sh-protos.h (sh_loop_align): Declare. + * sh.c (sh_loop_align): Define. + +2000-02-22 Andrew Haley <aph@cygnus.com> + + * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas. + (SIZE_TYPE): Is 32 bits when using -mgp32. + (PTRDIFF_TYPE): Ditto. + +Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * diagnostic.c (init_output_buffer): Handle case of null PREFIX. + +2000-02-23 Zack Weinberg <zack@wolery.cumb.org> + + * config/i386/i386.h: If IN_TARGET_LIBS is defined, make + BIGGEST_FIELD_ALIGNMENT a constant. + +2000-02-21 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (output_line_info): Put the marker for the end of + the line number info at the actual end. + (gen_struct_or_union_type_die): Use decl_function_context + to check for local classes. + * dwarfout.c (output_type): Likewise. + +Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) + + * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference + for arguments with a mode, but no type. + (FUNCTION_ARG_CALLEE_COPIES): Similarly. + * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm. + * pa/long_double.h: New file. + * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11 + both have 128bit wide long doubles. + * configure: Rebuilt. + +2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * defaults.h (ASM_OUTPUT_ASCII): Constify a char*. + + * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain, + fixup_reorder_chain, skip_insns_between_block): Add static prototypes. + (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS. + + * haifa-sched.c (rank_for_schedule): Don't cast away const-ness. + + * integrate.c (compare_blocks, find_block): Likewise. + + * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2. + + * rtl.h (set_file_and_line_for_stmt): Constify a char*. + + * stmt.c (stmt_status, set_file_and_line_for_stmt, + expand_asm_operands): Likewise. + +Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com> + + * predict.c (estimate_probability): Added the pointer heuristic to + the collection of static branch predictors. + +2000-02-21 Catherine Moore <clm@cygnus.com> + + * config/mips/mips.h (ASM_SPEC): Add -mfix700. + * invoke.texi (-mfix7000): Document. + +2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> + + * diagnostic.c (init_output_buffer): Make it possible to output at + least 32 characters if we're given a too long prefix. + +2000-02-20 Mark Mitchell <mark@codesourcery.com> + + * varasm.c (initializer_constant_valid_p): Call + lang_expand_constant to simplify the constant. + +2000-02-20 Bruce Korb <bkorb@gnu.org> + + * fixinc/inclhack.def(stdio_va_list): + typedef needs to be disabled. + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +2000-02-20 Geoff Keating <geoffk@cygnus.com> + + * print-rtl.c (print_rtx): Don't print addresses when + flag_dump_unnumbered. + +2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * sparc.c (sparc_output_scratch_registers): Mark parameter with + ATTRIBUTE_UNUSED. + (sparc_va_arg, sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Cast value to unsigned in + comparison. + (sparc_emit_float_lib_cmp): Remove unused variable `cmp'. + + * sparc.md: Add default case in switch. + +2000-02-19 Richard Henderson <rth@cygnus.com> + + * c-typeck.c (add_pending_init): Don't abort for multiple + fields at the same offset. + (pending_init_member): Test the correct member. + +2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node) + instead of SImode. + (start_catch_handler) : Same. + +2000-02-19 Brad Lucier (lucier@math.purdue.edu) + + * Makefile.in: Have flow.o depend on $(EXPR_H) + +Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * c-common.c (decl_attributes): Set DECL_SIZE_UNIT. + * c-decl.c (duplicate_decls, finish_enum): Likewise. + (finish_decl): Remove -Wlarger-than code from here. + * flags.h (id_clash_len): Now int. + (larger_than_size): Now HOST_WIDE_INT. + * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed. + Clean up checking to see if in table. + (make_bit_field_ref): Remove extra parm to bitsize_int. + * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT. + * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT. + * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size + and for computing size of decl. + * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT. + Move -Wlarger-than code to here. + (layout_record): Remove extra arg to bitsize_int. + Set TYPE_BINFO_SIZE_UNIT. + (layout_union): Remove extra arg to bitsize_int. + Use proper type for size of QUAL_UNION. + (layout_type): Remove extra arg to bitsize_int. + * toplev.c (id_clash_len): Now int. + (larger_than_size): Now HOST_WIDE_INT. + (decode_W_option): Clean up id-clash and larger-than- cases. + * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts. + (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined. + * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New. + (struct tree_decl): New field size_unit. + (size_int_wide): No HIGH operand; NUMBER is now signed. + (size_int_2): Deleted. + (size_int, bitsize_int): Don't use it and rework args. + * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT. + +Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com) + + * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call. + +2000-02-18 Geoff Keating <geoffk@cygnus.com> + + * invoke.texi (Warning Options): Add an explanation of why + you might want the -Wfloat-equal flag. + +Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. + * cppinit.c (new_pending_define): Add cast to avoid warning. + * expmed.c (extract_bit_field): Likewise. + * flow.c (enum reorder_skip_type): New type. + (skip_insns_between_blcok): New it. + Rework to avoid warning about possibly undefined variable. + * function.c (assign_parms): Make thisparm_boundary unsigned. + * genrecog.c (write_switch): Cast XWINT result to int. + * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. + * mips-tfile.c (init_file): Make two versions of FDR intializer: + one for MIPS and one for Alpha. + (get_tag, copy_object): Add casts to avoid warnings. + * optabs.c (init_one_libfunc): Cast NAME to (char *). + * reload.c (find_reloads): Make TYPE enum reload_type. + * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". + * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. + * varasm.c (compare_constant_1): Add cast to avoid warning. + * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC + to (char *). + (alpha_expand_unaligned_load, alpha_expand_unaligned_store): + Cast switch operand of size to int. + (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. + * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort + in unhandled case. + +2000-02-18 Nick Clifton <nickc@cygnus.com> + + * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate + anything for an alignment of zero. + + * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate + anything for an alignment of zero. + +2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> + + * gcc.texi (Bug Reporting): Refer to bugs.html. + (Bug Lists): Likewise. + * system.h (GCCBUGURL): New preprocessor define. + * rtl.c (fancy_abort): Use it. + * gcc.c (main): Likewise. + +2000-02-18 Richard Henderson <rth@cygnus.com> + + * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove. + (life_analysis_1): Subsume into ... + (life_analysis): ... here. Force PROP_REG_INFO off after reload. + Use update_life_info for the relaxation. + (update_life_info): Update REG_BASIC_BLOCK for registers live on + entry and regs_live_at_setjmp. + (set_noop_p): Simplify. + (notice_stack_pointer_modification_1): Renamed from s/_1//. + (record_volatile_insns): Split into ... + (delete_noop_moves): ... here, + (notice_stack_pointer_modification): ... here, + (insn_dead_p): ... and here. + (propagate_block): Don't query INSN_VOLATILE. + (mark_used_regs): Mind !PROP_REG_INFO. + * toplev.c (rest_of_compilation): Call mark_constant_function here, + not in life_analysis. + +Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com) + + * loop.c (canonicalize_condition): New function, + broken out of get_condition. + (get_condition): Use it. + * expr.h (canonicalize_condition): Prototype it. + + * tree.h (tree_int_cst_msb): Declare. + * tree.c (tree_int_cst_msb): New function. + +2000-02-17 Mark Mitchell <mark@codesourcery.com> + + * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt + isn't set. + + * invoke.texi (-fmessage-length=n): Document. + +2000-02-17 Jason Merrill <jason@casey.cygnus.com> + + * bitmap.c (bitmap_operation): Don't leak bitmap elements. + +2000-02-17 Mark Mitchell <mark@codesourcery.com> + + * function.c (thread_prologue_and_epilogue_insns): Put a line note + after the prologue. + +2000-02-17 Nick Clifton <nickc@cygnus.com> + + * config/arm/thumb.c: Replace includes of system headers with + #include "system.h". + +2000-02-16 Richard Henderson <rth@cygnus.com> + + * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]: + Add crtbeginS.o and crtendS.o. + * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o. + (ENDFILE_SPEC): Use crtendS.o. + * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets. + + * alpha/crtbegin.asm (__do_frame_takedown): Merge into ... + (__do_global_dtors_aux): ... here. Call __cxa_finalize if + shared and present. + (__dso_handle): New variable. + * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime + bias to __CTOR_END__. + +2000-02-16 Richard Henderson <rth@cygnus.com> + + * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T). + +Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * longlong.h (__clz_tab): Declare as static to match definition. + +2000-02-16 Mark Elbrecht <snowball3@bigfoot.com> + + * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h. + (XREF_FILE_NAME): Define. + + * i386/djgpp.h (DATA_SECTION_ASM_OP): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + (IDENT_ASM_OP): Define. + (TEXT_SECTION_ASM_OP): Define. + (CPP_SPEC): Define. + (CTORS_SECTION_ASM_OP): Define. + (CTOR_SECTION_FUNCTION): Use it. + (DTORS_SECTION_ASM_OP): Define. + (DTOR_SECTION_FUNCTION): Use it. + +2000-02-16 Zack Weinberg <zack@wolery.cumb.org> + + * reg-stack.c (emit_swap_insn): Do not put a new insn before a + NOTE_BASIC_BLOCK. + + * flow.c (dump_regset, debug_regset, dump_bb, debug_bb, + debug_bb_n): New functions. + (dump_flow_info, print_rtl_with_bb): Use dump_regset. + * basic-block.h: Prototype new functions. + +Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru> + + * configure.in: Add support for avr target. + * configure: Rebuilt. + + * invoke.texi: Add AVR invocation docs. + * install.texi: Add information about AVR. + * md.texi: Add AVR constraint letters description. + * extend.texi: Add description for AVR specific attributes. + +2000-02-16 Jason Merrill <jason@casey.cygnus.com> + + * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C". + +2000-02-16 Nick Clifton <nickc@cygnus.com> + + * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw. + (make_insn_raw): Move RTL check here. + +2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * version.c: Include gansidecl.h and version.h. + + * version.h: Wrap entire file in macro __GCC_VERSION_H__. + + * configure.in (gcc_version): When setting, narrow search to + lines containing `version_string'. + + * Makefile.in (mainversion): Likewise. + (GCC_H): New variable. + (gcc.h): Delete target. + (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h. + (version.o): Depend on version.h. + (dbxout.o): Don't depend on gcc.h. + +Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com> + Michael Meissner <meissner@cygnus.com> + + * md.texi (Simple Constraints): Add item about whitespace. + * genoutput.c (strip_whitespace): New. + (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call + strip_whitespace for constraints. + Test pointer using NULL, not 0. + +2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * cpplib.c (do_line): Pedwarn for #line > 32767. + + * c-lex.c (readescape): Warn about '\x', but do not reject it. + +2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> + + * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define + to default cpp spec. + (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__. + * cpp.texi: Document __GNUC_PATCHLEVEL__. + * cpp.1: Likewise. + + * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to + default spec. + +2000-02-15 Denis Chertykov <denisc@overta.ru> + + * configure.in: Add support for avr target. + +Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode. + (sh_addr_diff_vec_mode): Don't declare. + * sh.c (sh_addr_diff_vec_mode): Delete. + +Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn. + +Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. + (smulsi3_highpart_i): Name. + (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. + (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. + (smulsi3_highpart, umulsi3_highpart): Likewise. + + (mulsidi3_i, umulsidi3_i): Make rtl describe operation + correctly independent of endianness. + (mulsidi3, umulsidi3): Now define_insn. Hide details that + confuse the optimizers. + (mulsidi3+1, umulsidi3+1): New define_split. + +Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com> + + * config/sh/sh.md: Guard insn splits against illegal registers. + * config/sh/sh.h: Correct comment about macros. + +Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + Andrew MacLeod <amacleod@cygnus.com> + + * Makefile.in (lcm.o): Depend on insn-attr.h. + * basic-block.h (optimize_mode_switching): Declare. + * lcm.c (tm_p.h, insn-attr.h): #include. + (seginfo, bb_info): New structs. + (antic, transp, comp, delete, insert) : New file-scope static variables. + (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. + (reg_becomes_live, optimize_mode_switching): Likewise. + * tm.texi: Add description of mode switching macros. + * toplev.c (rest_of_compilation): Call optimize_mode_switching. + + * sh-protos.h (remove_dead_before_cse): Remove prototype. + (fldi_ok, fpscr_set_from_mem): New prototypes. + * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. + (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): + Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). + (sh_flag_remove_dead_before_cse): Remove declaration. + (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. + (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. + (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. + * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). + (barrier_align): Allow for JUMP_INSNS containing a parallel. + (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. + (fldi_ok): New function. + (get_fpscr_rtx): Add fpscr_rtx as GC root. + (emit_sf_insn): Only generate fpu switches when optimize < 1. + (emit_df_insn): Likewise. + (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. + (sh_flag_remove_dead_before_cse): Delete. + (get_free_reg, fpscr_set_from_mem): New functions. + * sh.md (movdf, movsf): Remove no_new_pseudos code. + (return): Remove emit_fpscr_use / remove_dead_before_cse calls. + +2000-02-15 Loren Rittle <ljrittle@acm.org> + + * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD. + +2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o, + cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h. + + * cccp.c: Include version.h and/or don't declare `version_string'. + * collect2.c: Likewise. + * alpha.c: Likewise. + * arm/aof.h: Likewise. + * arm/coff.h: Likewise. + * arm/elf.h: Likewise. + * arm/pe.h: Likewise. + * arm/tcoff.h: Likewise. + * arm/telf.h: Likewise. + * arm/tpe.h: Likewise. + * arm/vxarm.h: Likewise. + * convex/convex.c: Likewise. + * i386/dgux.c: Likewise. + * i386/sun386.h: Likewise. + * m88k/m88k.c: Likewise. + * mcore/mcore-pe.h: Likewise. + * mips/mips.h: Likewise. + * romp/romp.h: Likewise. + * sh/sh.c: Likewise. + * cpphash.c: Likewise. + * cppinit.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * gcc.c: Likewise. + * gcc.h: Likewise. + * mips-tfile.c: Likewise. + * protoize.c: Likewise. + * toplev.c: Likewise. + * tree.h: Likewise. + + * version.c (version_string): Constify a char*. + + * version.h: New file. + +2000-02-14 Nick Clifton <nickc@cygnus.com> + + * configure.in: Add mcore-elf and mcore-pe targets. + * configure: Regenerate. + + * NEWS: Add note that MCore port has been contributed. + + * invoke.texi: Document command line switches for MCore port. + * install.texi: Add MCore to list of supported targets. + +2000-02-14 Geoff Keating <geoffk@cygnus.com> + + * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames, + then we will need to import the frame handling functions. + (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need + to import the frames themselves. + +Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com> + Jason Eckhardt <jle@cygnus.com> + + * basic_block.h: Added prototype for reorder_basic_blocks. + * toplev.c: Changes to add -freorder-blocks and graph dump after + block reordering is done. + * flow.c (reorder_block_def): New structure for use during block + reordering. + (REORDER_BLOCK_*): New macros to access members of above structure. + (skip_insns_between_block, get_common_dest, chain_reorder_blocks, + make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New + functions for block reordering. + +Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * gcc.texi (Passes): Fix typo. + * md.texi (Standard Names): Ditto. + * tm.texi (Storage Layout): Ditto. + +2000-02-13 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (do_define): Only free the old definition if it + actually had one. + +2000-02-13 Neil Booth <NeilB@earthling.net> + + * cppfiles.c (read_and_prescan): When emitting deferred + newlines, test speccase[] again instead of checking each + possible whitespace character in turn. When we encounter \r, + look behind for \n first, then ahead. + +2000-02-13 Zack Weinberg <zack@wolery.cumb.org> + + * cse.c (cse_altered): New internal flag. + (cse_insn): Set it if we changed an insn. + (cse_main): Clear cse_altered before each basic block. + Only garbage collect if cse_altered is true afterward. + +Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. + +Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com) + + * combine.c (simplify_comparison): Fix typo. + +Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net> + + * prefix.c (concat, lookup_key): Use xmalloc and xrealloc + consistently. + +2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * flow.c (flow_loop_tree_node_add): Use better algorithm by passing + previously inserted node instead of root node. Caller changed. + +2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete. + +2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor, + __dereg_frame_dtor): Add prototype argument. + + * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-vxworks.h (__gthread_once): Likewise. + + * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise. + +Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.c (ix86_emit_restore_regs_using_mov): Break out from ... + (ix86_expand_epilogue): ... here. Use mov instead of add to restore + stack pointer in functions w/o saved registers, output LEAVE more often + on TARGET_USE_LEAVE machines. + +2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com> + + * config/arm/arm.c (arm_init_cumulative_args); New function: + Initlaise the CUMULATIE_ARGS strcuture for a function + defintion. + (arm_function_arg): New function: Determine where to place a + function's argument. Also handles deciding the function's + call cookie. + (current_file_function_operand): New function: Return true if + the symbol is a function which has already been compiled. + (arm_is_long_call_p): New function: Return true if the + indicated function should be called via a long call. + (arm_valid_type_attribute_p): New function: Return true if the + attribute is a valid, arm specific, attribute. + (arm_comp_type_attribute): New function: Return true if the + two types have compatable, arm specific, attributes. + + * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a + structure. + (FUNCTION_ARG): Redefine to call arm_function_arg. + (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct + structure field. + (INIT_CUMULATIVE_ARGS): Redefine to call + arm_init_cumulative_args. + (FUNCTION_ARG_ADVANCE): Redefine to use correct structure + field. + (SETUP_INCOMING_VARARGS): Redefine to use correct structure + field. + (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled + functions. + (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION. + (VALID_MACHINE_TYPE_ATTRIBUTE): Define. + (COMP_TYPE_ATTRIBUTES): Define. + + * config/arm/arm.md (call): Call arm_is_long_call_p to decide + if a long call is needed. + (call_value): Call arm_is_long_call_p to decide if a long call + is needed. + (call_symbol): Call arm_is_long_call_p to decide if a long call + is needed. + + * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p. + +2000-02-11 Denis Chertykov <denisc@overta.ru> + + * README.AVR: New file with information about the avr ports. + * config/avr: New directory with avr port files. + +2000-02-11 Andreas Jaeger <aj@suse.de> + + * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@. + +2000-02-11 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c: Fix formatting, update commentary. + (dump_definition): Take three separate arguments instead of a + MACRODEF structure argument. + * cpphash.h: Update prototype of dump_definition. + * cppinit.c (cpp_finish): Update call of dump_definition. + + * cpplib.c (do_define): Always create new hash entry with + T_MACRO type. Remove redundant check for redefinition of + poisoned identifier. Update call of dump_definition. + (do_undef): Don't call check_macro_name. Rename sym_length to + len. + (do_error, do_warning): Don't use copy_rest_of_line or + SKIP_WHITE_SPACE. + (do_warning): Don't use pedwarn for the actual warning, + only the notice about its not being in the standard. (Fixes + bug with #warning in system headers.) + (do_ident): Stricter argument checking - accept only a single + string after #ident. Also, macro-expand the line. + (do_xifdef): Use cpp_defined. De-obfuscate. + + (do_pragma): Split out specific pragma handling to separate + functions. Use get_directive_token. Update commentary. Do + not pass on #pragma once or #pragma poison to the front end. + (do_pragma_once, do_pragma_implementation, do_pragma_poison, + do_pragma_default): New. + +Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): The first operand in a relational + can be a CONST_INT. + * optabs.c (emit_conditional_move): Handle relationals which + have a known true/false result. + +2000-02-11 Geoff Keating <geoffk@cygnus.com> + + * function.c (thread_prologue_and_epilogue_insns): Don't insert + a RETURN insn into a block which already ends with a jump. + +2000-02-11 Geoff Keating <geoffk@cygnus.com> + + * haifa-sched.c (BUF_LEN): Increase a lot. + +2000-02-11 Nick Clifton <nickc@cygnus.com> + + * configure.in: Add tm_p_file specification for thumb targets. + * configure: Regenerate. + + * config/arm/thumb-protos.h: New file: Prototypes for exported + functions defined in thumb.c. + +2000-02-11 Robert Lipe <robertl@sco.com> + + * Makefile.in (bootstrap-lean): Remove additional files. + (bootstrap2-lean): Likewise. + (VOL_FILES): List of files for above. + +2000-02-11 Nathan Sidwell <nathan@acm.org> + + * cpphash.c (special_symbol): Remove spurious argument to + cpp_lookup. + +2000-02-11 Joel Sherrill (joel@OARcorp.com> + + * configure.in: (i*86-*-rtems*): Swapped elf and coff + stanzas. + * configure: Rebuilt. + +2000-02-11 Rodney Brown <RodneyBrown@pmsc.com> + + * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef. + +Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com) + + * pa.c, pa.h: Remove trigraph sequences within comments. + +Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com> + + * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics. + +Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu) + + * sbitmap.h: Make SBITMAP_ELT_BITS unsigned. + +2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE. + +2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label. + (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + (ASM_FILE_END): Use c4x_file_end. + * config/c4x/c4x.c (c4x_global_label): New function. + (c4x_external_ref, c4x_file_end): Likewise. + + * config/c4x/c4x-protos.h (c4x_global_label): Add prototype. + (c4x_external_ref, c4x_end_file): Likewise. + +2000-02-10 Zack Weinberg <zack@wolery.cumb.org> + + * cppexp.c: Don't include cpphash.h. + (parse_charconst, cpp_lex): Use cpp_defined. + (cpp_lex): Use get_directive_token throughout. Remove + unnecessary cases from switch. Move assertion-handling code + down to OTHER case. + (cpp_parse_expr): If we see '+' or '-', check the context to + determine if they are unary or binary operators. Streamline + the jumps a bit. Do not call skip_rest_of_line. + + * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace + static. Export get_directive_token. Update commentary. + (cpp_defined): New function. + (do_define): Remove reference to T_PCSTRING. Call + free_definition to release memory for old definition, when + redefining a macro. + (eval_if_expression): Set only_seen_white to 0 before calling + cpp_parse_expr. Call skip_rest_of_line after it returns. + (cpp_read_check_assertion): Don't preserve a pointer into the + token buffer across a call to cpp_get_token. + + * Makefile.in (cppexp.o): Don't depend on cpphash.h. + * cppfiles.c (redundant_include_p): Use cpp_defined. + * cpphash.c (free_definition): New function. + (delete_macro): Use it. Update commentary. + * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and + free_definition. + * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING + from enum node_type. Prototype cpp_defined and get_directive_token. + Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace. + + * fix-header.c (check_macro_names): Use cpp_defined. + (read_scan_file): Set inhibit_warnings and inhibit_errors in + the options structure. + +2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * c-pragma.c (maximum_field_alignment): Remove duplicate declaration. + +2000-02-10 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin) + rather than die->die_tag. + +Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * combine.c (make_extraction, force_to_mode): Avoid warning on + mixed-signedness conditionals. + (make_field_assignment, nonzero_bits): Likewise. + * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned. + (store_split_bit_field, extract_split_bit_field): Likewise. + (extract_fixed_bit_field, store_bit_field, + * expr.c: Change alignment to be unsigned everywhere. + (move_by_pieces, store_constructor_field, store_constructor): + Alignment parm is unsigned. + (emit_block_move, emit_group_load, emit_group_store): Likewise. + (clear_storage, emit_push_insn, compare_from_rtx): Likewise. + (do_compare_rtx_and_jump): Likewise. + (move_by_pieces_ninsns, clear_by_pieces): Likewise. + Compare align with GET_MODE_ALIGNMENT. + (expand_expr_unaligned): Pointer to alignment is pointer to unsigned. + (get_inner_reference): Likewise. + (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts. + (expand_assignment): Local vars for alignment now unsigned. + (store_constructor, store_field, expand_expr, do_jump): Likewise. + (do_compare_and_jump): Likewise. + (store_field): Call new function expr_align. + * expr.h (emit_block_move, emit_group_load, emit_group_store): + Alignment arg now unsigned. + (clear_storage, emit_push_insn, compare_from_rtx): Likewise. + (do_compare_rtx_and_jump, store_bit_field): Likewise. + (extract_bit_field): Likewise. + * fold-const.c (add_double): Add cast to eliminate signedness warning. + * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned. + (get_best_mode): Alignment arg is unsigned. + * rtl.h (move_by_pieces): Likewise. + * store-layout.c (maximum_field_alignment, set_alignment): + Now unsigned. + (layout_decl): Alignment arg is now unsigned. + Remove unneeded casts. + (layout_record, layout_union, layout_type): Remove unneeded casts. + Local alignment variables now unsigned. + (get_best_mode): Alignment arg now unsigned. + * tree.c (expr_align): New function. + * tree.h (expr_align): Likewise. + (maximum_field_alignment, set_alignment): Now unsigned. + (get_inner_reference): Alignment argument is now pointer to unsigned. + * varasm.c (assemble_variable): Add cast to eliminate warning. + +Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com> + + * expmed.c (store_bit_field): If op0 and fieldmode are the same size, + then store directly into op0. + + * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for + the CALL_INSN, and emit the note immediately after it. + +2000-02-10 Nick Clifton <nickc@cygnus.com> + + * config/arm/thumb.md (epilogue): Include a (return) in the + generated insn, and emit it using emit_jump_insn not + emit_insn. + +Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz> + + * function.c (assign_temp): Change zero-sized arrays to size 1. + * integrate.c (expand_inline_function): Do not update + stack_alignment_needed + * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY, + add some sanity checking, remove optimization for function with + zero frame size. + +2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * flow.c (mark_regs_live_at_end): Delete unused variables. + + * ggc-page.c (ggc_page_print_statistics): bzero -> memset. + + * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment' + in macro FRAME_GROWS_DOWNWARD. + + * stmt.c (expand_end_bindings): Delete unused variable. + + * unroll.c (iteration_info): Mark parameter `loop' with + ATTRIBUTE_UNUSED. + +2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * fixinc/server.c (load_data): Return NULL if the marker line is + not found. + (run_shell): If load_data returns NULL, retry the command once, in + a new shell. + + * configure: Rebuilt. + +2000-02-09 Bruce Korb <bkorb@gnu.org> + + * gcc/fixincludes: ** DELETED ** + * gcc/fixcpp: ** DELETED ** + * gcc/fixinc-nt.sed: ** DELETED ** + * gcc/just-fixinc: ** DELETED ** + * gcc/Makefile.in: Removed out-dated commentary + * gcc/configure.in: Removed fast-fixincludes disablement. + * MAINTAINERS(Ian Taylor) moved to "Write after approval" group. + +2000-02-09 Clinton Popetz <cpopetz@cygnus.com> + * function.c (thread_prologue_and_epilogue_insns): Uncomment + last change. + +2000-02-09 Richard Henderson <rth@cygnus.com> + + * jump.c (delete_insn): Don't delete user labels at -O0. + +2000-02-09 Robert Lipe <robertl@sco.com> + + * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS. + Don't link with HOST_LIBS. + +2000-02-09 Zack Weinberg <zack@wolery.cumb.org> + + * configure.in: Correct --help text for --with-dwarf2. + Put tm-dwarf2.h after other tm files, if it's requested. + * configure: Regenerate. + * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before + defining it. + +2000-02-09 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h: Provide HASHNODE typedef and forward decl of + struct hashnode only. Kill cpp_hashnode typedef. MACRODEF, + DEFINITION, struct hashnode, struct macrodef, struct + definition, scan_decls prototype, default defn of + INCLUDE_LEN_FUDGE moved elsewhere. + + * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct + definition, and struct hashnode moved here. Remove the unused + 'predefined' field from struct definition. Replace the 'args' + union with its sole member. All users updated (cpphash.c). + Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add + multiple include guard. + + * cpphash.c (hashf): Make static; use better algorithm; drop + HASHSIZE parameter; return an unsigned int. + (cpp_lookup): Drop HASH parameter. PFILE parameter is + used. Calculate HASHSIZE modulus here. + (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus + here. + (create_definition): Drop PREDEFINITION parameter. + * cpplib.c (do_define): Don't calculate a hash value here. + Don't pass (keyword == NULL) to create_definition. + + * scan.h: Prototype scan_decls here. + * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here. + * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All + callers of cpp_lookup and cpp_install updated. + + * cpphash.c (macarg): Hoist all the flag diddling out of the + function... + (macroexpand): ... and out of the loop that calls macarg. + Skip over the initial paren before macro arguments with + cpp_get_non_space_token; point may be some distance before + that paren. Abort if it's not there. + + * cpplib.c (parse_clear_mark): Delete function. + (parse_set_mark, parse_goto_mark): Make static. + (ACTIVE_MARK_P): New macro. + (skip_block_comment, skip_line_comment): Do not bump the line + if ACTIVE_MARK_P is true. + (cpp_pop_buffer): The buffer to be popped may not have an + active mark. + (cpp_get_token): When looking for the initial paren before + macro arguments, only set a mark in a file buffer, Always + return to that mark before proceeding to call macroexpand or + return a NAME token. + + * cpplib.h: Remove prototypes of parse_set_mark, + parse_clear_mark, parse_goto_mark. + (struct cpp_options): Rename 'put_out_comments' to + 'discard_comments' and invert its sense. + * cppinit.c, cpphash.c, cpplib.c: All users of + put_out_comments changed to use discard_comments, with + opposite sense. + +2000-02-09 Clinton Popetz <cpopetz@cygnus.com> + + * function.c (thread_prologue_and_epilogue_insns): Don't delete + the edge from a block that both jumps and falls through to the + fallthru block. + +2000-02-09 Scott Bambrough <scottb@netwinder.org> + + * config/arm/arm.md (movsi): In PIC mode, make sure that a + constant source address is legitimate. + +2000-02-09 Philip Blundell <pb@futuretv.com> + + * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF + correctly. + + * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when + generating PIC. + (LEGITIMATE_PIC_OPERAND): Disallow references to labels. + +2000-02-09 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer + ends with a newline and a NUL. Don't be so clever manipulating + strings. + +Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz> + + * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed, + not to BIGGEST_ALIGNMENT. + +2000-02-08 Geoff Keating <geoffk@cygnus.com> + + * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. + * dwarf2out.c (dwarf_cfi_name): Print name of new constant. + (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. + (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. + * frame.c (execute_cfa_insn): Handle + DW_CFA_GNU_negative_offset_extended. + +2000-02-08 Richard Henderson <rth@cygnus.com> + + * flow.c (tidy_fallthru_edges): Split out from ... + (delete_unreachable_blocks): ... here. + (find_basic_blocks): Use it. + +Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY. + +2000-02-08 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a. + (gen_protos.o): Don't depend on cpplib.h or cpphash.h. + (fix-header.o): Don't depend on cpphash.h. + + * scan.c (hashstr): New function. + * scan.h: Prototype it. + * fix-header.c: Don't include cpphash.h. Use hashstr. + * gen-protos.c: Don't include cpphash.h or cpplib.h. Use + hashstr. Report hash table statistics. Add private + definition of xrealloc. + +2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * i386.h (TARGET_SWITCHES): Fix typo in option name. + +2000-02-08 Clinton Popetz <cpopetz@cygnus.com> + + * function.c (thread_prologue_and_epilogue_insns): Don't replace + jumps with returns unless they are jumps to the fallthru block. + +Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (addqi3_cc): Fix contraints. + +Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return. + +2000-02-07 Mark Mitchell <mark@codesourcery.com> + + * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a + carriage return after a macro name. + +2000-02-07 Fred Fish <fnf@be.com> + + * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing + so the gcc2_compiled symbol doesn't confuse BeOS debuggers. + +2000-02-07 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (deps_output): Count spacers in deps_column. + +2000-02-07 Neil Booth <NeilB@earthling.net> + + * cppinit.c (initialize_dependency_output): If there is no + suffix, don't try to look for known suffixes. Use strrchr. + (cpp_start_read): Remove duplicate initialization. + +Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz> + + * calls.c (compute_argument_block_size): New argument + preferred_stack_boundary. + (expand_call): update cfun->preferred_stack_boundary, update call of + compute_argument_block_size + (emit_library_call): Increate cfun->preferred_stack_boundary + to PREFERRED_STACK_BOUNDARY + (emit_library_call_value): Likewise. + * explow.c (allocate_dynamic_stack_spave): Likewise. + * function.c (prepare_function_start): Set + cfun->preferred_stack_boundary + * function.h (struct function): Add preferred_stack_boundary field. + * integrate.c (expand_inline_function): Update + cfun->preferred_stack_boundary and cfun->stack_alignment_needed. + (copy_rtx_and_substitute): Align frame to stack_alignment_needed only. + * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary. + +2000-02-06 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.c (my_strerror, cpp_error, cpp_error_with_line, + cpp_error_from_errno, cpp_warning, cpp_warning_with_line, + cpp_pedwarn, cpp_pedwarn_with_line, + cpp_pedwarn_with_file_and_line): Move to cpperror.c. + (cpp_print_file_and_line, v_cpp_error, v_cpp_warning, + v_cpp_error_with_line, v_cpp_warning_with_line, + cpp_message_from_errno, cpp_perror_with_name): Delete. + + * cpperror.c (cpp_print_containing_files): Take starting + buffer as argument. + (cpp_file_line_for_message): Rename to cpp_print_file_and_line. + (v_cpp_message): Now called directly by all entry points. + Remove -1 case. + (cpp_pfatal_with_name, cpp_message): Delete. + (cpp_notice_from_errno, cpp_ice): New functions. + (cpp_notice): Is now for reporting error conditions, just + without an associated file. + (cpp_error, cpp_error_with_line): Don't do anything if + opts->inhibit_errors is on. + (cpp_pedwarn_with_file_and_line): Take column argument also. + + * cpplib.h: Update prototypes of exported functions. + (struct cpp_options): Add inhibit_errors. + + * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for + non-error messages. Include intl.h. + + * cppinit.c, cppmain.c: Likewise. Also, use + cpp_notice_from_errno instead of cpp_perror_with_name or + cpp_pfatal_with_name, and cpp_notice instead of cpp_message. + + * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to + report internal errors. + + * cpplib.c (do_define): Switch bcopy to memcpy. + Give cpp_pedwarn_with_file_and_line a dummy column argument. + + * cpplib.c (copy_rest_of_line): Revert previous change: don't + bail out early if we hit a line comment. + +2000-02-06 Richard Henderson <rth@cygnus.com> + + * flow.c (flow_delete_insn, make_edge, remove_edge): Export. + * basic-block.h: Declare them. + * emit-rtl.h (active_insn_p): New. + (next_active_insn, prev_active_insn): Use it. + * rtl.h: Declare it. + * function.c (emit_return_into_block): New. + (thread_prologue_and_epilogue_insns): Insert return insns instead + of epilogues when possible. + * jump.c (jump_optimize_1): Remove code to insert a return insn + on the fallthru to the exit block. + + * i386.c (ix86_can_use_return_insn_p): Fail for large poped args + and for non-empty stack frames. + * i386.md (return): Expand to return-pop as needed. + +2000-02-06 Richard Henderson <rth@cygnus.com> + + * simplify-rtx.c (simplify_relational_operation): Canonicalize + constant to op1 for testing. + +2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (*ldi_on_overflow): New pattern. + (fixuns_truncqfqi2): Use it. + +2000-02-06 Richard Henderson <rth@cygnus.com> + + * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack + as a TYPE_LEA insn. + + * i386.md (widening and peepholes): Mask the constant instead of + using gen_lowpart. + +2000-02-05 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump + input pointer before possibly branching off to the backslash + code. + * cpphash.c (macroexpand): Correctly delete \r escapes when + stringifying parameters. + * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment + if we can; bail out early if we hit a line comment. + (handle_directive): Treat '# 123' in an .S file just like + '# <punctuation>'. Discard the shifted '#' if we hit '#\n'. + Return 1 for '# not_a_directive'. + (get_directive_token): Pop macro buffers here, so that + cpp_get_token can't sneakily move past a newline. + Add sanity checks. + (cpp_get_token): goto randomchar if handle_directive returns 0. + + * cppalloc.c: Update copyright. + * cpplib.c: Merge all the static function prototypes into one + block. + * cpplib.h: Remove #if 0 block. + + * cpperror.c: Remove #ifdef EMACS block. + * cppmain.c: Likewise. + * cpphash.c: Remove #if 0 blocks. + * cppinit.c: Remove #if 0 blocks, and the -lint option. + * cpplib.c: Remove #if 0 blocks and code referencing + pcp_inside_if or for_lint. Remove duplicate error message. + Fix error messages for #else after #else or #elif. Reformat. + Remove archaic TODO list. + * cpplib.h: Remove pcp_inside_if and for_lint flags. + +2000-02-05 Zack Weinberg <zack@wolery.cumb.org> + + * i386/osf1elf.h: Add missing backslash to multiline string. + +2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg. + +2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (c-common.o): Depend on $(EXPR_H). + + * c-common.c: Include expr.h. + + * c-pragma.c (mark_align_stack): Add prototype. + + * caller-save.c (add_stored_regs): Likewise. + + * combine.c (record_promoted_value): Likewise. + + * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): + Likewise. + + * cppinit.c (new_pending_define): Likewise. + + * cpplib.c (skip_block_comment, skip_line_comment): Likewise. + + * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, + AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, + AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, + class_scope_p): Likewise. + + * dwarf2out.h (dwarf2out_set_demangle_name_func, + dwarf2out_add_library_unit_info): Likewise. + + * ggc.h (ggc_page_print_statistics): Likewise. + + * haifa-sched.c (propagate_deps): Likewise. + + * reg-stack.c (next_flags_user, record_label_references): Likewise. + + * rtl.h (set_stack_check_libfunc): Likewise. + + * toplev.h (set_fatal_function): Likewise. + + * toplev.c (set_fatal_function): Delete prototype. + + * diagnostic.c: Deconstify functions returning malloc'ed ptrs. + +2000-02-05 Geoff Keating <geoffk@cygnus.com> + + * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX. + (FUNC_END): Likewise. + +2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * caller-save.c: Include tm_p.h. + +2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2). + +2000-02-04 Neil Booth <NeilB@earthling.net> + + * cccp.c (main): Check 'dir' for a NULL pointer before passing + it to strcmp. + +2000-02-04 Zack Weinberg <zack@wolery.cumb.org> + + * recog.h: Remove NO_MD_PROTOTYPES ifdefs. + * genflags.c: Use the max_operand_1 logic from genemit.c to + calculate how many arguments gen_insn prototypes have. Remove + NO_MD_PROTOTYPES ifdefs from the generated file. + * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated + file. Cast gen_insn initializers to insn_gen_fn. + * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES. + * gcc.texi: Remove documentation of NO_MD_PROTOTYPES. + +2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc/Makefile.in (HDR): Add machname.h. + (clean): Likewise. + +2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ... + (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto. + (c4x_cpu_version): Ditto. + * config/c4x/c4x-protos.h: ... here. + +2000-02-04 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (add_abstract_origin_attribute): Don't call + gen_abstract_function on our context if we're a nested function. + +2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite. + * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix. + +2000-02-04 Bruce Korb <bkorb@gnu.org> + + * fixinc/genfixes(machname.h): + Move the functionality from gen-machine.h into this file. + UNdef MN_NAME_PAT if there are no names to change. + Also, be a little kinder when AutoGen is not present. + + * fixinc/Makefile.in(machname.h): + Change the generation rule to use genfixes. + + * fixinc/fixfixes.c(machine_name): + machine_name_fix's functionality now dependent upon whether + MN_NAME_PAT is defined. + + * fixinc/fixtests.c(machine_name): + ditto. + + * fixinc/fixlib.c(mn_get_regexps): conditional on definition + of MN_NAME_PAT. + + * fixinc/fixlib.h(mn_get_regexps): + ditto + + * fixinc/gen-machine.h: DELETED + +2000-02-04 Jan Hubicka <jh@suse.cz> + Richard Henderson <rth@cygnus.com> + + * i386.c (SAVE_REGS_FIRST): Remove. + (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode. + (ix86_compute_frame_size): Likewise. + (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack. + (ix86_emit_restore_regs): Remove. + (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack + when a frame pointer is in use. + (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov + instead of pop to restore a register when profitable; emit leave + when profitable. + (ix86_attr_length_default): Handle pro_epilogue_adjust_stack + as a TYPE_LEA insn. + (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU. + * i386.md (prologue_allocate_stack): Remove. + (epilogue_deallocate_stack): Remove. + (pro_epilogue_adjust_stack): New. + +2000-02-04 Richard Henderson <rth@cygnus.com> + + * function.c (diddle_return_value): Rework to use a callback function. + Use current_function_return_rtx if it's been set up. + (do_clobber_return_reg, clobber_return_register): New. + (do_use_return_reg, use_return_register): New. + (expand_function_end): Use them. + * stmt.c (expand_null_return): Likewise. + * function.h: Declare them. + * flow.c (mark_regs_live_at_end): Use diddle_return_value. + (mark_reg): Change arguments as appropriate for callback. + * integrate.c (expand_inline_function): Revert 19 Jan change. + +Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * tm.texi (Values in Registers): Fix typo: "fo" "for". + (Misc): Say the scheduler, not the Haifa scheduler. + +2000-02-04 Clinton Popetz <cpopetz@cygnus.com> + + * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs + when in_mem is set. Update all callers. + +2000-02-04 Richard Henderson <rth@cygnus.com> + + * i386/openbsd.h (INT_ASM_OP): Define. + +Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * tm.texi: Fix various typos. + +Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com> + + * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case. + (MD_STARTFILE_PREFIX_1): New macro. + +Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (movstrsi, clrstrsi): Support variable sized copies, align + destination when needed. + (strmovsi, strsetsi): New expander. + (strmovsi_1, strsetsi_1): New pattern. + * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP, + TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros. + (TARGET_SWITCHES) Add align-stringops and inline-all-stringops. + * invoke.texi (align-stringops, inline-all-stringops): Document. + +Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se> + + * i386/netbsd.h (INT_ASM_OP): Define. + +2000-02-02 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (cpp_reader): Add new flag, no_directives. + * cpphash.c (macarg): Set it. + * cpplib.c (handle_directive): If no_directives is on and we + find a directive, issue an error and discard the line. + +Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com> + + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for + FP constants. Add ! TARGET_FPU check for FP constants. + +2000-02-02 Clinton Popetz <cpopetz@cygnus.com> + + * flow.c (find_basic_blocks): Don't kill label_value_list + here. + (cleanup_cfg): Kill it here. + +Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * expr.c (store_field): Ensure ALIGN is no stricter than the + alignment of EXP. + +2000-02-02 Richard Henderson <rth@cygnus.com> + + * jump.c (delete_insn): Partially revert 19 Jan change; + don't convert unused code labels to notes at -O0. + +2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * toplev.c (rest_of_compilation): Run rebuild_jump_labels after + split_all_insns to recreate REG_LABEL notes for flow2 pass. + +2000-02-01 Richard Henderson <rth@cygnus.com> + + * i386.c (general_no_elim_operand): New. + (nonmemory_no_elim_operand): New. + (ix86_expand_move): Copy eliminable operands before a push. + * i386-protos.h: Declare new functions. + * i386.h (CAN_ELIMINATE): Simplify. + (PREDICATE_CODES): Update. + * i386.md (push insns): Don't allow eliminable register operands. + +2000-02-01 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_regs_live_at_end): Follow expand_function_end and + replace BLKmode with DECL_RTL's mode. + +2000-02-01 Zack Weinberg <zack@wolery.cumb.org> + + * frame.c (find_fde): Convert for loop to do-while so compiler + sees it's always executed at least once. + * libgcc2.c (BBINBUFSIZE): Kill. + (__bb_init_prg): Use fgets. + (__bb_exit_trace_func): Don't paste strings. + * unroll.c (unroll_loop): Initialize unroll_type, not + unroll_number, and tweak logic to match. + + * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in + all failure paths. + (ix86_flags_dependant): Likewise. Disentangle control flow. + (ix86_sched_reorder): Break guts out to + ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. + (ix86_sched_reorder_ppro): Initialize pair2 and insnp before + any possible use. + + * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't + use string concatenation. Don't save and restore esi. + + * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. + (machname.h): Remove script to separate file. Use two-step + sequence so target is not created if script fails. + * fixinc/gen-machname.h: New file. Handle case where no non-reserved + identifiers are defined. + * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is + an empty string, machine_name doesn't need to do anything at + all. + (is_cxx_header): Add more cases to regexp. + * fixinc/fixlib.h: Update prototype. + * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of + mn_get_regexps. + * fixinc/fixincl.c: Define NO_BOGOSITY. + + * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. + (hp_sysfile): Add missing comma. + (math_exception): Put the wrapper ifdefs at the beginning and + the end of the file. + * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. + +2000-02-01 Richard Henderson <rth@cygnus.com> + + * sparc.c (fp_zero_operand): Turn into a normal predicate. + Use CONST0_RTX. Update all callers. + * sparc.h, sparc-protos.h: Update accordingly. + * sparc.md (fp mov insns): Use fp_zero_operand directly + where applicable. + +Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS + example. + +2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (specs.ready): New target. + (fixinc.sh): Depend on `specs.ready' instead of `specs'. + +2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * fixinc.irix: Use unique filenames for writing into /tmp, + * fixinc.ptx: Likewise. + * fixinc.sco: Likewise. + * fixinc.svr4: Likewise. + * fixinc.winnt: Likewise. + +2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * tsystem.h: New file. + + * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, + s-crtS): Depend on tsystem.h. + + * crtstuff.c: Include tsystem.h. + * frame.c: Likewise. + * libgcc2.c: Likewise. + +Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz> + + * builtins.c (expand_builtin_memset): Expand for variable sized + lengths too. + +2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au> + + * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based + on ABI. + +Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * dwarfout.c (SHORT_TYPE_SIZE): Correct default. + + * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE. + +2000-01-31 Chandra Chavva <cchavva@cygnus.com> + + * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed + case 3->2 combining (combining with splitting) in which 2 is CC0 + setter/user and 3 is user. The rest of cases 2->1 and 3->2 are + checked at the begining of the function with the aid of calling + function 'can_combine_p'. + +2000-01-31 Dave Brolley <brolley@redhat.com> + + * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'. + +2000-01-31 Jason Merrill <jason@casey.cygnus.com> + + * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the + new label. + +2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros. + + * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): + PROTO -> PARAMS. + +2000-01-30 Zack Weinberg <zack@wolery.cumb.org> + + * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h, + i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h, + i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h, + i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h, + i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h, + i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, + i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h, + i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h, + i386/vxi386.h, i386/win-nt.h, i386/win32.h: + Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES. + + * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h: + Add %(cpp_cpu) to CPP_SPEC. + + * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h: + Add %(cc1_cpu) to CC1_SPEC. + +2000-01-28 Ulrich Drepper <drepper@redhat.com> + + * c-decl.c (c_decode_option): Accept optional numeric argument to + -Wformat and set warn_format. + * c-common.c: Don't emit warning about non-constant printf format + string unless warn_format > 1. + +2000-01-30 Richard Henderson <rth@cygnus.com> + + * alpha.md (return_internal): Allow after reload only. + +2000-01-30 Richard Henderson <rth@cygnus.com> + + * i386.c (ix86_compute_frame_size): Omit padding1 if the + local frame size is zero. + +2000-01-30 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_expand_epilogue): Don't emit the return insn. + * alpha.h (EPILOGUE_USES): New. Mark $26 live. + * alpha.md (return): Turn into an expander. + (return_internal): Don't use $26. + (epilogue): Emit the return insn. + +2000-01-30 Richard Henderson <rth@cygnus.com> + + * alpha.md (negtf2, abstf2): Fix word order thinko. + (extendsftf2): New. + (trunctfsf2): Avoid intermediate rounding errors. + +2000-01-30 Zack Weinberg <zack@wolery.cumb.org> + + * cppfiles.c (find_position): Drop 'colp' argument, return the + new line base. + (read_and_prescan): Adjust to match. Don't ever manipulate + line or line_base except via find_position. + +2000-01-29 Zack Weinberg <zack@wolery.cumb.org> + + * c-parse.in: Apply Ulrich's changes from c-parse.y. + * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c: + Regenerate. + +2000-01-29 Zack Weinberg <zack@wolery.cumb.org> + + * cpperror.c (cpp_file_line_for_message): If 'line' is zero, + just print "<command line>". If 'filename' is null or an + empty string, print "<stdin>" for the filename. + * cpplib.c (do_define): Don't print the 'location of the + previous definition' message if we're still parsing the + command line. + (cpp_pedwarn_with_file_and_line): Always call + cpp_file_line_for_message. + +2000-01-29 Mark Mitchell <mark@codesourcery.com> + + * flow.c (mark_regs_live_at_end): Fix typo. + +2000-01-28 Ulrich Drepper <drepper@redhat.com> + + * c-common.c: Adjust variable names, comments, help strings to c99. + * c-lex.c: Likewise. + * c-parse.y: Likewise. + * c-tree.h: Likewise. + * cccp.c: Likewise. + * cpplib.h: Likewise. + * c-decl.c: Likewise. Recognize options with names "*99" as well. + * cppinit.c: Likewise. + +2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. + * c4x.c: Define the optab rtx values. + (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. + (c4x_emit_libcall): Use new optab rtx values. + (c4x_emit_libcall3): Likewise. + (c4x_emit_libcall_mulhi): Likewise. + * c4x-protos.h: Add prototypes for optab rtx values and change + prototypes for above c4x_emit_libcall functions. + +2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * c4x.c (c4x_output_ascii): Restrict line length of output when TI + syntax is used. + (c4x_function_prologue): Use regnames intead of float_reg_names when + TI syntax is used. + (c4x_function_epilogue): Likewise. + (c4x_print_operand): Likewise. + * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine. + * c4x.md (set_high): Disable for TARGET_TI. + +2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading + of framepointer + constant to ADDR_REGS class. + * c4x.md (addqi3, addqi3_noclobber_reload): Update. + * c4x.c (std_or_reg_operand): New function. + * c4x-protos.h (std_or_reg_operand): Prototype it. + +2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same + object names as libgcc2.c. + * libgcc.S: Use newly defined names. + +Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz> + * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New + function. + * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. + * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. + (FLOW_LOOP_LAST_BLOCK): Likewise. + +2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * basic-block.h (struct loop): New fields 'first' and 'last'. + * flow.c (flow_loops_find): Compute loop->first and loop->last. + (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG + and loop->last to check for NOTE_INSN_LOOP_END. + +Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com> + + * predict.c (estimate_probability): Use the new FIRST and LAST fields + of the loop descriptor rather than HEADER and LATCH. Also added + missing break statements as well making some coding style modifications + as suggested by Michael Hayes. + +2000-01-28 Richard Henderson <rth@cygnus.com> + + * flow.c (find_basic_blocks): Remove do_cleanup argument. + Break out that code ... + (cleanup_cfg): ... here. + (commit_one_edge_insertion): Detect a return instruction being + emitted to an edge. Emit a barrier following; clear fallthru. + (commit_edge_insertions): Verify CFG consistency. + * function.c (expand_function_start): Kill unused variable. + (expand_function_end): Likewise. + (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge + to insert the epilogue. + + * gcse.c (gcse_main): Adjust for find_basic_blocks change. + (delete_null_pointer_checks): Likewise. + * output.h: Likewise. + * reg-stack.c (reg_to_stack): Likewise. + * toplev.c (rest_of_compilation): Likewise. Run + thread_prologue_and_epilogue_insns after rebuilding the CFG. + +2000-01-28 Richard Henderson <rth@cygnus.com> + + * Makefile.in (flow.o): Revert 24 Jan change. + * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode + FUNCTION_VALUE result to DECL_RESULT's mode. + + * haifa-sched.c (schedule_insns): Don't recompute reg info + after reload. + +2000-01-28 Zack Weinberg <zack@wolery.cumb.org> + + * configure.in: Make --enable-cpplib the default. + * configure: Regenerate. + * gcc.dg/990119-1.c: No longer expected to fail. + +2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk> + + * jump.c (jump_optimize_1): Delete an optimization that is also done + by merge_blocks in flow. + +2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * diagnostic.c (build_message_string, output_printf, + line_wrapper_printf): Add ATTRIBUTE_PRINTF_*. + (build_location_prefix): Fix non-literal format string. + +2000-01-27 Richard Henderson <rth@cygnus.com> + + * alpha.md (trunctfsf2): New. + +2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net> + + * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH. + +2000-01-27 Zack Weinberg <zack@wolery.cumb.org> + + * cppinit.c (cpp_handle_option): Recognize C++ comments under + -std=gnu89. + * cpplib.c (skip_block_comment, skip_line_comment): Split code + out of... + (skip_comment) ... here. Permit C++ comments in system + headers always. Warn about C++ comments in user code under + -std=gnu89 -pedantic. + (copy_comment): Use skip_comment. + (cpp_skip_hspace, cpp_get_token): skip_comment can no longer + return EOF. + (consider_directive_while_skipping, do_else, do_endif): Call + validate_else unconditionally. + (validate_else): Check CPP_PEDANTIC here. Accept non-comment + text after the conditional in a system header. + * cpplib.h (struct cpp_buffer): Add flag + warned_cplusplus_comments. + +2000-01-27 Geoffrey Keating <geoffk@cygnus.com> + + * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. + Use unshare_all_rtl_1. + (unshare_all_rtl_again): New function. + (unshare_all_rtl_1): New function split out of unshare_all_rtl. + + * function.c (purge_addressof_1): Use unshare_all_rtl_again + rather than resetting the 'used' flags ourself. + + * toplev.c (rest_of_compilation): Add current_function_decl + to the unshare_all_rtl call. + * tree.h: Prototype unshare_all_rtl. + * rtl.h: Prototype unshare_all_rtl_again here. + +2000-01-27 Geoffrey Keating <geoffk@cygnus.com> + + * genoutput.c (output_prologue): Include ggc.h in generated + files. + * Makefile.in (insn-output.o): Depends on ggc.h. + +2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au> + Hans-Peter Nilsson <hp@bitrange.com> + + * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete. + Remove redundant include of xm-ns32k.h. + * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions. + Remove redundant include of xm-ns32k.h. + * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine. + Remove redundant include of xm-ns32k.h. + * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions. + + * ns32k/ns32k.h: Update comment on multiply-add instructions. + (TARGET_SWITCHES): Add documentation strings. + (DWARF_FRAME_REGNUM): Override default definition. + (REG_CLASS_CONTENTS): Add comments. + (SUBSET_P): Format to reduce line length. + (SMALL_REGISTER_CLASSES): Make a run time option. + (GO_IF_NONINDEXED_ADDRESS): Reformat. + (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before + dereferencing it. Braces to avoid "ambiguous else" were misplaced. + (regclass_map): fix typo in comment. + * ns32k/ns32k.c: Add spaces before parentheses for consistant style. + Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...). + (trace, reg_or_mem_operand): Delete, unused function. + (calc_address_cost): Small offsets are cheaper than large ones. + (expand_block_move): Generate more efficient code when bytes is a + known at compile time. + * ns32k/ns32k.md: Alternate constraints for multiply-add instructions. + (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand + instead of reg_or_mem_operand. + + * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs, + not general_operand. Similarly use "=rm" or stricter, not "=g". + For input operands, use stricter constraints than "g" if not + general_operand. Similarly use stricter predicate than + "general_operand" when stricter constraints than "g" are present, + except for matching constraints. + (movstrsi): Use "memory_operand" for operands 0 and 1. + (truncsiqi2, truncsihi2, trunchiqi2): Remove. + (udivmoddisi4_internal): Use nonimmediate_operand for operand 0, + not reg_or_mem_operand. + (udivmoddisi4): Ditto. + Use nonimmediate_operand for operand 1, not reg_or_mem_operand. + Use nonimmediate_operand for operand 3, not register_operand. + (udivmoddiqi4_internal): Use register_operand for operand 1, not + reg_or_mem_operand. + +2000-01-27 Fred Fish <fnf@be.com> + + * gthr-posix.h: Fix typo; compatibily -> compatibility. + * gthr-single.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-vxworks.h: Likewise. + * gthr-win32.h: Likewise. + * gthr.h: Likewise. + +2000-01-27 Zack Weinberg <zack@wolery.cumb.org> + + * cppinit.c: Add " (cpplib)" to end of string printed by + -v / --version. + +2000-01-27 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_emit_conditional_move): Use VOIDmode when + testing for a signed comparison. + (alpha_emit_floatuns): New. + * alpha-protos.h: Declare it. + * alpha.md (floatunsdisf2, floatunsdidf2): New. + (extendsfdf2): Tidy. + +2000-01-27 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but + no -g option specifying debugging format, default to -gstabs+. + +Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * calls.c (special_function_p): New argument fork_or_exec. + (expand_call): When profile_arc_flag is set and the function + is in the fork_or_exec group, call __bb_fork_func first. + * libgcc2.c, _bb module (__bb_fork_func): New function. + (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock + output file. + * config/svr4.h (TARGET_HAS_F_SETLKW): Define. + * tree.h (special_function_p): Update prototype. + +2000-01-26 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_split_tfmode_pair): New. + * alpha-protos.h: Declare it. + * alpha.md (abstf2, negtf2): New. + (movtf insn): Add input G constraint. + (movtf splitter): Use alpha_split_tfmode_pair. + +2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * i386/cygwin.h: PROTO -> PARAMS. + +2000-01-26 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle + TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons + using _Qp_cmp/_Q_cmp and testing the return value. + (print_operand): Call reverse_condition_maybe_unordered if + we are handling CCFPmode or CCFPEmode. + Handle ORDERED, UN* and LTGT comparisons. + * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32 + if not TARGET_HARD_QUAD. + (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble, + bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt): + Call sparc_emit_float_lib_cmp even on TARGET_ARCH32. + Adjust gen_b* calls so that they reflect return comparison of + sparc_emit_float_lib_cmp. + +2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume + incoming operands array is large enough for one more operand. + (alpha_emit_xfloating_arith): Likewise. + +2000-01-25 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a + file with one line and no trailing newline. + Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>. + * fixinc/fixtests.c (machine_name_test): Fix fencepost error + checking if the match is on the line. + * fixinc/gnu-regex.c: Provide regerror not __regerror. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * sparc.c (output_cbranch): Fix accidental squashing of the + fp branch pre-delay nop. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * tree.def (UNNE_EXPR): Remove. + * c-typeck.c (build_binary_op): Don't handle it. + * expr.c (expand_expr, do_jump, do_store_flag): Likewise. + + * rtl.def (UNNE): Remove. + (LTGT): Add. + * jump.c (reverse_condition): Update accordingly. + (swap_condition): Likewise. + (comparison_dominates_p): Handle unordered comparisons. + (reverse_condition_maybe_unordered): New. + * rtl.h (reverse_condition_maybe_unordered): Declare. + + * sparc.c (select_cc_mode): Update for UNNE/LTGT. + (output_cbranch): Use reverse_condition_maybe_unordered and LTGT. + * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs. + * sparc.md (bltgt): New. + +2000-01-25 Nick Clifton <nickc@redhat.com> + + * emit-rtl.c (emit_insn): Only check machine class insns for + improper emission of a RETURN. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * Makefile.in (flow.o): Depend on $(EXPR_H). + * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e. + duplicate the structure of diddle_return_value for keeping regs live. + +2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (current_loop_info): Delete. + (consec_sets_invariant_p): Add loop argument, update callers. + (get_condition_for_loop): Likewise. + (count_nonfixed_reads, update_giv_derive): Likewise. + (simplify_giv_expr, general_induction_var): Likewise. + (consec_sets_giv, recombine_givs): Likewise. + (move_movables): Delete loop_start and loop_end arguments, + add loop argument, and update callers. + (find_mem_givs, check_final_value): Likewise. + (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise. + (loop_invariant_p): Rename from invariant_p, add loop argument, and + update callers. + (basic_induction_var): Add loop argument, delete loop_level argument, + and update callers. + * unroll.c (iteration_info): Delete loop_start and loop_end arguments, + add loop argument, and update callers. + (find_splittable_regs, find_splittable_givs): Likewise. + (reg_dead_after_loop, loop_find_equiv_value): Likewise. + (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise. + (biv_total_increment): Delete loop_start and loop_end arguments; + update callers. + (precondition_loop_p): Delete loop_start and loop_info arguments; + update callers. + * loop.h (get_condition_for_loop): Add loop argument. + (biv_total_increment): Delete loop_start and loop_end arguments. + (precondition_loop_p): Delete loop_start and loop_info arguments; + add loop argument. + (final_biv_value): Delete loop_start and loop_end arguments; + add loop argument. + (final_giv_value, back_branch_in_range_p): Likewise. + +2000-01-25 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. + +2000-01-25 Gavin Romig-Koch <gavin@cygnus.com> + + * Makefile.in (c-gperf.h) : Change the "See" pointer to + point to the new "generated_files" doc. + +2000-01-25 Clinton Popetz <cpopetz@cygnus.com> + + * config/fp-bit.c (_unord_f2): Fix typo. + +2000-01-25 Zack Weinberg <zack@wolery.cumb.org> + + * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c, + c-typeck.c, objc/objc-act.c: Remove all references to obstack + functions obsoleted by GC, such as push_obstacks_nochange, + end_temporary_allocation, savealloc, saveable_tree_cons, etc. + and code which existed only to decide whether or not to call + them. Remove now-unused NESTED argument from start_function; + all callers changed. Do not change behavior based on ggc_p. + The use of the ixp_obstack in c-iterate.c and the util_obstack + in objc/objc-act.c remain; these are not obsoleted by garbage + collection. + * c-tree.h: Update prototype for start_function. + + * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild. + +2000-01-25 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.md (zero_extendsidi2_internal): Disable for + mips16. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * sparc-protos.h (select_cc_mode): Declare. + * sparc.c (select_cc_mode): New. Handle unordered compares. + (output_cbranch): Always reverse via code change. Handle + unordered compares. Factor tests and string updates. + * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode. + (REVERSIBLE_CC_MODE): Also exclude CCFPmode. + * sparc.md (bunordered, bordered): New. + (bungt, bunlt, buneq, bunge, bunle): New. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root. + * ggc-common.c (ggc_add_rtx_varray_root): New. + (ggc_mark_rtx_varray): New. + (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr + functions down below ggc_mark_foo. + * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare. + +2000-01-25 Richard Henderson <rth@cygnus.com> + + * alpha.c (secondary_reload_class): Don't allocate a secondary + for integral mode memories into FLOAT_REGS. Rearrange the more + complicated memory expression inward. + +2000-01-25 Zack Weinberg <zack@wolery.cumb.org> + + * inclhack.def: Fixes to play nicer with FreeBSD, and + corrections to comments. + (cxx_unready): Add select expression. + (irix_sockaddr): Add bypass expression. + (machine_ansi_h_va_list): New fix. + (stdio_va_list): No need to edit _BSD_VA_LIST_. + Split out addition of "#include <stdarg.h>" to... + (stdio_stdarg_h): ... here. + (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply + to stdlib.h also. Do not munge _BSD_SIZE_T_. + (sysz_stdlib_for_sun): Delete duplicate fix for unprotected + size_t. + (ultrix_ifdef): Tighten up select expression. + + * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of + re_ct and max_mach to avoid use of shell. Make printed names + match names in inclhack.def. Use static copyright date. + Don't count c_test and test expressions as requiring regex_t + slots. Add some commentary. + * inclhack.tpl: Do not include the 'This script contains N + fixup scripts' line if PROGRAM is defined. Use static + copyright date. + +2000-01-24 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c: include "varray.h", not dyn-string.h. + (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose. + (addr_const_to_string, addr_to_string): Lose. + (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c. + (struct dw_val_struct): val_addr is now an rtx. + (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust. + (used_rtx_varray): New varray. + (dwarf2out_init): Initialize it. + (save_rtx): New fn. + (mem_loc_descriptor, add_const_value_attribute): Call it instead of + addr_to_string. + * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h, + sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST. + * Makefile.in (dwarf2out.o): Update dependencies. + +2000-01-24 Richard Henderson <rth@cygnus.com> + + * i386.c (i386_dwarf_output_addr_const): New. + * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New. + + * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR + if defined. + * dwarfout.c (output_mem_loc_descriptor): Likewise. + * i386.c (i386_simplify_dwarf_addr): New. + * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New. + +Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com> + + * dwarf2out.c (gen_struct_or_union_type_die): Set complete if + TYPE_STUB_DECL is NULL. + +2000-01-24 Richard Henderson <rth@cygnus.com> + + * builtins.c (expand_tree_builtin): Move ... + * c-common.c (expand_tree_builtin): ... here. + +2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.h (LOOP_INFO): New accessor macro. + * basic-block.h (struct loop): Rename field `info' to `aux'. + * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop). + (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise. + * unroll.c (loop_iterations, unroll_loop): Likewise. + +2000-01-24 Christopher Faylor <cgf@cygnus.com> + + * config/i386/t-cygwin: Accomodate new winsup directory layout + when searching for include files. + +2000-01-24 Richard Henderson <rth@cygnus.com> + + * rtl.def: Add unordered fp comparisions. + * tree.def: Likewise. + * tree.h: Add ISO C 9x unordered fp comparision builtins. + + * builtins.c (expand_tree_builtin): New function. + * c-typeck.c (build_function_call): Use it. + (build_binary_op): Support unordered compares. + * c-common.c (c_common_nodes_and_builtins): Add unordered compares. + + * combine.c (known_cond): Handle reverse_condition returning UNKNOWN. + (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed. + * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing. + (record_jump_equiv): Handle reverse_condition returning UNKNOWN. + * jump.c (reverse_condition): Don't abort for UNLE etc, but + return UNKNOWN. + (swap_condition): Handle unordered compares. + (thread_jumps): Check can_reverse before reversing. + * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be + reversed for FP. + + * optabs.c (can_compare_p): New argument CODE. Verify branch or + setcc is present before acking for cmp_optab. Update all callers. + (prepare_float_lib_cmp, init_optabs): Handle UNORDERED. + * expmed.c (do_cmp_and_jump): Update for can_compare_p. + * expr.c (expand_expr): Likewise. Support unordered compares. + (do_jump, do_store_flag): Likewise. + * expr.h (enum libfunc_index): Add unordered compares. + + * Makefile.in (FPBIT_FUNCS): Add _unord_sf. + (DPBIT_FUNCS): Add _unord_df. + * config/fp-bit.c (_unord_f2): New. + * fp-test.c (main): Try unordered compare builtins. + + * alpha-protos.h (alpha_fp_comparison_operator): Declare. + * alpha.c (alpha_comparison_operator): Check mode properly. + (alpha_swapped_comparison_operator): Likewise. + (signed_comparison_operator): Likewise. + (alpha_fp_comparison_operator): New. + (alpha_emit_conditional_branch): Handle unordered compares. + * alpha.h (PREDICATE_CODES): Update. + * alpha.md (fp compares): Use alpha_fp_comparison_operator. + (bunordered, bordered): New. + +2000-01-24 Richard Henderson <rth@cygnus.com> + + * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation. + * alpha.md (movtf): New expander, insn, and splitter. + +Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz> + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + +Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. + (FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER): Add frame pointer + (FRAME_POINTER_REGNUM): Set to 20 + (HARD_FRAME_POINTER_REGNUM): New macro. + (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER + to HARD_FRAME_POINTER. + (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM + (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. + (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. + (HI_REGISTER_NAMES): Add "frame". + (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination. + (debug_reg): Handle FRAME_POINTER_REGNUM. + (reg_class): Add arg pointer and frame pointer to NON_Q_REGS, + GENERAL_REGS and INDEX_REGS. + * i386.c (SAVED_REGS_FIRST): new macro. + (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx + (ix86_decompose_address, memory_address_length): Likewise. + (regclass_map): Add frame pointer. + (call_insn_operand): Handle frame_pointer_rtx. + (reg_no_sp_operand): Likewise. + (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx. + (print_operand, legitimize_pic_address): Fix formating. + (ix86_compute_frame_size): Make static, update prototype, new + parameters padding1, padding2, use ix86_nsaved_regs, use + stack_alignment_needed. + (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM + to HARD_FRAME_POINTER_REGNUM conversions. + (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues. + (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues. + (print_reg): Abort on FRAME_POINTER_REGNUM + +Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.h (PREDICATE_CODES): Add aligned_operand. + * i386.c (aligned_operand): New function. + (ix86_aligned_p): Kill. + * i386.md (movhi_1): Emit mov for aligned operands. + (promoting peep2s): Use aligned_operand. + +2000-01-23 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular + expression to allow underscores in macro names. + (fix_char_macro_defines): Increment scanning pointer. + +2000-01-23 Richard Henderson <rth@cygnus.com> + + * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define. + * alpha/osf5.h: New file. + * configure.in (alpha-*-osf5): Add it to tm_file. + + * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target. + + * alpha-protos.h (alpha_emit_xfloating_arith): Declare. + (alpha_emit_xfloating_cvt, function_arg): Declare. + * alpha.c (alpha_emit_conditional_branch): Call + alpha_emit_xfloating_compare for TFmode compares. + (alpha_lookup_xfloating_lib_func): New. + (alpha_compute_xfloating_mode_arg): New. + (alpha_emit_xfloating_libcall): New. + (alpha_emit_xfloating_arith): New. + (alpha_emit_xfloating_compare): New. + (alpha_emit_xfloating_cvt): New. + (print_operand): Add default abort case. + (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE. + * alpha.h (TARGET_HAS_XFLOATING_LIBS): New. + (BIGGEST_ALIGNMENT): Increase to 128 bits. + (RETURN_IN_MEMORY): True for TF/TCmode. + (ALPHA_ARG_SIZE): TF/TCmode is passed indirect. + (FUNCTION_ARG): Move to function_arg. + (FUNCTION_ARG_PASS_BY_REFERENCE): New. + (ASM_OUTPUT_LONG_DOUBLE): New. + (ASM_OUTPUT_DOUBLE): Always output bits. + * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New. + (fix_trunctfdi2, floatditf2, floatunsditf2): New. + (extenddftf2, trunctfdf2): New. + +2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved... + * config/sparc/sol2.h: ... here. + +2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * basic-block.h (struct loops): New field `levels'. + * flow.c (flow_loops_level_compute): Traverse all outer loops. + (flow_loop_level_compute): Initialise level to 1. + (flow_loops_find): Set loops->levels. + (flow_loops_dump): Print loops->levels. + +2000-01-23 Richard Henderson <rth@cygnus.com> + + * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS. + (throw_helper): Iterate over DWARF_FRAME_REGISTERS. + +2000-01-23 Richard Henderson <rth@cygnus.com> + + * i386.c (dbx_register_map, svr4_dbx_register_map): New. + * i386.h (DBX_REGISTER_NUMBER): Use them. + * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise. + * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise. + * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise. + * i386/sequent.h: Kill incorrect comment. + +2000-01-23 Mark Mitchell <mark@codesourcery.com> + + * ggc-page.c (struct page_entry): Make `context_depth' an + `unsigned short'. + (struct globals): Likewise. + +2000-01-23 Clinton Popetz <cpopetz@cygnus.com> + + * loop.c (check_dbra_loop): When checking a loop for + reversability, check the source of any stores to ensure + they don't depend on an initial value. + +2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine. + +2000-01-22 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixincl.c: Move declarations of 'pz_fname' and + 'pz_scan' into scope of entire function. Only affects + compiles with -DDEBUG. + +2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au> + + * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data + section naming to that prior to 2000-01-07 patch. + * config/mips/elf.h (UNIQUE_SECTION): Ditto. + * config/mips/elf64.h (UNIQUE_SECTION): Ditto. + * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto. + * config/i386/interix.c (UNIQUE_SECTION): Ditto. + * config/i386/winnt.c (UNIQUE_SECTION): Ditto. + +2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk> + + * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a + constant. + +2000-01-21 Jim Wilson <wilson@cygnus.com> + + * fixinc/inclhack.tpl: Test for directory before trying to cd into it. + * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate. + +2000-01-21 Zack Weinberg <zack@wolery.cumb.org> + + * cpphash.c (change_newlines): Delete function. + (struct argdata): Delete 'newlines' and 'use_count' fields. + (macroexpand): Remove code referencing those fields. + +2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (loops_info): New variable. + (loop_optimize): Allocate loops->array and free it on exit. + Allocate memory for loops_info and assign to each loop, + replacing alloca. + (find_and_verify_loops): Do not allocate loops->array. + +2000-01-21 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'. + +2000-01-21 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new + pseudos if expanded after first flow. + (movdi_pic_label_ref): Likewise. + +2000-01-20 Richard Henderson <rth@cygnus.com> + + * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. + +2000-01-20 Zack Weinberg <zack@wolery.cumb.org> + + * Makefile.in (fixinc.sh): Depend on specs. + * fixinc/Makefile.in: Add rule to create machname.h. + (fixlib.o): Depend on machname.h. + * fixinc/fixtests.c (machine_name): New test. + * fixinc/fixfixes.c (machine_name): New fix. + * fixinc/fixlib.c (mn_get_regexps): New helper function for + the machine_name test and fix. + * fixinc/fixlib.h: Prototype it. + * fixinc/inclhack.def (machine_name): Use the C test and fix. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild. + + * gcc.c (do_spec_1) [case P]: Take care not to create + identifiers with three leading or trailing underscores. + + * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC. + (fixincl): Don't specify libraries twice on link line. + (gnu-regex.o): Remove special rule. + * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was + defined by config.h. Do not define _REGEX_RE_COMP. + (regcomp): Allocate and initialize a fastmap. + * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP. + +2000-01-20 Brad Lucier <lucier@math.purdue.edu> + + * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h. + +2000-01-19 Richard Henderson <rth@cygnus.com> + + * flow.c (propagate_block): Replace FIRST, LAST and BNUM + arguments with BB. Update all callers. Tidy line wrapping. + +2000-01-19 Clinton Popetz <cpopetz@cygnus.com> + + * emit-rtl.c (try_split): Return last_insn if we split the + last_insn. + +Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386-protos.h (ix86_compute_frame_size): Remove prototype. + (ix86_initial_elimination_offset): Declare. + * i386.c (ix86_nsaved_regs): Break out from ... + (ix86_can_use_return_insn_p): ... here. + (ix86_emit_save_regs): Break out from ... + (ix86_expand_prologue): ... here. + (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break + out from ... + (ix86_expand_epilogue): ... here. + (ix86_compute_frame_size): Make static, add prototype. + (ix86_initial_elimination_offset): Break out from ... + * i386.h (INITIAL_ELIMINATION_OFFSET): ... here. + +2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * recog.h (OUT_FCN): Delete. + + * vax.md: Call `get_insn_template' instead of OUT_FCN. + +2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cppalloc.c: PROTO -> PARAMS. + * cpperror.c: Likewise. + * cppfiles.c: Likewise. + * cpplib.c: Likewise. + * cpplib.h: Likewise. + + * config/arm/arm-protos.h: PROTO -> PARAMS. + * config/arm/arm.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/fr30/fr30-protos.h: Likewise. + * config/nextstep.c: Likewise. + * config/pa/pa.c: Likewise. + * config/pj/pj.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/v850/v850-protos.h: Likewise. + * config/v850/v850.c: Likewise. + +2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * i370-protos.h: New file. + + * i370.c: Include tm_p.h. Fix compile time warnings. + + * i370.h: Move prototypes to i370-protos.h. Fix compile time + warnings. + + * i370.md: Likewise. + +2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS. + (target_isinf, target_isnan, eisnan): Mark parameter with + ATTRIBUTE_UNUSED. + (eiisinf): Wrap in INFINITY. + (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY. + (ibmtoe): Remove unused variable `rndsav'. + +Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis. + (GO_IF_LEGITIMATE_ADDRESS): Added missing tab. + +2000-01-19 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o. + * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes. + (fix_char_macro_defines, fix_char_macro_uses): New functions. + + * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp. + Recognize Emacs mode markers also. + * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of + C++ comments in C++ headers. Call is_cxx_header only if + necessary. + + * fixinc/inclhack.def (avoid_bool): Add select for the problem and + bypass for ncurses. + (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with... + (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes): + ... these, which use the new C fixes. + (math_exception): Escape literal '+' in bypass expression. + + * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh: + Regenerate. + +2000-01-19 Geoff Keating <geoffk@cygnus.com> + + * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs + inside the MEM. + +2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (loop_optimize): Allocate loop_info structure for each loop + prior to calling scan_loop. + +Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.c (find_barrier, gen_block_redirect): Fix indentation. + (split_branches, calc_live_regs): Likewise. + +Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (fpu_single, fp_mode): New attributes. + +2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (current_loop_info): Renamed from loop_info_data + and changed to a pointer. + (loop_optimize): Allocate loop_info structure for each loop + and initialise to zero. + (scan_loop): Set current_loop_info. + + * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set + on iteration_var. + +2000-01-19 Richard Henderson <rth@cygnus.com> + + * stupid.c: Die die die. + * Makefile.in (OBJS): Remove stupid.o. + (stupid.o): Likewise. + + * except.c (emit_eh_context): Don't emit USEs for stupid. + * explow.c (probe_stack_range): Likewise. + * flags.h (obey_regdecls): Remove. + * flow.c (find_basic_blocks): Don't run try_merge_blocks + when not optimizing. + (life_analysis): Limit data collection when not optimizing. + (mark_regs_live_at_end): Always mark the return value registers. + (mark_used_regs): Remove dummy RETURN case. + (print_rtl_with_bb): Don't consult obey_regdecls. + * function.c (use_variable, use_variable_after): Remove. + (assign_parms): Consult optimize not obey_regdecls. + (expand_function_start): Don't emit USEs for stupid. + (expand_function_end): Likewise. + * global.c (build_insn_chain): Export. + * integrate.c (expand_inline_function): Kill return-value USE + handling code. + * jump.c (jump_optimize_1): Do simple jump optimizations and + dead code elimination. + (calculate_can_reach_end): Remove check_deleted argument. + (delete_insn): Patch out insns even when not optimizing. + * local-alloc.c (block_alloc): Don't do tying when not optimizing. + * rtl.h (use_variable, use_variable_after): Remove declarations. + (build_insn_chain): Declare. + * stmt.c (expand_value_return): Don't emit USEs for stupid. + (expand_end_bindings): Likewise. + (expand_decl): Likewise. Consult optimize not obey_regdecls. + * toplev.c (obey_regdecls): Remove. + (rest_of_compilation): Don't set it. Kill stupid in favour of + flow1, local-alloc, and reload. + (main): Don't set obey_regdecls. + + * config/nextstep.c (handle_pragma): Likewise. + + * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid. + + * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * alpha-protos.h: PROTO -> PARAMS. + * alpha.c: Likewise. + * elf.h: Likewise. + * h8300.c: Likewise. + * i386-protos.h: Likewise. + * i386.c: Likewise. + * m32r-protos.h: Likewise. + * m32r.c: Likewise. + * mips.c: Likewise. + * mips.md: Likewise. + * gmon-sol2.c: Likewise. + * sparc.c: Likewise. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * ns32k-protos.h: New file. + + * ns32k.c: Fix compile time warnings. + + * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time + warnings. + + * ns32k.md: Likewise. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * vax-protos.h: New file. + + * vax.c: Fix compile time warnings. + + * vax.h: Move prototypes to vax-protos.h. Fix compile time + warnings. + + * vax.md: Likewise. + + * vaxv.md: Likewise. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * romp-protos.h: New file. + + * romp.c: Fix compile time warnings. + + * romp.h: Move prototypes to romp-protos.h. Fix compile time + warnings. + + * romp.md: Likewise. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * we32k-protos.h: New file. + + * we32k.c: Fix compile time warnings. + + * we32k.h: Move prototypes to we32k-protos.h. Fix compile time + warnings. + +2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. + + * except.c (eh_regs): Likewise. + + * final.c (output_operand): Likewise. + + * fold-const.c (target_isinf, target_isnan): Likewise. + +Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz> + + * i386.h (BIGGEST_ALIGNMENT): Set to 128. + (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32) + + * i386.md (memstr): Do not use rep stosb for counts divisible by 4 + when optimize_size. + (clrstrsi): Rewrite. + (strsethi, strsetqi): New expanders. + (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns. + (cmpstrsi): Emit compare insn before cmpstrsi_1 + (cmpstrsi_nz): use flags, set type to str, prefix_length to 1. + (strlensi_1): Likewise. + (cmpstrsi_1): Likewise; do not output compare. + (strlen expander): Do not unroll when optimizing for size. + (*subsi3_carry): Rename to subsi3_carry + (addqi3_cc): New pattern. + * i386.h (processor_costs): Add move_ratio field. + (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE + * i386.c (*_cost): Set move_ratio. + (x86_unroll_strlen): Enable for Athlon, PPro and K6 too. + (x86_expand_strlensi_1): Rewrite the main loop. + +2000-01-17 Richard Henderson <rth@cygnus.com> + + * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode. + * cse.c (find_comparison_args, fold_rtx): Likewise. + * integrate.c (subst_constants): Likewise. + * loop.c (get_condition): Likewise. + + * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs. + + * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF. + +2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de> + + * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. + (RESTORE_WARN_FLAGS): Unpack it. + Change semantic type of extension to ttype. + * c-common.c (split_specs_attrs): Expect an INTEGER_CST. + * c-parse.y, c-parse.c, objc/objc-parse.y, + objc/objc-parse.c: Regenerate. + +2000-01-17 Zack Weinberg <zack@wolery.cumb.org> + + * fixinc/fixlib.c: Add copyright notice. + (compile_re): New function. + * fixinc/fixlib.h: Prototype compile_re. + + * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c: + Use compile_re to compile regular expressions. + + * fixinc/fixincl.c (egrep_test): Don't bother asking regexec + where the pattern matched. + + * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy, + use 'replace'. + (ultrix_ansi_compat): Likewise. + (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test, + add egrep test. + (interactv_add2, interactv_add3): Delete. + (x11_sprintf): Don't use filename glob. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh: + Regenerate. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * print-rtl.c: PROTO -> PARAMS. + * real.c: Likewise. + * reg-stack.c: Likewise. + * resource.c: Likewise. + * sdbout.h: Likewise. + * simplify-rtx.c: Likewise. + * stor-layout.c: Likewise. + * stupid.c: Likewise. + * xcoffout.c: Likewise. + * xcoffout.h: Likewise. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * toplev.c: PROTO -> PARAMS. + * toplev.h: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + * unroll.c: Likewise. + * varasm.c: Likewise. + * varray.c: Likewise. + * varray.h: Likewise. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * reload.c: PROTO -> PARAMS. + * reload.h: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.h: Likewise. + * rtl.c: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + * sbitmap.h: Likewise. + * sdbout.c: Likewise. + * stack.h: Likewise. + * stmt.c: Likewise. + * system.h: Likewise. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * machmode.h: PROTO -> PARAMS. + * mbchar.h: Likewise. + * mips-tdump.c: Likewise. + * mips-tfile.c: Likewise. + * optabs.c: Likewise. + * output.h: Likewise. + * prefix.c: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * regs.h: Likewise. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * ggc-common.c: PROTO -> PARAMS. + * ggc-page.c: Likewise. + * ggc-simple.c: Likewise. + * ggc.h: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * gthr-win32.h: Likewise. + * haifa-sched.c: Likewise. + * halfpic.h: Likewise. + * integrate.c: Likewise. + * integrate.h: Likewise. + * jump.c: Likewise. + * lcm.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. + +2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * genattr.c: PROTO -> PARAMS. + * genattrtab.c: Likewise. + * gencheck.c: Likewise. + * gencodes.c: Likewise. + * genconfig.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * genflags.c: Likewise. + * gengenrtl.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + +2000-01-16 Mark Mitchell <mark@codesourcery.com> + + * tree.h (BINFO_VPTR_FIELD): Augment documentation. + +2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro. + * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP. + * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO. + * configure, config.in: Rebuilt. + +2000-01-16 Zack Weinberg <zack@wolery.cumb.org> + + * config/i386/i386.md: Add peephole to merge successive stack + adjusts. + +Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com) + + * gcse.c (insert_insn_end_bb): Use emit_block_insn_before + instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK + when walking backwards to find all the parameter loads when + the basic block ends in a call. + +2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * loop.c (this_loop_info): Delete. + (uid_loop): Add in place of uid_loop_num. All uses updated. + (loop_number_exit_count): Delete and replace with entry in loop + structure. All uses updated. + (loop_number_loop_starts, loop_number_loop_ends): Likewise. + (loop_number_loop_cont, loop_number_cont_dominator): Likewise. + (loop_outer_loop): Likewise. + (loop_invalid, loop_number_exit_labels): Likewise. + (loop_used_count_register): Delete and replace with entry in + loop_info structure. + (find_and_verify_loops): Add loops argument. + (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start, + loop_end, etc. arguments with loop structure pointer. All callers + changed. + (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise. + (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise. + (load_mems_and_recount_loop_regs_set, load_mems): Likewise. + (insert_bct): Likewise. + (basic_induction_var): New argument level. + * loop.h (struct loop_info): Delete fields num, loops_enclosed, + vtop, and cont. Add used_count_register. + (uid_loop): Delete declaration. + (loop_number_exit_count): Likewise. + (loop_number_loop_starts, loop_number_loop_ends): Likewise. + (loop_number_loop_cont, loop_number_cont_dominator): Likewise. + (loop_outer_loop, loop_used_count_register): Likewise. + (loop_invalid, loop_number_exit_labels): Likewise. + (unroll_loop): Replace loop_start and loop_end arguments + with loop structure pointer. + (loop_precondition_p, loop_iterations): Likewise. + Include basic-block.h. + * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments + with loop structure pointer. + (loop_precondition_p, loop_iterations): Likewise. + * basic-block.h (struct loop): New entries vtop, cont, + cont_dominator, start, end, top, scan_start, exit_labels, + exit_count. + * Makefile.in (LOOP_H): Add basic-block.h to dependencies. + +2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> + + * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT. + +2000-01-14 Nathan Sidwell <sidwell@codesourcery.com> + + * config.in: Rebuilt for 2000-01-13 change to acconfig.h. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * pdp11-protos.h: New file. + + * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time + warnings. + + * pdp11.md: Likewise. + + * 2bsd.h: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * mn10300-protos.h: New file. + + * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time + warnings. + + * mn10300.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * mn10200-protos.h: New file. + + * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time + warnings. + + * mn10200.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * h8300-protos.h: New file. + + * h8300.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * h8300.h: Move prototypes to h8300-protos.h. Fix compile time + warnings. + + * h8300.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED. + (asm_emit_uninitialised): Likewise. + +2000-01-13 Gavin Romig-Koch <gavin@cygnus.com> + + * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New. + * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE. + +2000-01-14 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.c (override_options): Don't turn on extra + alignment for mips16. + +2000-01-14 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit + eabi, and make sure queued POSTINCREMENT rtl is emitted at + the right point. + +2000-01-14 Clinton Popetz <cpopetz@cygnus.com> + + * builtins.c (PAD_VARARGS_DOWN): Define. + (std_expand_builtin_va_arg): Use the above macro. + * config/mips/mips.h (PAD_VARARGS_DOWN): Define. + * tm.texi (Register Arguments): Document the above macro. + +2000-01-14 Nick Clifton <nickc@cygnus.com> + + * emit-rtl.c (emit_insn): If checking is enabled, make sure + that this function has not been used to emit a jump + instruction. + + * jump.c (return_jump_1): Cope with being passed a null rtx. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * eh-common.h: PROTO -> PARAMS. + * emit-rtl.c: Likewise. + * errors.c: Likewise. + * errors.h: Likewise. + * except.c: Likewise. + * except.h: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * expr.h: Likewise. + * final.c: Likewise. + * fix-header.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * function.h: Likewise. + * gcc.c: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * sh-protos.h: New file. + + * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h. + Add static prototypes. Fix compile time warnings. + + * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings. + * sh.md: Likewise. + * elf.h: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * arc-protos.h: New file. + + * arc.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * arc.h: Move prototypes to arc-protos.h. Fix compile time + warnings. + + * arc.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * dsp16xx-protos.h: New file. + + * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time + warnings. + + * dsp16xx.md: Likewise. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * convex-protos.h: New file. + + * convex.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * convex.h: Move prototypes to convex-protos.h. Fix compile time + warnings. + +2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * elxsi-protos.h: New file. + + * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time + warnings. + + * elxsi.md: Likewise. + +2000-01-14 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant + case for moving from HI/LO/HI_LO_REG. This makes the behavior + match the comment for MIPS16. + +Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com) + + * flow.c (split_edge): Do not call set_block_for_insn if we + do not have a basic_block_for_insn structure. + + * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain + and destination functions are 32bit aligned within the trampoline. + (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. + (TRAMPOLINE_ALIGNMENT): Define. + + * cse.c (cse_insn): When changing (set (pc) (reg)) to + (set (pc) (label_ref)), verify the change creates a valid insn. + + * fr30.c (call_operand): Tighten and rework to match rules for + call RTL expressions. + * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs. + * fr30.md (call patterns): Improve constraints. + +Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com> + + * fr30.c (fr30_expand_epilogue): Revert last change. + Use emit_jump_insn for the return insn. + +Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com> + Stan Cox <scox@cygnus.com> + + * predict.c: New file. Preliminary infrastructure work for static + branch prediction and basic block reordering. + * basic-block.h: Add prototype for estimate_probability. + * Makefile.in: Add rules for predict.o. + +2000-01-13 Jason Merrill <jason@yorick.cygnus.com> + + * fixincludes (va_list): Use __not_va_list__ for the dummy. + * fixinc/*: Likewise. + +2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * cccp.c: PROTO -> PARAMS. + * cexp.y: Likewise. + * collect2.c: Likewise. + * combine.c: Likewise. + * convert.h: Likewise. + * cse.c: Likewise. + * dbxout.c: Likewise. + * dbxout.h: Likewise. + * diagnostic.c: Likewise. + * doprint.c: Likewise. + * dwarf2out.c: Likewise. + * dwarf2out.h: Likewise. + * dwarfout.c: Likewise. + * dwarfout.h: Likewise. + * dyn-string.h: Likewise. + +2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in + macro conditionals guarding use. + + * dwarf2out.c: Include "tm_p.h". + + * function.c (locate_and_pad_parm): Mark parameter with + ATTRIBUTE_UNUSED. + (expand_function_end): Likewise for variable `context'. + + * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. + +2000-01-13 Nick Clifton <nickc@cygnus.com> + + * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed + register to prevent compile time warnings. + +2000-01-13 Zack Weinberg <zack@wolery.cumb.org> + + * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv' + to avoid -Wtraditional warning. + +2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * 1750a-protos.h: New file. + + * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time + warnings. + + * 1750a.md: Likewise. + +2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * a29k-protos.h: New file. + + * a29k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * a29k.h: Move prototypes to a29k-protos.h. Fix compile time + warnings. + +2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * clipper-protos.h: New file. + + * clipper.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * clipper.h: Move prototypes to clipper-protos.h. Fix compile time + warnings. + +Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS. + +2000-01-13 Nathan Sidwell <sidwell@codesourcery.com> + + * configure.in (--enable-new-gxx-abi): New option. + * acconfig.h (ENABLE_NEW_GXX_ABI): New define. + * Makefile.in (GXX_ABI_FLAG): New variable. + * configure: Regenerate. + +2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. + * tm.texi (FORCE_STRUCT_BLK): Document. + * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. + +Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com> + + * config/ns32k/ns32k.md: Revert Jan 9 change. + + * genrecog.c (maybe_both_true_2): Do not compare a predicate-test + to a mode-test, if the predicate is address_operand. + +Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) + + * combine.c (if_then_else_cond): Be careful about what kinds + of RTL expressions are passed to operand_subword. + + * flow.c (split_edge): If we have to insert a new jump, make + sure to associate it with a basic block. + + * flow.c (commit_one_edge_insertion): A block with one successor + can end in a JUMP_INSN that is not a simplejump. + +2000-01-12 Robert Lipe <robertl@sco.com> + + * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor". + (BUILD_VA_LIST_TYPE): Define. + (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact + with crtstuff.c. + +2000-01-12 Jason Merrill <jason@casey.cygnus.com> + + * cccp.c (do_pragma): Add cast to (char *). + +2000-01-12 Richard Henderson <rth@cygnus.com> + Fred Fish <fnf@be.com> + Jason Merrill <jason@cygnus.com> + + * configure.in (i?86-*-beos{pe,elf,}*): Recognize. + * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files. + * i386/beos-elf.h, i386/beos-pe.h: New files. + + * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New. + * cross-make (SYSTEM_HEADER_DIR): Define using + CROSS_SYSTEM_HEADER_DIR. + + * gcc.c (LIBRARY_PATH_ENV): Provide default. + (process_command): Use it. + (main): Likewise. Kill trailing = from env vars. + (build_search_list): Put it back. + * collect2.c (main): Use LIBRARY_PATH_ENV. + + * configure.in (GCC_NEED_DECLARATIONS): Add environ. + * toplev.c: Use NEED_DECLARATION_ENVIRON. + + * tm.texi (Frame Layout): Document SMALL_STACK. + * c-common.c (c_common_nodes_and_builtins): Check it. + + * system.h: Undef alloca after including glibc's <stdlib.h>, + if USE_C_ALLOCA is defined. + + * gcc.c (set_input): New fn. + (main): After all input files are compiled, reset the input file + info to the first. + + * aclocal.m4 (rindex, index): If already defined, don't attempt + to redefine. + + * ginclude/varargs.h: (__va_list__): Define ifndef. + * ginclude/stdarg.h: Likewise. + + * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int + instead of unsigned char. + + * hash.h (true, false, boolean): Undef before enum. + + * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be + proper type of "HOST_WIDE_INT *", rather than their natural type of + "unsigned HOST_WIDE_INT *". + +2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets. + + * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. + + * regclass.c (choose_hard_reg_mode): Likewise. + + * reload.c (find_valid_class, strict_memory_address_p): Likewise. + + * reorg.c (optimize_skip): Wrap prototype in macro conditionals. + +2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c: PROTO -> PARAMS. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-iterate.c: Likewise. + * c-lang.c: Likewise. + * c-lex.c: Likewise. + * c-lex.h: Likewise. + * c-parse.in: Likewise. + * c-pragma.c: Likewise. + * c-pragma.h: Likewise. + * c-tree.h: Likewise. + * c-typeck.c: Likewise. + * objc/objc-act.c: Likewise. + * objc/objc-act.h: Likewise. + +2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * m88k-protos.h: New file. + + * m88k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings. + + * m88k.md: Likewise. + + * tekXD88.h: Likewise. + +2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * m68k-protos.h: New file. + + * m68k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. + + * mot3300.h: Likewise. + +2000-01-12 Richard Earnshaw <rearnsha@arm.com> + + * haifa-sched.c (split_edges): Pass edgeset_size as second arg to + extract_bitlst. + (extract_bitlist): Declare bitlen. + +2000-01-12 Zack Weinberg <zack@wolery.cumb.org + + * cccp.c: Accept and ignore -lang-fortran. + + * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the + qualifiers don't match at any level of pointerness. + +2000-01-12 Robert Lipe <robertl@sco.com> + + * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT. + +2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk> + + * reload1.c (reload_reg_unavailable): New static variable. + (reload_reg_free_p): Test it. + (reload_reg_free_for_value_p): Test it instead of + reload_reg_used. + (choose_reload_regs_init): Compute it. + +Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com) + + * reorg.c (fill_slots_from_thread): Check modified_in_p + before replacing. + +Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com> + + * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format + these nodes even if INTERNALS is not set. + +Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com> + + * gcse.c (delete_null_pointer_checks_1): Cope when + get_condition cannot determine the condition. + +2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> + + * toplev.h (set_message_length): Declare. + + * diagnostic.c (obstack_chunk_alloc): Define macro. + (obstack_chunk_free): Likewise. + (struct output_buffer): New data structure. + (vmessage): Remove. + (output_maximum_width): New variable. + (doing_line_wrapping, set_message_length, init_output_buffer, + get_output_prefix, output_space_left, emit_output_prefix, + output_newline, output_append, output_puts, dump_output, + vbuild_message_string, build_message_string, build_location_prefix, + voutput_notice, output_printf, line_wrapper_printf, + vline_wrapper_message_with_location): New functions. Implement + automatic line wrapping. + (v_message_with_decl): Make it handle automatic line wrapping. + (v_error_with_file_and_line): Likewise. + (v_warning_with_file_and_line): Likewise. + (announce_function): Likewise. + (default_print_error_function): Likewise. + +2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org> + + * cpplib.h (struct cpp_options): Change lang_asm to char. + Add lang_fortran. + * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's + done in cpp_handle_option now. + (initialize_builtins): Take out special case code used only by + __STDC_VERSION__. + (cpp_handle_option): Turn off trigraphs and trigraph warnings + if -traditional. Recognize -lang-fortran and set + lang_fortran, also turn off cplusplus_comments. + (print_help): Document -lang-fortran. + * cpplib.c (handle_directive): Ignore `# 123 "file"' if + lang_asm. Ignore all directives other than `# 123 "file"' if + CPP_PREPROCESSED. + (cpp_get_token): If -traditional, don't recognize directives + unless the # is in column 1. + (parse_string): If lang_fortran or lang_asm, silently + terminate strings ('' or "") at end of line. + Remove unnecessary braces. + +2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + Richard Henderson <rth@cygnus.com> + + * resource.c (mark_referenced_resources): Mark a set strict_low_part + as used. + * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set + strict_low_part when possible. + +2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * alias.c: PROTO -> PARAMS. + * basic-block.h: Likewise. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * builtins.c: Likewise. + * c-aux-info.c: Likewise. + * caller-save.c: Likewise. + * calls.c: Likewise. + +2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (toplev.o): Depend on regs.h. + + * output.h (tdesc_section): Prototype. + + * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED. + + * sdbout.c: Include "tm_p.h". + + * toplev.c: Include "regs.h". + +Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com> + + * unroll.c (unroll_loop): Add EH support. + +2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * pa-protos.h: New file. + + * pa.c: Include recog.h and tm_p.h. + (compute_zdepwi_operands, compute_movstrsi_length, + remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d, + find_addr_reg, import_milli): Add static prototypes. + (pa_cpu_string, pa_arch_string): Constify a char*. + (legitimize_pic_address): Pass argument `mode' to pic_label_operand. + (read_only_operand): Add argument `mode'. + (singlemove_string, output_move_double, output_fp_move_double, + output_block_move, output_and, output_ior, output_ascii, + remove_useless_addtr_insns, milli_names, output_mul_insn, + output_div_insn, output_mod_insn, output_arg_descriptor, + output_cbranch, output_bb, output_bvb, output_dbra, , + output_millicode_call, output_call, hppa_encode_label, + output_parallel_movb, output_parallel_addb): Constify a char*. + (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED. + (output_parallel_addb): Remove extra arg to `constrain_operands' + + * pa.h: Move all prototypes to pa-protos.h. + (pa_cpu_string, pa_arch_string): Constify a char*. + (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument. + + * pa.md: Call `function_label_operand' with mode argument. + Likewise for `read_only_operand'. + Fix nesting of parens in call to `symbolic_operand'. + +2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * i860-protos.h: New file. + + * i860.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings. + + * i860.md: Likewise. + +Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.md (movstrsi expander): Rewrite. + (movstrsi_1 insn): Deleted. + (strmovhi, strmovqi expander): New expanders. + (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns. + * i386.c (x86_single_stringop): New global variable. + * i386.h (x86_single_stringop): Declare. + (TARGET_SINGLE_STRINGOP): New macro. + +2000-01-11 Clinton Popetz <cpopetz@cygnus.com> + + * config/mips/mips.c (mips_va_arg): For EABI, emit the queued + integer vararg POSTINCREMENT before the destination of the jump + for the hard fp case. + (function_arg_pass_by_reference): Pass a copy of CUM to + FUNCTION_ARG. + + * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check + for CONSTANT_ADDRESS_P above while loop for subreg. + +2000-01-11 Clinton Popetz <cpopetz@cygnus.com> + + * flow.c (propagate_block): When a prologue/epilogue insn + is marked dead, unconditionally clear libcall_is_dead and + insn_is_dead, and only dump rtl if warnings aren't being + suppressed. + +Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz> + + * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD. + * i386.md (FIRST_PSEUDO_REGISTER): Set to 20. + (FIXED_REGISTERS): Set dirflag as fixed. + (CALL_USED_REGISTERS): Set dirflag as used. + (REG_ALLOC_ORDER): Set dirflag as last one. + (DIRFLAG_REG): New macro. + (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility. + (HI_REGISTER_NAMES): Add dirflag. + (DEBUF_PRINT_REG): Handle dirflag. + * i386.md (type attribute): New cld and str types. + (length_opcode attribute): Set cld and str to 1. + (memory attribute): Set str to unknown - it is not clear from the + patterns. + (pent_np function unit): Prefixed string operations takes 12 cycles + minimally; cld takes 2 cycles. + (ppro_uops attribute): Str is "many" and cld is "few". + (ppro_p0 unit): Handle cld here. + (k6_alux unit): Handle cld and str types. + (k6_load unit): It is ocupied by str opcodes. + (k6_store unit): It is ocupied by str opcodes. + (athlon_decode): Str is vector decoded. + (athlon_ieu): Handle str and cld. + (cld pattern): New. + (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction + (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1, + cmpstrsi_nz_1 insn): Do not output cld instruction + +Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org> + + * gcc.texi (G++ and GCC): Add Java and Chill. + (Bug Critera): Don't list languages. + + * gcc.texi (Incompatibilities): No longer claim most C compilers + are K&R. + + * gcc.texi (G++ and GCC): Update other front-ends list. + +Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_expand_setcc): Fix typo. + (ix86_expand_movcc): Similarly. + + * Band-aid until haifa's bitset implementation is nuked. + * haifa-sched.c (extract_bitlst): New parameter for size of the + bitset in bits. All callers changed. Avoid looking at undefined + bits in the bitset. + (edgeset_bitsize): New variable. + (schedule_region): Initialize edgeset_bitsize. + +2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * Makefile.in (optabs.o): Depend on real.h + (resource.o): Depend on insn-attr.h + + * builtins.c (result_vector): Wrap prototype in macro conditions + governing definition and use. + + * c-common.c: Include tm_p.h. + + * c-lex.c: Likewise. + + * elfos.h: Constify a char*. + + * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. + (get_attr_length, shorten_branches, profile_after_prologue): Mark + parameter with ATTRIBUTE_UNUSED. + + * fold-const.c (exact_real_inverse): Wrap variable `i' in + CHECK_FLOAT_VALUE. + + * haifa-sched.c (schedule_insns): Mark parameter with + ATTRIBUTE_UNUSED. + + * optabs.c: Include real.h. + + * real.h (ereal_atof): Add prototype arguments. + + * resource.c: Include insn-attr.h. + + * sdbout.c (sdbout_queue_anonymous_type, + sdbout_dequeue_anonymous_types): Wrap in macro + SDB_ALLOW_FORWARD_REFERENCES. + (sdbout_init, sdbout_start_new_source_file): Mark parameter with + ATTRIBUTE_UNUSED. + + * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. + + * stupid.c: Include tm_p.h. + + * tree.c (real_value_from_int_cst): Mark parameter with + ATTRIBUTE_UNUSED. + +2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * i960-protos.h: New file. + + * i960.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings. + +2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * combine.c (expand_field_assignment): Do not discard SUBREGs + while computing nonzero_bits. + +2000-01-09 Nick Clifton <nickc@cygnus.com> + + * config/arm/arm.c: Fix compile time warnings about signed vs + unsigned constants. + * config/arm/arm.h: Fix compile time warnings about signed vs + unsigned constants. + +2000-01-09 Philip Blundell <philb@gnu.org> + + * config/arm/arm.c (output_return_instruction): Use `ldr' rather + than `ldm' with only one register. + * config/arm/arm.md (push_multi): Use `str' rather than `stm' with + only one register. + + * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is + clobbered. + +Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com> + + * config/ns32k/ns32k.md (load or push effective address): Operand 1 + must have SImode. + +2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around + assignment used as truth value. + + * function.c (assign_temp): Mark parameter `dont_promote' with + ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro + PROMOTE_FOR_CALL_ONLY. + + * genrecog.c (write_subroutine): Mark variable `operands' with + ATTRIBUTE_UNUSED. + + * optabs.c (prepare_cmp_insn): Mark parameter `align' with + ATTRIBUTE_UNUSED. + + * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. + (sdbout_begin_block, sdbout_end_block): Likewise for `file'. + + * toplev.c (note_deferral_of_defined_inline_function): Likewise + for `decl'. + +2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x.h: Tidy up comments. + * config/c4x.c: Likewise. + +Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com) + + * fold-const.c (lshift_double, rshift_double): Handle + shifting by 2 * HOST_BITS_PER_WIDE_INT correctly. + +2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br> + + * toplev.c (rest_of_compilation): Initialize cse_not_expected as + in prepare_function_start(). + +Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com> + + * config/v850/v850.c (expand_epilogue): Interrupt functions no + longer allocate extra stack for function calls. + +2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (*subqf3_set): Fix typo. + +2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0. + +2000-01-07 David Edelsohn <edelsohn@gnu.org> + + * rs6000.c (processor_target_table): Add power3 as alias for 630. + * aix43.h: Revert Aug 2 change. + (HAS_INIT_SECTION): Define, not visible yet. + (LD_INIT_SWITCH): Define, not visible yet. + * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. + + * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too. + + * collect2.c (main): Expand ld2 size further. + (export_object_lst): Cast assignment to avoid warning. + (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support. + (scan_prog_file, COFF): Do not collect initialization or + finalization functions generated for entire shared object if + init/fini support present. + +2000-01-07 Nick Clifton <nickc@cygnus.com> + + * config/elfos.h: Tidy up formatting of marcos. Make sure + that .section directives are always prefixed by a tab. + + * config/svr4.h: Add #include "elfos.h" and remove duplicate + definitions. + +2000-01-07 Matt Austern <austern@sgi.com> + + * fold-const.c (real_hex_to_f): Remove duplicate declaration of + expon. + +Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of + crtstuff.c. + (crtbegin.o, s-crtS): Likewise. + +2000-01-06 Richard Henderson <rth@cygnus.com> + + * alpha.md (adddi_2+1): Limit offset such that it will be + loadable with a single ldah+lda pair. + (adddi_2+2): Explicitly fail split if we can't make it work. + +2000-01-06 Mumit Khan <khan@xraylith.wisc.edu> + + * protoize.c: Conditionally include unistd.h. + (IS_SAME_PATH_CHAR): New macro. + (IS_SAME_PATH): New macro. + (CPLUS_FILE_SUFFIX): New macro. + (cplus_suffix): New static variable. + (is_abspath): New static function. + (in_system_include_dir): Handle DOS style pathnames. + (file_could_be_converted): Likewise. + (file_normally_convertible): Likewise. + (directory_specified_p): Likewise. + (file_excluded_p): Likewise. + (abspath): Likewise. + (shortpath): Likewise. + (referenced_file_is_newer): Likewise. + (save_def_or_dec): Likewise. + (do_processing): Likewise. + (main): Likewise. + (edit_file): Likewise. Use rename instead of link. + (rename_c_file): Likewise. Don't rename syscalls file. + (munge_compile_params): Define null device for DOS based systems. + (process_aux_info_file): Use binary mode if appliable. + (edit_file): Likewise. + * invoke.texi (Running Protoize): Document C++ suffixes used. + + * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and + IS_DIR_SEPARATOR macros. + * collect2.c: Likewise. + * cppinit.c: Likewise. + * dwarf2out.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * prefix.c: Likewise. + * rtl.c: Likewise. + * toplev.c: Likewise. + * system.h: And move to here. + + * prefix.c (update_path): Fix typo in variable name. + +2000-01-06 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_set_1): Use loop_depth+1 as reference weight. + (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise. + (count_reg_sets_1, count_reg_references): Likewise. + (flow_loops_level_compute): Start counting actual loop depth at 1. + (flow_loops_find): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change. + +2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> + + * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to + FIRST_PSEUDO_REGISTER + * dwarf2out.c: Don't include frame.h + * dwarfout.c: Likewise + * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on + frame.h + +Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz> + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + + * i386.c (movsf splitter): Fix typo in my last checkin. + +2000-01-05 Nick Clifton <nickc@cygnus.com> + + * varasm.c (IN_NAMED_SECTION): Allow targets to provide their + own definition of this macro. + (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either + flag_data_sections or UNIQUE_SECTION_P are true. + + * tm.texi (UNIQUE_SECTION): Document that it can be called for + unitialised data decls. + + * config/i386/winnt.c (i386_pe_unique_section): Cope with + being called for uninitialised data. + + * config/i386/interix.c (i386_pe_unique_section): Cope with + being called for uninitialised data. + + * config/mips/elf.h (UNIQUE_SECTION): Cope with being called + for uninitialised data. + + * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called + for uninitialised data. + + * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called + for uninitialised data. + + * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define. + (UNIQUE_SECTION_P): Always generate a unique section if + flag_data_sections is true. + (UNIQUE_SECTION): Also generate unique sections for + uninitialised data. + (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section(). + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use + named_section(). + +2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF, + SI, or DI. + +2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (udivqi3, divqi3): Delete. + (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise. + (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New. + (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise. + (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise. + + * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls. + +2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu> + + * c-decl.c (finish_enum): Simplify code to determine minimum and + maximum values of the enum, and calculate the type. Remove check + for FUNCTION_DECLs in the values list, which cannot happen. Replace + the DECL_INITIAL of each enumeration constant with a copy converted + to the enumeration type. When updating variant types, don't bother + updating the type itself. + + * c-typeck.c (build_binary_op): Simplify conditional expressions + when weeding out spurious signed-unsigned warnings. Add new + spurious warning category: if the unsigned quantity is an enum + and its maximum value fits in signed_type(result_type). Update + commentary. + (build_conditional_expr): Warn here if one alternative is signed + and the other is unsigned. + +2000-01-05 Nick Clifton <nickc@cygnus.com> + + * config/fr30/fr30.h: Remove extraneous comments. + +2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk> + + * reload1.c (choose_reload_regs): When disabling a reload, also + set reload_spill_index to -1. + +2000-01-04 Joel Sherrill (joel@OARcorp.com> + + * configure.in (m68*-*-rtemscoff*): New target, formal name for + old m68*-*-rtems*. + (m68*-*-rtemself*): New target. + (mips64orion-*-rtems*): Remove duplicate definition of tm_file. + (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*. + (sparc*-*-rtemself*): New target. + (sparc*-*-rtems*): Now elf not a.out. + * config/i386/rtems.h: Include config/rtems.h. + * config/i386/rtemself.h: Include config/rtems.h. + * config/i960/rtems.h: Include config/rtems.h. + * config/m68k/rtems.h: Include config/rtems.h. + * config/m68k/rtemself.h: Include config/rtems.h. + * config/mips/rtems64.h: Include config/rtems.h. + * config/pa/rtems.h: Include config/rtems.h. + * config/rs6000/rtems.h: Include config/rtems.h. + * config/sh/rtems.h: Include config/rtems.h. + * config/sh/rtemself.h: Include config/rtems.h. + * config/sparc/rtems.h: Include config/rtems.h. + * config/sparc/rtemself.h: Include config/rtems.h + +Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru> + + * final.c (shorten_branches): Correctly compute length of + asms without operands. + +Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com> + + * configure.in: Add pj target. + * configure: Regenerate. + * config/pj: New directory. + * config/pj/lib1funcs.S: New file. + * config/pj/linux.h: New file. + * config/pj/pj.c: New file. + * config/pj/pj.md: New file. + * config/pj/pjl.h: New file. + * config/pj/t-pj: New file. + * config/pj/xm-pj.h: New file + +Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com) + + * toplev.c (rest_of_compilation): Run shorten-branches before + reg-stack for now. + +2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of + macros so that they're consistent with their names. + * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise. + * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise. + +2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never + modified inadvertently. + +2000-01-04 Joel Sherrill <joel@OARcorp.com> + + * configure.in (v850*-*-rtems*): New target. + * configure: Regenerate. + * config/v850/rtems.h: New file. + +2000-01-04 Mumit Khan <khan@xraylith.wisc.edu> + + * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime. + (__gthread_key_create): Likewise. + (__gthread_key_dtor): Likewise. + (__gthread_once): Fix logic. + (__gthread_key_delete): Cast away constness. + + * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option. + * invoke.texi: Document. + * i386/mingw32.h (CPP_SPEC): Use. + (LIBGCC_SPEC): Likewise. + * i386/crtdll.h (LIBGCC_SPEC): Likewise. + +2000-01-04 David Edelsohn <edelsohn@gnu.org> + + * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine. + (HANDLE_PRAGMA_PACK): Undefine. + (SLOW_UNALIGNED_ACCESS): Define. + +2000-01-04 David Edelsohn <edelsohn@gnu.org> + + * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters + to default definition. + (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. + (store_fixed_bit_field): Call macro with word_mode and alignment. + (extract_bit_field): Call macro with relevant mode and alignment. + * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters + to default definition. + (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode + and alignment. + (move_by_pieces_ninsns): Likewise. + (clear_by_pieces): Likewise. + (emit_push_insn): Likewise. + (store_field): Call macro with relevant mode and alignment. + (expand_expr): Likewise. + (expand_expr_unaligned): Likewise. + + * rs6000.h (HANDLE_PRAGMA_PACK): Define. + (SLOW_UNALIGNED_ACCESS): Define. + (CASE_VECTOR_MODE): Always use 32-bit offsets. + (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. + (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op. + (toc_section): Likewise and .toc pseudo-op. + (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in + 64-bit mode. + (TEXT_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use + 32-bit offsets. + + * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters. + * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise. + * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise. + * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise. + * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise. + +Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com) + + * regclass.c: Revert my Jan 4 change to loop cost computation. + +Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz> + + * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing + compilation. + +2000-01-04 Stan Cox <scox@cygnus.com> + + * haifa-sched.c (build_control_flow): Change unreachable simple + loop test to check if current block has only one predecessor. + (find_rgns): Initialize degree. Use dest as degree index, not src. + +2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.c (expand_builtin_strlen): Initialize variable `icode'. + + * calls.c (expand_call): Likewise for + `old_stack_arg_under_construction'. + + * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. + + * function.c (pad_to_arg_alignment): Likewise for `save_var' and + `save_constant'. + + * gcc.c (execute): Likewise for `ut' and `st'. + + * genattrtab.c (attr_rtx): Likewise for `rt_val'. + + * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. + + * jump.c (jump_optimize_1): Likewise for `temp2'. + + * local-alloc.c (block_alloc): Likewise for `r1'. + + * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. + + * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. + (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. + + * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' + and `set2'. + + * reload.c (find_reloads): Likewise for `goal_alternative_number' + and `goal_earlyclobber'. + + * scan-decls.c (scan_decls): Likewise for `prev_id_end'. + + * sdbout.c (sdbout_one_type): Likewise for `member_scl'. + + * stupid.c (stupid_life_analysis): Likewise for `chain'. + + * unroll.c (copy_loop_body): Likewise for `copy'. + + * varasm.c (output_constructor): Likewise for `byte'. + +Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz> + + * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory + all FP constants for constant->reg moves. + (ix86_split_to_parts): Try to convert memory address into immediate + when available in the constant pool. + * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg + moves. + (LEGITIMATE_CONSTANT_P): Return 1. + * i386.md (pushsf): New splitter to convert constant pool memory + reference to immediate. + (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before + reload. + +2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk> + + * i386.md (ashlsi3_cmpno): Don't accept variables shifts. + (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno, + ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise. + (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno, + rotrhi3_cmpno, rotrqi3_cmpno): Likewise. + +2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de> + + * ginclude/stdbool.h: Support compilation as C++. + +Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * fold-const.c (make_range): Don't try to reverse an unbounded range. + +Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com) + + * regclass.c (regclass): Properly compute loop_cost. Adjust + comments. + + * regclass.c: Fix minor whitespace problems. + +2000-01-03 Anthony Green <green@cygnus.com> + + * config/i386/i386.md (builtin_setjmp_receiver): New pattern. + Restore the pic register if required. + +2000-01-03 Ulrich Drepper <drepper@cygnus.com> + + * c-common.c (format_char_info): Update comment. + (check_format_info): Recognize 'z' modifier in the same way 'Z' + was recognized. Emit warning for formats new in ISO C99 only + if flag_isoc9x is not set. + +Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com> + + * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs. + +Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz> + + * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to + SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND. + (make_compound_operation): Choose cheaper alternative between + ZERO_EXTEND and SIGN_EXTEND when sign bit is not set. + + * regclass.c (op_costs): Remove global variable. + (record_reg_classes): New parameter "op_costs" and "reg_pref". + (record_operand_costs): Break out from ... + (scan_one_insn): ... here. + (dump_regclass): Make dumps nicer. + (regclass): Dump preferrences choosed and changes done during passes. + +2000-01-03 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC. + +2000-01-03 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.c (gen_df_reg): New function. + * config/sparc/sparc-protos.h (gen_df_reg): Add prototype. + * config/sparc/sparc.md (movtf_no_e_insn_sp64+1, + movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1, + movtf_cc_reg_sp64+1): Use it. + +2000-01-02 Mark Mitchell <mark@codesourcery.com> + + * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on + copied LABEL_DECLs. + +Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com> + + * config/i386/i386.c (ix86_expand_unary_operator): Function + definition made void. + (ix86_expand_binary_operator): Update outdated preceding comment. + * config/i386/i386-protos.h (ix86_expand_unary_operator): Update + prototype. + + * config/i386/i386.c (override_options): Fix option-name typo. + +2000-01-02 Mark Mitchell <mark@codesourcery.com> + + * system.h (CEIL): Define. + * builtins.c (CEIL): Remove. + * expmed.c (CEIL): Likewise. + * expr.c (CEIL): Likewise. + * stor-layout.c (CEIL): Likewise. + +2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + * expr.c (store_constructor_field): Fix typo introduced with last + gcc2 merge. + +2000-01-01 Mark Mitchell <mark@codesourcery.com> + + * tree.h (BINFO_N_BASETYPES): New macro. + +2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk> + + * expmed.c (emit_store_flag): Prevent losing a pending stack + adjust the same way we prevent losing queued increments. + +See ChangeLog.2 for earlier changes. -- GitLab