+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>
+
+ See the ChangeLog on the branch for more details.
+
+ * configure.in: Merge in changes from newppc-branch.
+ * configure: Regenerate.
+ * config/rs6000/*: Merge in changes from newppc-branch.
+ Also correct copyright notices.
+
+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
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.
+ * 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>
(SET_DEFAULT_TYPE_ATTRIBUTES): Define.
* config/arm/arm.md (call): Call arm_is_longcall_p to decide
- if a long call is needed.
+ if a long call is needed.
(call_value): Ditto.
(call_symbol): Ditto.
copy_rtx_and_substitute, subst_constants, restore_constants):
Likewise.
- * jump.c (mark_jump_label, invert_exp, redirect_exp,
+ * jump.c (mark_jump_label, invert_exp, redirect_e\0\0\0xp,
rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
* local-alloc.c (contains_replace_regs, memref_referenced_p):
Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
- * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
+ * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
(unroll_loop): Access regno_pointer_* variables through
current_function.
- * tree.h (struct tree_decl): Add elt f to saved_insns member.
+ * tree.h (struct tree_decl): Add elt f to saved_ins\0\0\0ns member.
(DECL_SAVED_INSNS): use it.
(expand_dummy_function_end): Declare.
(init_function_for_compilation): Declare.
Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
- * Makefile.in (TAROUTOPTS): Kill.
+ * Makefiin (TAROUTOPTS): Kill.
(install-headers-tar): Use "xpf" for tar headerfile extraction
* i370/x-oe (TAROUTOPTS): Delete.
* m68k/x-apollo68 (TAROUTOPTS): Delete.
Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
- * mn10200.c (mn10200_va_arg): New.
+ * mn102\0\0\000.c (mn10200_va_arg): New.
* mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
- * except.c (start_dynamic_cleanup): Use force_operand on the
+ * except.c (st_dynamic_cleanup): Use force_operand on the
buffer's address.
Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>