+2001-01-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (expand_builtin_strncmp): Use host_integerp and
+ tree_low_cst. Allow using cmpstrsi in more cases.
+
+Wed Jan 3 10:48:43 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
+ sized types.
+
+Wed Jan 3 12:22:32 2001 Alexandre Oliva <aoliva@redhat.com>
+
+ * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
+ * Makefile.in (HOST_CFLAGS): Mention build-make.
+
+Wed Jan 3 08:53:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
+ as JUMP_INSN.
+
+2001-01-01 Bernd Schmidt <bernds@redhat.com>
+
+ * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
+ a REG rtx.
+
+ * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg. All
+ callers changed.
+
+ * alias.c (throughout): Use ORIGINAL_REGNO when accessing
+ reg_base_value and reg_known_value arrays.
+ (init_alias_analysis): Add more cases to detect known values.
+ * sched-deps.c (deps_may_trap_p): New function.
+ (sched_analyze_2): Use it.
+
+2001-01-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * combine.c (simplify_shift_const): Even if we're sign-extracting,
+ don't discard an ASHIFTRT if we're shifting in a wider mode.
+
+2000-01-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * toplev.c (rest_of_compilation): Don't print basic block information
+ when CFG isn't up to date.
+
+2001-01-02 Mark Elbrecht <snowball3@bigfoot.com>
+
+ * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
+ (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
+ (UNALIGNED_SHORT_ASM_OP): Define.
+ (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
+
+2001-01-02 Mark Mitchell <mark@codesourcery.com>
+
+ * fold-const.c (fold_convert): Fix typo.
+
+2001-01-02 Richard Henderson <rth@redhat.com>
+
+ * c-common.h (ASM_INPUT_P): New.
+ * c-parse.in (asm): Set it when needed.
+ * c-semantics.c (genrtl_asm_stmt): Test it instead of the
+ existance of an operand.
+
+Tue Jan 2 20:27:07 MET 2001 Jan Hubicka <jh@suse.cz>
+
+ * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
+ (dwarf2out_frame_debug_expr): Likewise.
+ (mem_loc_descriptor): Handle PRE and POST_MODIFY.
+
+Tue Jan 2 20:21:31 MET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_split_to_parts): Return number of part required;
+ handle TFmodes.
+ (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
+ TFmodes.
+ (ix86_split_long_move): Use number of part returned
+ by ix86_split_to_parts
+ * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
+ New macros.
+ (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
+ (LONG_DOUBLE_TYPE_SIZE): Change from constant.
+ (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
+ (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
+ (ALIGN_MODE_128): Add TFmode.
+ (IS_STACK_MODE): Likewise.
+ (HARD_REGNO_NREGS): TFmode needs 3 registers.
+ (HARD_REGNO_OK): Support TFmodes.
+ (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
+ * i386.md (scheduler definitions): Use memory operand to determine
+ fst/fld instructions; use mode attribute to determine real mode of
+ the instruction.
+ (*tf): New patterns, expanders and splitters; based on XFmode patterns.
+ * invoke.texi (128bit-long-double, 96bit-long-double): Document.
+
+2001-01-02 Mark Mitchell <mark@codesourcery.com>
+
+ * tree.def (TRUTH_NOT_EXPR): Improve documentation.
+
+Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
+
+ * expr.c (store_constructor_field): Update ALIGN before calling
+ store_constructor.
+
+2001-01-02 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
+ host_integerp.
+
+2001-01-02 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
+ incomplete type.
+
+Tue Jan 2 10:47:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.
+
+ * c-decl.c (start_function): Don't warn on third parameter to main.
+
+2001-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tsystem.h: Define HAVE_DECL_GETOPT.
+
+2001-01-02 Philip Blundell <pb@futuretv.com>
+
+ * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
+ of input operand.
+
+2001-01-02 Richard Henderson <rth@redhat.com>
+
+ * alpha.md (*ze_and_ne): Duplicate insn condition to split.
+
+2001-01-02 Andreas Jaeger <aj@suse.de>
+
+ * c-decl.c (c_decode_option): Remove support of
+ -Wmissing-noreturn.
+
+ * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
+ (W_options): Add -Wmissing-noreturn here.
+
+ * flow.c: Define lang_missing_noreturn_ok_p.
+ (check_function_return_warnings): Use it.
+
+ * c-common.h: Declare lang_missing_noreturn_ok_p.
+
+ * c-lang.c (c_missing_noreturn_ok_p): New function.
+ (lang_init): Set lang_missing_noreturn_ok_p.
+
+ * invoke.texi (Warning Options): Document this.
+
+2000-12-27 Phil Edwards <pme@sources.redhat.com>
+
+ * extend.texi (C++ Extensions): New node for C++ attributes;
+ describe init_priority and com_interface.
+ * invoke.texi: Remove -finit-priority as it now has zero effect.
+ * install.texi: Fix xref syntax.
+ * md.texi: Likewise.
+
+Mon Jan 1 21:28:29 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * config.gcc (sparc64-wrs-vxworks*): New case.
+ * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
+
+ * config/sparc/sparc.c (sparc_override_options): Do support different
+ pointer and architecture size.
+ * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
+ (POINTERS_EXTEND_UNSIGNED): Define.
+ (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
+ (FUNCTION_MODE): Define to be Pmode.
+ * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
+
+ * function.c (expand_function_end): Properly handle DECL_RESULT
+ and copy when ptr_mode != Pmode.
+ * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
+
+2001-01-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c (c_common_nodes_and_builtins): Set prototype
+ parameters for __builtin_fputs, __builtin_fputc and
+ __builtin_fwrite. Don't declare plain fputc as a builtin.
+
+2001-01-01 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * loop.c (add_label_notes): Increment the label usage count when
+ a note is added to an insn which refers to a CODE_LABEL.
+ * gcse.c (add_label_notes): Likewise.
+
+2001-01-01 Andreas Jaeger <aj@suse.de>
+
+ * loop.c (scan_loop): Use xmalloc to allocate movables.
+
+2001-01-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
+ * reload.c (REGISTER_MOVE_COST): Likewise. Adjust all callers.
+ * reload1.c (REGISTER_MOVE_COST): Likewise.
+ * regclass.c (REGISTER_MOVE_COST): Likewise.
+ (move_cost, may_move_in_cost, may_move_out_cost): Add mode
+ dimension. Adjust all users.
+ (init_reg_sets_1): Iterate on all modes.
+ * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
+ * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
+ * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
+ * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
+ * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
+ * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
+ * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
+ * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
+ * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
+ * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
+ * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
+ * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
+ * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
+ * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
+ * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
+ * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
+ * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
+ * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
+ * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
+ * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
+ * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
+ * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
+ * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
+ * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
+ * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
+ * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
+ * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
+
+2001-01-01 Bernd Schmidt <bernds@redhat.com>
+
+ * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
+ arg VARIES_P. Call it with extra arg.
+ (true_dependence): Likewise.
+ * rtl.h (rtx_addr_can_trap_p): Declare.
+ (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
+ prototypes.
+ * rtlanal.c (rtx_addr_can_trap_p): No longer static.
+ (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
+ pic offset table register if it's zero. All callers changed.
+ (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
+
+Mon Jan 1 07:38:33 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * explow.c (convert_memory_address, case SYMBOL_REF): Copy
+ STRING_POOL_ADDRESS_P.
+
+ * config/sparc/sparc.c (input_operand): Properly test for short op.
+
+ * config.gcc (sparc-*-elf): Include sparc/sol2.h.
+ (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
+ (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
+ * config/sparc/elf.h: No longer include sol2.h.
+ * config/sparc/lifeelf.h: No longer include sparc/elf.h.
+ * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
+
+ * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
+
+2001-01-01 Michael Hayes <mhayes@redhat.com>
+
+ * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
+ (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
+ (record_initial): Likewise.
+ * unroll.c (copy_loop_body, loop_iterations): Likewise.
+ (remap_split_bivs): Likewise.
+
+2001-01-01 Michael Hayes <mhayes@redhat.com>
+
+ * loop.c (loop_ivs_free): New function.
+ (strength_reduce): Break out from...
+
+2001-01-01 Michael Hayes <mhayes@redhat.com>
+
+ * loop.h (struct iv): New.
+ (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
+ (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
+ 'reg_biv_class' fields with 'regs' and 'n_regs'.
+ (struct ivs): Rename 'loop_iv_list' field to 'list'.
+ * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
+ * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
+
+2000-12-31 Alexandre Oliva <aoliva@redhat.com>
+
+ * resource.c (mark_referenced_resources): Abort() before
+ attempting to mark a pseudo register.
+ (mark_set_resources): Likewise.
+
+2001-01-01 Michael Hayes <mhayes@redhat.com>
+
+ * loop.h (REG_IV_CLASS): New accessor macro.
+ * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
+ * unroll.c (REG_IV_CLASS): Likewise.
+
+Sun Dec 31 19:20:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): New.
+ (loc_descriptor_from_tree, case SAVE_EXPR): New.
+
+2001-01-01 Michael Hayes <mhayes@redhat.com>
+
+ * loop.c (loop_giv_reduce_benefit): Break out from strength_reduce.
+ (loop_givs_dead_check, loop_givs_reduce, loop_givs_rescan): Likewise.
+ (prescan_loop): Set pre_header_has_call in loop_info.
+ * loop.h (struct_iv_class): Add `final_value' and `all_reduced'.
+ (struct loop_info): Add `pre_header_has_call'.
+
+ * loop.c (loop_bivs_find): Break out from strength_reduce.
+ (loop_bivs_init_find, loop_bivs_check, loop_givs_find): Likewise.
+ (loop_givs_check, loop_biv_eliminable_p): Likewise.
+
+ * loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Define.
+ (scan_loop, record_giv): Use LOOP_REG_LIFETIME and LOOP_REG_GLOBAL_P.
+
+ * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Define.
+ * loop.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Use in place of
+ direct access to uid_luid array.
+ * unroll.c (REGNO_FIRST_LUID, REGNO_LAST_LUID): Likewise.
+
+ * loop.h (struct loop_movables): New.
+ (LOOP_MOVABLES): New.
+ (struct loop_info): Add movables field.
+ * loop.c (struct movables): Delete. Replace all uses
+ with struct loop_movables.
+ (the_movables): Delete. Replace all uses with movables
+ field in loop_info.
+ (loop_movables_add, loop_movables_free): New functions.
+ (scan_loop): Use xmalloc instead of alloca for movables.
+ Call loop_movables_free.
+
+ * loop.c (debug_loops): New.
+
+2000-12-31 Philip Blundell <philb@gnu.org>
+
+ * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm
+ operands.
+
+2000-12-30 Richard Henderson <rth@redhat.com>
+
+ * dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC.
+ Initialize variables properly for DBX_LBRAC_FIRST.
+
+2000-12-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change.
+
+2000-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (validate_arglist): New function, use it.
+
+2000-12-30 Philip Blundell <philb@gnu.org>
+
+ * config/arm/arm.c (arm_expand_prologue): Fix typos in error
+ message and comment. Note location of testcase for an unhandled
+ situation.
+
+2000-12-30 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * defaults.h (BUILD_VA_LIST_TYPE): New definition.
+ * tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node
+ is a copy, not an alias.
+
+2000-12-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * calls.c (calls_function_1, case CONSTRUCTOR): New case.
+
+ * alias.c (alias_sets_conflict_p): New function.
+ (mems_in_disjoint_alias_sets_p): Use it.
+ (readonly_fields_p): Moved from expr.c; check for record type.
+ (objects_must_conflict_p): New function.
+ * calls.c (expand_call): Use assign_temp as much as possible, use
+ readonly variant if assigned once, and don't set memory attributes.
+ (emit_library_call_value_1, store_one_arg): Likewise.
+ * integrate.c (expand_inline_function): Likewise.
+ * stmt.c (expand_asm_operands, expand_return): Likewise.
+ * expr.c (copy_blkmode_from_reg, store_constructor): Likewise.
+ (store_field, save_noncopied_parts, expand_expr): Likewise.
+ (expand_expr_unaligned): Likewise.
+ (readonly_fields_p): Moved to alias.c.
+ (safe_from_p): Rework handling of SAVE_EXPR.
+ MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF.
+ * function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE.
+ (assign_stack_for_temp): Use objects_must_confict_p.
+ Set all memory attributes from type, if specified.
+ (mark_temp_slot): Mark TYPE field.
+ * tree.h (alias_sets_conflict_p, readonly_fields_p): New decls.
+ (objects_must_conflict_p): Likewise.
+
+ * stmt.c (expand_decl): Don't use assign_stack_temp in error case.
+ (add_case_node): No need to copy nodes anymore.
+
+2000-12-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/sh.c (split_branches): Don't dereference re-computed
+ `beyond' before checking it's non-NULL.
+
+2000-12-29 Robert Lipe <robertl@sco.com>
+
+ Remove COFF support from i?86-pc-sco3.2v5.
+ * i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
+ (TARGET_ELF): Now always true.
+ (SUBTARGET_SWTICHES: )Remove -mcoff.
+
+ * i386/t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_EXCEPTION): Nuke coff.
+ (CRTSTUFF_T_CFLAGS_S): Deleted.
+ (TARGET_LIBGCC2_CFLAGS): Added.
+
+2000-12-29 Alexandre Oliva <aoliva@redhat.com>
+
+ * varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
+ twice. Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
+ modifies them.
+
+2000-12-29 Bernd Schmidt <bernds@redhat.com>
+
+ * ia64.c (ia64_expand_load_address): Accept additional scratch
+ register argument. All callers & prototype changed.
+ Use scratch register when generating load_symptr insns.
+ * ia64.md (movdi_symbolic): Clobber a scratch register. Use it
+ when calling ia64_expand_load_address.
+ (movdi): Generate movdi_symbolic with additional operand.
+ (load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1).
+ (load_symptr): Likewise. Use additional operand as a scratch
+ register instead of generating it here.
+
+ * basic-block.h: Add a comment.
+ * flow.c (PROP_POSTRELOAD): New macro.
+ (update_life_info): Add it to prop_flags.
+ (mark_set_1): If it is set, compute REG_N_SETS for the original
+ register number of a hard reg.
+
+ * emit-rtl.c (gen_raw_REG): New function.
+ (gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of
+ gen_rtx_raw_REG.
+ * print-rtl.c (print_rtx): Print ORIGINAL_REGNO.
+ * final.c (alter_subreg): Update it.
+ * regrename.c (do_replace): Likewise. Use gen_raw_REG.
+ * rtl.def (REG): Update comment.
+ * rtl.h (X0UINT, ORIGINAL_REGNO): New macros.
+ (gen_raw_REG): Declare.
+
+2000-12-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree.c (get_set_constructor_bits): Use host_integerp and
+ tree_low_cst.
+
+ * local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN.
+
+ * toplev.c (main): Call xmalloc_set_program_name.
+ * gcc.c (main): Likewise.
+