+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
2000-03-16 Neil Booth <NeilB@earthling.net>
* cppinit.c (handle_option): Implement #unassert directive
- as -A- command line option.
+ as -A- command line option.
(print_help): Update.
* cpptexi.c: Update.
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.
+ * 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>
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>