function.c (assign_parms): Save and restore setting of TREE_USED (parm).
[gcc.git] / gcc / ChangeLog
index 65731489420a04c87cab67d2a5c66c87009dd9c5..45889f23e07594045dbd628e4dd2dbdaf0d30eeb 100644 (file)
@@ -1,3 +1,186 @@
+Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
+
+       * function.c (assign_parms): Save and restore setting of
+       TREE_USED (parm).
+
+Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
+       Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
+
+Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
+
+       * recog.c (pop_operand): New function.
+       * recog.h (pop_operand): Declare it.
+       * genrecog.c (preds): Define it.
+
+       * expr.c (do_jump_for_compare): Handle conditional branch expanders
+       emitting multiple jump instructions.
+       * jump.c (condjump_label): New function.
+       * rtl.h (condjump_label): Declare it.
+
+Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
+       clobber during or after reload.
+
+Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
+
+       * genoutput.c (name_for_index): New function.
+       (scan_operands, validate_insn_alternatives): Use it.
+       * genrecog.c (insn_name_ptr_size): New variable.
+       (make_insn_sequence): Fill in insn_name_ptr.
+       (merge_trees): Use it.
+
+Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
+
+       * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
+       * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
+       * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
+
+Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * loop.c (NUM_STORES): Delete.
+       (loop_store_mems): Turn into an EXPR_LIST of MEMs.
+       (prescan_loop): Properly initialize loop_mems_idx.
+       (note_addr_stored): Simplify using list structure instead of
+       fixed sized array.
+       (invariant_p, check_dbra_loop, load_mems): Similarly.
+
+       * flow.c (invalidate_from_autoinc): New function.
+       (mark_set_1, mark_used_regs): Use it.
+
+       * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
+
+1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       * invoke.texi (-mlong-double-64): New option description.
+
+1999-01-19  Jim Wilson  <wilson@cygnus.com>
+
+       * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
+       LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
+       if not defined.
+       * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
+       (CPP_SPECS): Add -mlong-double-64 support.
+       (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
+       (TARGET_SWITCHES): Add -mlong-double-64 support.
+       (LONG_DOUBLE_TYPE_SIZE): Likewise.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
+       * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
+       (CPP_SPECS): Add -mlong-double-64 support.
+       * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
+       (MULTILIB_DIRNAMES): Add ld64.
+       * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
+
+Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
+       invisible reference.
+
+Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.c (offsettable_addr_operand): Delete.
+       (offsettable_mem_operand): New function.
+       * rs6000.h (PREDICATE_CODES): Reflect function change.
+       (RS6000_SAVE_TOC): Represent address as MEM.
+       * win-nt.h (RS6000_SAVE_TOC): Same.
+       * rs6000.md (indirect calls): Change offsettable address parameter
+       to offsettable memory parameter.
+
+Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
+
+       * rtl.h (rtx_def): Update documentation.
+       (MEM_IN_STRUCT_P): Likewise.
+       (MEM_SCALAR_P): New macro.
+       (MEM_COPY_ATTRIBUTES): Likewise.
+       (MEM_SET_IN_STRUCT_P): Likewise.
+       * rtl.texi (MEM_SCALAR_P): Document.
+       * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
+       (fixed_scalar_and_varying_struct_p): New function.  Use
+       MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
+       (aliases_everything_p): Likewise.
+       (true_dependence): Use them.
+       (write_dependence_p): New function, containing code common to
+       anti_dependence and output_dependence.
+       (anti_dependence): Use it.
+       (output_dependence): Likewise.
+       * calls.c (save_fixed_argument_area): Don't clear
+       MEM_IN_STRUCT_P. 
+       (expand_call): Use MEM_SET_IN_STRUCT_P.
+       (emit_library_call): Don't clear MEM_IN_STRUCT_P.
+       (emit_library_call_value): Likewise.
+       (store_one_arg): Use MEM_SET_IN_STRUCT_P.
+       * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
+       (make_extraction): Likewise.
+       (simplify_shift_const): Likewise.
+       (gen_lowpart_for_combine): Likewise.
+       * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
+       * emit-rtl.c (operand_subword): Likewise.
+       (change_address): Likewise.
+       * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
+       * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
+       (emit_group_store): Use MEM_SET_IN_STRUCT_P.
+       (copy_blkmode_from_reg): Likewise.
+       (store_field): Likewise.
+       (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
+       heuristically.  Use MEM_SET_IN_STRUCT_P.
+       (get_memory_rtx): Likewise.
+       * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
+       * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
+       MEM_ALIAS_SET on newly returned MEMs.
+       (assign_temp): Use MEM_SET_IN_STRUCT_P.
+       (put_reg_into_stack): Likewise.
+       (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
+       (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
+       (assign_parms): Likewise.
+       (expand_function): Likewise.
+       * integrate.c (expand_inline_function): Likewise.
+       (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
+       * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
+       * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
+       * print-rtl.c (print_rtx): Print /f for frame_related.
+       * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
+       * reload1.c (reload): Copy MEM_SCALAR_P as well.
+       * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
+       (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
+       * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
+       (output_constant_def): Likewise.
+       * a29k.c (a29k_set_memflags_1): Take scalar_p.
+       Set MEM_SCALAR_P.
+       (a29k_set_memflags): Use it.
+       * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
+       * c4x.c (c4x_scan_for_ld): Likewise.
+       * h8300.c (fix_bit_operand): Likewise.
+       * m88k.c (legitimize_address): Likewise.
+       (block_move_loop): Likewise.
+       (block_move_no_loop): Likewise.
+       (block_move_sequence): Likewise.
+       (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
+       * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
+       * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
+       * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
+       * arm.h (arm_gen_load_multiple): Take scalar_p.
+       (arm_store_load_multiple): Likewise.
+       * arm.c (arm_gen_load_multiple): Likewise.
+       (arm_gen_store_multiple): Likewise.
+       (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
+       
+Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
+       calls within a libcall block to indicate no throws are possible.
+       * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
+       libcall blocks. Don't add edges to exception handlers if we see 
+       a REG_EH_REGION note with a value of 0.
+       (make_edges): Override active_eh_region vector if the call has a note
+       indicating the call does not throw.
+
+1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
+
+       * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
+
 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
 
        * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.