+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_movables_add, loop_movables_free): New functions.
(scan_loop): Use xmalloc instead of alloca for movables.
Call loop_movables_free.
-
-2001-01-01 Michael Hayes <mhayes@redhat.com>
* loop.c (debug_loops): New.
2000-12-30 Philip Blundell <philb@gnu.org>
- * config/arm/arm.c (arm_expand_prologue): Fix typos in error
+ * config/arm/arm.c (arm_expand_prologue): Fix typos in error
message and comment. Note location of testcase for an unhandled
situation.
* 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
* calls.c (store_one_arg): If parm is passed both in stack and in
register and offset is greater than reg_parm_stack_space, split
- the offset and call emit_push_insn().
+ the offset and call emit_push_insn().
2000-12-27 Nick Clifton <nickc@redhat.com>
between conditionally executed insns.
(sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
dependency lists if current insn is a COND_EXEC.
-
+
2000-12-27 Geoffrey Keating <geoffk@redhat.com>
* config/rs6000/rs6000.md (define_attr "length"): Correct
(arm_expand_prologue): If the link register has not been saved set
lr_save_eliminated and emit a USE to prevent later passes from
scavenging it.
-
+
* dwarf2out_frame_debug_expr: Allow the (scratch) frame
pointer to be initialised from the stack pointer plus a
constant.
* dwarf2out.c (file_info_cmp): Prototype.
(dwarf2out_line): Hide variable `old_in_use'.
-
+
* objc-act.c (objc_fatal): Delete.
* sched-vis.c (visualize_stall_cycles): Remove unused variable.
(nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
bundle_selector): New patterns.
(insn_group_barrier): Now has an operand.
-
+
2000-12-21 DJ Delorie <dj@redhat.com>
* dwarf2out.c (simple_decl_align_in_bits): new
* config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
- * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
+ * config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
(c4x_output_ascii): Fix.
-
+
2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
(*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
2000-12-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-
+
* libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
* libgcc2.c (__absvsi2): Use Wtype and DWtype.
(__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
(do_warning): New function.
(finclude): Skip past the newline and increase the line number
before calling output_line_command.
- (do_line): Skip the new line after output_line_command. Don't
- pre-decrement the line number.
+ (do_line): Skip the new line after output_line_command. Don't
+ pre-decrement the line number.
2000-12-15 Diego Novillo <dnovillo@redhat.com>
* alias.c (get_alias_set): Call record_component_aliases for
COMPLEX_TYPE.
(record_component_aliases): Handle COMPLEX_TYPE.
-
+
2000-12-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* fixinc/gnu-regex.c: Disable NLS.
* gcc.c (cpp_options): Update to use '&'.
(struct switchstr): Change type of validated to save space.
New member 'ordering'.
- (handle_braces, validate_switches): Update to handle '&'.
+ (handle_braces, validate_switches): Update to handle '&'.
2000-12-13 Laurynas Biveinis <lauras@softhome.net>
* tradcpp.c (special_symbol): Improve test for definedness,
though it is still not perfect.
(do_define): Don't define illegal macro names.
-
+
2000-12-07 Aldy Hernandez <aldyh@redhat.com>
* config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
* cppfiles.c (stack_include_file): Update.
(_cpp_pop_file_buffer): Update.
* cpphash.h (struct cpp_buffer): New members
- include_stack_listed and type.
+ include_stack_listed and type.
* cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
(run_directive): Take buffer type. cpp_push_buffer cannot fail.
(_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
2000-12-09 Richard Henderson <rth@redhat.com>
- * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
+ * genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
STRICT_LOW_PART as SET_DEST have in-out constraints.
2000-12-09 Joseph S. Myers <jsm28@cam.ac.uk>
2000-12-02 Geoffrey Keating <geoffk@redhat.com>
* c-common.c (combine_strings): When the ISO C standard specifies
- the maximum length of a string, it doesn't include the trailing
- zero byte.
+ the maximum length of a string, it doesn't include the trailing
+ zero byte.
* cpplib.c (do_ifdef): Add check_eol() call.
(do_ifndef): Likewise.
2000-12-01 Jim Blandy <jimb@redhat.com>
* dbxout.c (dbxout_parms): Correctly describe parameters passed by
- invisible reference in registers, but then spilled to the stack.
- Remove code to emit a second stab for such parameters; it attempts
- to describe the value's location by introducing a synthetic C++
- `reference' type, and then saying the stack slot has that
- reference type. This loses type information (breaking GDB's
- `ptype' command, among other things) just to describe a location
- which stabs can represent correctly in other ways.
+ invisible reference in registers, but then spilled to the stack.
+ Remove code to emit a second stab for such parameters; it attempts
+ to describe the value's location by introducing a synthetic C++
+ `reference' type, and then saying the stack slot has that
+ reference type. This loses type information (breaking GDB's
+ `ptype' command, among other things) just to describe a location
+ which stabs can represent correctly in other ways.
2000-12-01 Alexandre Oliva <aoliva@redhat.com>
canonicalizes conditional compares.
(arm_select_cc_mode): Likewise.
* arm.md: Garbage collect some dead code.
- (cmp_and, cmp_ior): New patterns.
+ (cmp_and, cmp_ior): New patterns.
(splitter for conditional move with inverted false): Use cond_exec
and handle unordered comparisons.
arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
one_cmpldi2): Merge with splitters to create define_insn_and_split
- patterns. Remove redundant splits.
+ patterns. Remove redundant splits.
(peephole2 for add:SI of invalid immediate): New.
(peephole2 for minus:SI of invalid immediate): New.
(peephole2 for ior:SI of invalid immediate): New.
* dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
* dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
- UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
+ UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
* defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
* varasm.c (ASM_STABS_OP): Here.