]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/ChangeLog
Fix linux kernel -foptimize-sibling-calls miscompilation
[gcc.git] / gcc / ChangeLog
index e5dc3202be8158a486a27237c673aedc6f7abacc..9dcb55d7ce7045cb0da3ad31a9ee467b9bb3c7b5 100644 (file)
+2001-04-13  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
+       (first_instruction): New static variable.
+       (rtx_needs_barrier): Return 1 for alloc.
+       (init_insn_group_barriers): Set first_instruction.
+       (rws_sum): Delete duplicate definition.
+       (group_barrier_needed_p): Return 0 when first_instruction true.
+       (safe_group_barrier_needed_p): Save and restore first_instruction
+       around group_barrier_needed_p call.
+
+Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
+
+       * expr.h (enum libfunc_index): Add LTI_memmove.
+       (memmove_libfunc): Define macro.
+       * optabs.c (init_optabs): Initialize memmove_libfunc.
+       * expr.c (expand_assignment): Use memmove_libfunc instead of
+       memcpy_libfunc.
+
+2001-04-13  Alan Modra  <alan@linuxcare.com.au>
+
+        * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
+        fp mode addresses.
+
+2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (reg-stack.o): Depend on reload.h.
+       (insn-attrtab.o): Depend on flags.h.
+
+       * genattrtab (main): Include flags.h in insn-attrtab.c.
+
+       * reg-stack.c: Include reload.h.
+
+       * sparc.h (flag_pic): Delete redundant declaration.
+
+       * output.h (flag_pic): Likewise.
+
+       * tree.h (pedantic): Likewise.
+
+2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
+
+       * jump.c, regmove.c, toplev.c: Include reload.h.
+
+       * reload.h (reload_cse_regs): Declare.
+
+       * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
+       reload_cse_regs, init_reload, mark_home_live, reload,
+       init_caller_save): Delete redundant prototypes.
+
+2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
+
+       * regclass.c, ssa.c: Include expr.h.
+
+       * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
+       gen_move_insn): Delete redundant declarations.
+
+2001-04-13  Alan Modra  <amodra@one.net.au>
+
+       * pa.c (hppa_init_pic_save): Set rtx_unchanging for
+       PIC_OFFSET_TABLE_SAVE_RTX.
+       (zdepi_cint_p): Describe zdepi insn.
+       Formatting and white space fixes throughout file.
+
+       * pa.c (uint32_operand): Don't use long constant >= 2^32.
+       (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
+       about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
+       (compute_movstrsi_length): Make `align' unsigned to avoid warning.
+       (output_64bit_and): Use plain `int's for shift counts.
+       (output_64bit_ior): Likewise.
+       (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
+       * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
+       `N', and simplify.
+
+       * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
+       * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
+       * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
+       NEW_HP_ASSEMBLER into one.  Kill warnings.
+
+       * pa-gas.h: Delete file.
+       * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
+       Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
+       hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
+       instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
+
+       * config/pa/mill32.S: New file.
+       * config/pa/mill64.S: New file.
+       * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
+       LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
+       * config/pa/t-linux64: New file.
+       * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
+       (LIB1ASMFUNCS, LIB1ASMSRC): Define.
+       (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
+
+       * elfos.h (SELECT_SECTION): Undef before defining.
+       * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
+       (LIB_SPEC): Remove -lmilli.
+       (DBX_REGISTER_NUMBER): Remove.
+       (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
+       (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
+       NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
+       DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
+       DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
+       ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
+       ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
+       TARGET_GAS): Define.
+       * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
+       (function_arg): If TARGET_ELF32, pass fp args in both general and fp
+       regs if we don't have a prototype.
+       * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
+       * pa.h (TARGET_ELF32): Default to 0 if undefined.
+       (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
+       EH_RETURN_HANDLER_RTX): Define.
+       * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
+       (DWARF_FRAME_REGNUM): Define.
+       * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
+       * pa32-linux.h: New file.
+       * pa64-linux.h: New file.
+
+       * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
+       (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
+       (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
+       NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
+       DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
+       DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
+       CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
+       FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
+       READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
+       DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
+       UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
+       ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
+       TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
+       * pa64-hpux.h: New file.
+       (ASM_FILE_START): Correct typo.
+       (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
+       * config.gcc: Modify for above.
+
+Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
+
+       * jump.c (jump_optimize_1): Don't delete dead stores here.
+       * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
+       prior to running jump optimize before cse2.
+
+2001-04-12  Stan Shebs  <shebs@apple.com>
+
+       * objc/objc-act.c: Remove all code ifdefed with the never-used
+       macro OBJC_INT_SELECTORS.
+       * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
+       * tm.texi: Remove doc for OBJC_INT_SELECTORS.
+
+Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
+
+       * config/pa/quadlib.c: Add prototypes.
+
+2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * bitmap.h (debug_bitmap): Delete redundant prototype.
+
+       * rtl.h (get_frame_size): Likewise.
+
+2001-04-12  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
+       to just emit an fnorm.
+
+2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.h (truthvalue_conversion, type_for_mode,
+       type_for_size): Delete redundant declarations.
+
+       * c-lex.h (is_class_name): Likewise.
+
+       * c-tree.h (pedantic, convert, getdecls, gettags,
+       global_bindings_p, init_decl_processing, insert_block,
+       maybe_build_cleanup, poplevel, print_lang_decl,
+       print_lang_identifier, print_lang_type, pushdecl, pushlevel,
+       set_block, incomplete_type_error, build_function_call,
+       lvalue_or_else, mark_addressable): Likewise.
+
+       * expr.h (expand_tree_builtin): Likewise.
+
+2001-04-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * invoke.texi: Document --param max-gcse-memory.
+
+2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.in (errno): Check for declaration.
+       * configure, config.in: Regenerated.
+
+       * system.h (errno): Only declare if not already done.
+
+2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * recog.c (general_operand, immediate_operand,
+       nonmemory_operand): Require CONST_INTs to be sign-extended
+       values for their modes.
+
+2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * expmed.c (store_bit_field): Truncate CONST_INTs.
+       (expand_mult_highpart, expand_divmod): Likewise.
+       * expr.c (convert_modes, store_field): Likewise.
+       * integrate.c (expand_inline_function): Use promote_mode() to
+       determine whether to convert_modes() an argument as signed
+       or unsigned.
+       * optabs.c (expand_binop): Get CONST_INT operands
+       sign-extended for their appropriate modes.
+       * stmt.c (emit_case_nodes): Convert node values to the
+       appropriate mode.
+       (expand_end_case): Convert minval and range to the appropriate
+       mode.
+       * unroll.c (loop_iterations): Truncate abs_diff to the mode of
+       the iteration variable.
+       * varasm.c (immed_double_const): Don't require words to be
+       narrower than host wide ints to properly sign-extend
+       CONST_INTs.
+
+2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sh.md (builtin_setjmp_receiver): New expander.
+
+2001-04-12  David Edelsohn  <dje@watson.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_move): Do not
+       special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
+       for generating CONST_INT and CONST_DOUBLE.
+
+2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
+       already sign-extended.
+       (rs6000_emit_prologue): Make register iterator signed.
+       (rs6000_emit_epilogue): Likewise.
+       * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
+       and low.
+       (movsf split, movdf split): Sign-extend CONST_INTs.
+       (movdi splits): Likewise.
+
+2001-04-12  Kelley Cook <kelley.cook@home.com>
+
+       * config-lang.in (lang_dirs): Add in zlib.
+
+2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
+       operands that make it to RTL.
+
+2001-04-11  Stan Shebs  <shebs@apple.com>
+
+       Add Darwin (Mac OS X kernel) native support.
+       * config.gcc (powerpc-*-darwin*): Add native bits.
+       * config/darwin.c: New file, generic Darwin support functions.
+       * config/darwin.h: New file, generic Darwin definitions.
+       * config/darwin-protos.h: New file, generic Darwin prototypes.
+       * rs6000/darwin.h: New file, Darwin for PowerPC.
+       * rs6000/t-darwin: New file, Darwin makefile fragment.
+       * rs6000/rs6000.h (OBJECT_MACHO): New macro.
+       (TARGET_MACHO): Ditto.
+       (rs6000_abi): Add ABI_DARWIN.
+       (RS6000_REG_SAVE): Add ABI_DARWIN case.
+       (RS6000_SAVE_AREA): Ditto.
+       (FP_ARG_MAX_REG): Ditto.
+       (RETURN_ADDRESS_OFFSET): Ditto.
+       * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
+       cases.
+       (rs6000_emit_move): Add ABI_DARWIN cases.
+       (print_operand): Ditto.
+       (first_reg_to_save): Ditto.
+       (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
+       (debug_stack_info): Ditto.
+       (rs6000_emit_prologue): Ditto.
+       (rs6000_emit_epilogue): Ditto.
+       (output_profiler_hook): Ditto.
+       (output_function_profiler): Ditto.
+       (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
+       (output_mi_thunk): Add TARGET_MACHO case.
+       (add_compiler_stub): Ditto.
+       (output_compiler_stub): Ditto.
+       (no_previous_def): Ditto.
+       (output_call): Ditto.
+       (machopic_output_stub): Ditto.
+       (rs6000_machopic_legitimize_pic_address): Ditto.
+       (toc_section): Ditto.
+       * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
+       (macho_high): Ditto.
+       (macho_low): Ditto.
+       (movsi_low): Ditto.
+       (load_macho_picbase): Ditto.
+       (call): Add TARGET_MACHO case to modify function.
+       (call_value): Ditto.
+       (call_nonlocal_sysv): Add ABI_DARWIN case.
+       (call_value_nonlocal_sysv): Ditto.
+       * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
+       Add prototype.
+       (machopic_output_stub): Ditto.
+       * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
+
+2001-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+       * dwarf2out.c (modified_type_die): Don't create new types here.
+       * tree.h (get_qualified_type): New function.
+       (build_qualified_type): Adjust comment.
+       * tree.c (get_qualified_type): New function.
+       (build_qualified_type): Use it.
+
+2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cpp.texi (-Wtraditional): Update description.
+
+       * invoke.texi (-Wtraditional): Likewise.
+
+2001-04-11  Jim Wilson  <wilson@redhat.com>
+
+       * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
+       requires more than 64 bits of alignment.
+
+2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplib.c (do_line): Sanity check iff enable checking.
+
+2001-04-11  Richard Henderson  <rth@redhat.com>
+
+       * Makefile.in (insn-recog.o): Depend on toplev.h.
+       (insn-emit.o, doloop.o): Likewise.
+       * genrecog.c, genemit.c: Include toplev.h in generated file.
+       * doloop.c: Include toplev.h.
+
+2001-04-11  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (gcse.o): Depend on params.h.
+       * gcse.c: Include params.h.
+       (gcse_main): Don't do GCSE if doing so will take inordinate
+       amounts of memory.
+       * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
+       * params.h (MAX_GCSE_MEMORY): New macro.
+
+2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (insn-output.o): Depend on $(EXPR_H).
+
+       * genoutput.c (output_prologue): Include expr.h in insn-output.c.
+
+2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
+
+       * real.h (ereal_atof, real_value_truncate, target_isnan,
+       target_isinf, target_negative, assemble_real, debug_real): Delete
+       redundant prototypes.
+
+       * Makefile.in (ifcvt.o): Depend on toplev.h.
+
+       * c-semantics.c: Include expr.h.
+
+       * ifcvt.c: Include toplev.h.
+
+       * expr.h (rtx_equal_p): Delete prototype.
+
+       * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
+       protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
+       eliminate_constant_term, expand_complex_abs, find_single_use,
+       make_tree, init_expr_once, init_optabs, supports_one_only):
+       Likewise.
+       
+       * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
+       rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
+       expand_assignment, store_expr, emit_line_note_after,
+       emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
+       
+       * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
+
+       * sparc-protos.h: Delete redundant prototypes.
+
+2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
+
+       * reload.c (push_reload): Add condition missed in SUBREG byte
+       offset patch.
+
+Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
+
+Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (floatsisf_sse): Fix output template
+       * i386.c (ix86_expand_fp_movcc)
+
+       * reg-stack.c (emit_pop_insn): Handle complex modes.
+       (move_for_stack_reg): Emit proper move mode.
+       (subst_stack_regs_pat): Handle complex modes.
+
+2001-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
+
+2001-04-10  Richard Henderson  <rth@redhat.com>
+
+       * libgcc2.h (__terminate_func_ptr): Remove typedef.
+       (__pure_virtual, __terminate, __terminate_set_func,
+       __default_terminate, __throw_type_match, __empty,
+       __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
+       __eh_rtime_match, __unwinding_cleanup, __rethrow,
+       __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
+       Remove prototypes of deleted functions.
+
+2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-typeck.c (convert_arguments): -Wtraditional now activates
+       -Wconversion warnings, except for changes in signed-ness.
+       Detect complex<->int & int<->complex conversions as well.
+
+       * invoke.texi (-Wtraditional): Document it.
+
+Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
+       * flow.c (set_block_for_new_insns): Remove needless cast and
+       properly check for unset block number.
+
+2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
+
+       * function.c (purge_single_hard_subreg_set): Only check REGNO if 
+       the subreg was a hard register. Pseudos are left as subregs.
+
+2001-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
+       (LIB2ADD_ST): New macro, pass it to mklibgcc.
+       * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
+        (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
+       * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
+
+2001-04-09  Bo Thorsen  <bo@suse.co.uk>
+
+       * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
+
+2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
+
+       * output.h (set_block_num): Missed it earlier, remove deprecated 
+       prototype.
+
+2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
+
+       * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
+       (load_killed_in_block_p): Change bb parameter from int to basic_block.
+       (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
+       (handle_rd_kill_set): Change bb parameter from int to basic_block.
+       (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
+       (expr_killed_p): Change bb parameter from int to basic_block, pass 
+       basic_blocks instead of ints as parameters.
+       (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
+       (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter 
+       from int to basic_block, pass basic_blocks instead of ints as parms.
+       (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb 
+       parameter from int to basic_block, pass basic_blocks instead of ints.
+       (process_insert_insn): Pass basic_blocks instead of ints as parameters.
+       (insert_insn_end_bb): Change bb parameter from int to basic_block, 
+       pass basic_blocks instead of ints.
+       (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass 
+       basic_blocks instead of ints as parameters.
+       (pre_delete): Pass basic_blocks instead of ints as parameters.
+       (hoist_expr_reaches_here_p): Change bb parameter from int to 
+       basic_block, pass basic_blocks instead of ints.
+       (hoist_code): Pass basic_blocks instead of ints as parameters.
+       (reg_set_info, store_ops_ok, store_killed_after, store_killed_before): 
+       Change bb parameter from int to basic_block.
+       (build_store_vectors): Pass basic_blocks instead of ints as parameters.
+       (insert_insn_start_bb): Change bb parameter from int to basic_block, 
+       pass basic_blocks instead of ints.
+       (insert_store): Pass basic_blocks instead of ints as parameters.
+       (replace_store_insn, delete_store): Change bb parameter from int to 
+       basic_block, pass basic_blocks instead of ints.
+       (store_motion): Pass basic_blocks instead of ints as parameters.
+
+2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
+
+       * basic-block.h (set_new_block_for_insns): New Prototype.
+       (set_block_num): Delete prototype.
+       * flow.c (set_block_num): Remove obsolete function.
+       (set_block_for_new_insns): Set BB for single or multiple insns.
+       * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
+       (process_insn_end_bb): Use set_block_for_new_insns or 
+       set_block_for_insn instead of set_block_num.
+       (pre_insert_copy_insn): Use set_block_for_new_insns.
+       (update_ld_motion_stores): Use set_block_for_new_insns.
+       (insert_insn_start_bb): Use set_block_for_new_insns.
+       (replace_store_insn): Use set_block_for_new_insns.
+
+2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
+           Jeff Law  <law@redhat.com>
+
+       * alias.c (get_addr): Externalize.
+       (canon_true_dependence): New function. Behaves like true_dependance
+       except it already assumes a MEM has been canonicalized.
+       * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
+       * gcse.c (struct ls_expr): Add load/store expressions structure.
+       (modify_mem_list, canon_modify_mem_list): New variable.
+       (gcse_main): Initialize & finalize alias analysis. Use enhanced 
+       load motion and store motion if requested.
+       (alloc_gcse_mem): Allocate space for modify_mem_list array.
+       (free_gcse_mem): Free the modify_mem_list array.
+       (oprs_unchanged_p): Use load_killed_in_block_p.
+       (gcse_mems_conflict_p, gcse_mem_operand): New variables.
+       (mems_conflict_for_gcse_p): New function.  Don't kill loads 
+       with stores to themselves if its in the load/store expression list.
+       (load_killed_in_block_p): New function.
+       (canon_list_insert): New Function.
+       (record_last_mem_set_info): Keep a list of all instructions which
+       can modify memory for each basic block.
+       (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
+       (oprs_not_set_p): Use load_killed_in_block_p.
+       (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
+       (expr_killed_p): Use load_killed_in_block_p.
+       (compute_transp): Do not pessimize memory references.
+       (pre_edge_insert): Update stores for a load motion expression.
+       (one_pre_gcse_pass): Check loads/stores for extra load motion.
+       (ldst_entry): Find or create a ldst_expr structure.
+       (free_ldst_entry): Free memory for an individual item.
+       (free_ldst_mems): Free entire load/store expression list.
+       (print_ldst_list): Print debug info.
+       (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
+       (enumerate_ldsts): Assign integer values to each entry in list.
+       (first_ls_expr): First expression in the list.
+       (next_ls_expr): Next expression in the list.
+       (simple_mem): Check if expression qualifies for ld/st expression list.
+       (invalidate_any_buried_refs): Remove from expression list if its
+       used in some other way we dont understand.
+       (compute_ld_motion_mems): Find all potential enhanced load motion
+       expression.
+       (trim_ld_motion_mems): Remove any expressions which are invalid.
+       (update_ld_motion_stores): Copy store values to registers for loads
+       which have been moved.
+       (regvec, st_antloc, num_store): New global statics.
+       (reg_set_info): Marks registers as set.
+       (store_ops_ok): Verfies registers expressions are valid in a block.
+       (find_moveable_store): Look for moveable stores in a pattern.
+       (compute_store_table): Find stores in a function worth moving, maybe.
+       (load_kills_store): Check dependance of a load and store.
+       (find_loads): Find any loads in a pattern.
+       (store_killed_in_insn): Check if a store is killed in an insn.
+       (store_killed_after): Check is store killed after an insn in a block.
+       (store_killed_before): Check is store killed before an insn in a block.
+       (build_store_vectors): Generate the antic and avail vectors.
+       (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
+       (insert_store): Add a store to an edge.
+       (replace_store_insn): Replace a store with a SET insn.
+       (delete_store): Delete a store insn.
+       (free_store_memory): Free memory.
+       (store_motion): Perform store motion.
+       * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
+       * rtl.h (get_addr, canon_true_dependence): Add prototypes.
+       * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
+       (f_options): Add gcse-lm and gcse-sm.
+
+Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (expand_fp_movcc): Fix condition reversal code.
+
+       * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
+       * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
+       (CLASS_MAX_NREGS): Use it.
+
+       * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
+       handle properly complex values.
+       (CLASS_MAX_NREGS): Likewise; update comment.
+
+2001-04-05  Bernd Schmidt  <bernds@redhat.com>
+
+       * ia64.c (ia64_flag_schedule_insns2): New variable.
+       (ia64_override_options): Initialize it.  Clear
+       flag_schedule_insns_after_reload.
+       (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
+
+Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
+       Do not require source to match destination anymore;
+       Add abort to the nontrivial cases that should be handled by split.
+       (fix_trunc?fdi): Add SSE case for x86_64.
+       (floatdi?f): Likewise.
+       (floatdi?f_sse): New.
+       (fix_trunc?fdi_sse): New.
+
+2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
+
+       * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
+       (DEBUG_ARANGES_END_LABEL): Ditto.
+       (dwarfout_init): Generate length and version fields at the start
+       of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
+       after the length field.
+       (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
+       the .debug_aranges info.
+
+Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (call, call_value): Make sure that resulting call_insn
+       does have proper second operand.
+
+Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
+       function.  Remove include of sys/cygwin.h.
+
+Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
+
+       * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
+       (CPP_SPEC): Always search */include/w32api for header files.
+       (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
+       (LINK_SPEC): Add "cyg" to the library search prefixes.
+
+2001-04-08  Philip Blundell  <philb@gnu.org>
+
+       * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
+
+2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpperror.c (print_location): Don't special case <stdin>.
+       (_cpp_begin_message): Handle WARNING_SYSHDR the same as
+       WARNING, but we don't check if we're in system headers.
+       * cpplib.h (enum error_type): WARNING_SYSHDR: New.
+       * cpplib.c (do_warning): Warn in system headers.
+
+2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
+
+       * mbchar.c: Include config.h first.
+
+2001-04-07  Zack Weinberg  <zackw@stanford.edu>
+
+       * config.gcc: Set default for xmake_file at top, not bottom.
+       Change places that set xmake_file to "none" to set to the
+       empty string instead, or remove them entirely if there is no
+       default xmake_file for this cpu_type.  Remove references to
+       deleted files.
+
+       * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
+       config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
+       config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
+       config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
+       config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
+       config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
+       config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
+       config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
+       config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
+       config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
+       Delete.
+
+       * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
+       config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
+       config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
+       config/mips/x-sysv, config/rs6000/x-aix31:
+       Just set CLIB to -lld or -lmld, as appropriate.
+
+       * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
+       config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
+       config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
+       config/mips/x-iris, config/pa/x-pa:
+       Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
+       OTHER_FIXINCLUDES_DIRS.
+
+       * config/i386/x-djgpp: Don't set LN or LN_S.
+       * config/m88k/x-dolph: Don't define __m88k__.
+       * config/m88k/x-tekXD88: Don't set AR_FLAGS.
+       * config/pa/x-pa-mpeix: Just set up quadlib.asm.
+       * config/i860/fx2800.h: No need to #undef SVR4.
+
+       38 x-host fragments remain, 2 x-cpu.
+
+2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
+
+2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
+
+2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * configure.in: Add check for lstat.
+       * configure, config.in: Regenerate.
+       * cppinit.c (append_include_chain): Make empty path ".".
+       * cpplib.c (do_line): Don't simplify #line paths.
+       * cppfiles.c (remove_component_p): New function.
+       (find_or_create_entry): Acknowledge stat () errors during
+       path simplification.
+       (handle_missing_header): Don't simplify paths.
+       (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
+       the empty path untouched.  Don't leave a trailing '/'.
+
+2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
+       * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
+
+2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * cppfiles.c (open_file): Fail directories silently, but
+       with an errno of NOENT set.
+       (read_include_file): Move the common exit code to the sole
+       caller.  Return an int indicating success or failure.  Let
+       open_file handle directories.
+       (stack_include_file): If read_include_file fails,
+       push a "null" buffer.
+
+2001-04-05  DJ Delorie  <dj@redhat.com>
+
+       * function.h (virtuals_instantiated): Declare.
+       * function.c: (virtuals_instantiated): Make global.
+       * calls.c (emit_library_call_value_1): Use
+       virtual_outgoing_args_rtx only if it hasn't been instantiated.
+       Otherwise, use the stack pointer directly.
+
+Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (x86_initialize_trampoline): New global function.
+       * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
+       (INITIALIZE_TRAMPOLINE): Move offline.
+       * i386-protos.h (x86_initialize_trampoline): Declare.
+
+Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
+       (lea_0): Rename to lea_1.
+       (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
+       (lea_general_?): Allow SImodes on TARGET_64BIT
+       (lea_general_?_zext): New patterns.
+       (call_1, call_1_rex64): Fix.
+
+Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
+
+Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (function_arg): Return constm1_rtx for last argument.
+       (ix86_expand_prologue): Update gen_call calls.
+       * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
+       * i386.md (call_pop): Likewise.
+       (call): Second operand is VOIDmode.
+       (call_0): Likewise; Support 64bits.
+       (call_exp): New expander.
+       (call_1): Get to the sync.
+       (call_1_exp): New pattern.
+       (call_value): Support 64bit.
+       (call_value_exp): New pattern.
+       (untyped_call): Update gen_call call.
+       (call_value_pop): Disable for 64bit.
+       (call_value_0_rex64): New pattern.
+       (call_value_1_rex64): Likewise.
+
+2001-04-05  Bo Thorsen  <bo@suse.de>
+
+       * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
+
+Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
+
+       * i386.md (*andsi_1+3): If used after reload, make sure the operand
+       satisfies ANY_QI_REG_P.
+
+2001-04-05  Bernd Schmidt  <bernds@redhat.com>
+
+       * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
+       ASM_OPERAND.
+
+       * sched-deps.c (sched_analyze_insn): Revert more of the March 27
+       change.
+
+2001-04-04  Zack Weinberg  <zackw@stanford.edu>
+
+       * config.gcc: Remove default for xm_file.  Clean up local
+       machine type handling.  Remove settings of xm_file to
+       something that doesn't exist.  In the big switch, set xm_file,
+       don't append to it (the value before the big switch is always
+       null).  Don't force build_xm_file or host_xm_file to have a value.
+       * configure.in: Remove default for xm_file.  Do not special
+       case $cpu/xm-$cpu.h not existing.
+       * configure: Regenerate.
+
+2001-04-04  Diego Novillo  <dnovillo@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Check for overflow
+       when folding integer division and modulo operations.
+
+2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
+
+       * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
+       instead of DWARF2_ADDR_SIZE for EH addresses.
+       (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
+       EH addresses.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
+       * config/ia64/t-glibc (LIB2ADDEH): Disable.
+       * config/ia64/t-ia64 (LIB2ADDEH): Disable.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
+       * configure: Rebuilt.
+
+2001-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
+       push insns to delete to it instead of deleting them.
+       (delete_null_pointer_checks): Delete insns from delete_list after
+       all delete_null_pointer_checks_1 passes are done.
+
+2001-04-04  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
+       * configure: Rebuilt.
+
+2001-04-04  Zack Weinberg  <zackw@stanford.edu>
+
+       * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
+       * config/romp/xm-romp.h: Delete.
+
+2001-04-04  Bernd Schmidt  <bernds@redhat.com>
+
+       * sched-deps.c (sched_analyze_insn): Partially revert March 27
+       change.
+
+2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+       * emit-rtl.c (mark_label_nuses) Increment the label uses for
+       all labels present in rtx.
+       (try_split) Call new function for all split insns.
+
+2001-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * recog.c (validate_replace_rtx_1): Instead of aborting just make
+       sure the change won't be validated.
+
+Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
+
+       * rtl.h (set_noop_p): Declare.
+       * flow.c (set_noop_p): Move from here ...
+       * rtlanal.c (set_noop_p): ... to here and enhance.
+       * cse.c (delete_trivially_dead_insns): Use it.
+       * gcse.c (hash_scan_set): Likewise.
+       * jump.c (delete_noop_moves): Likewise.
+       * recog.c (split_all_insns): Likewise.
+
+2001-04-04  Alan Modra  <alan@linuxcare.com.au>
+
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
+       stack pointer via a LO_SUM.  Ditto for setting a temp register
+       used to save to the stack.  Set cfa_temp when setting fp, and
+       allow matches to cfa_temp in addition to cfa_store when saving
+       regs.  Handle POST_INC and LO_SUM register stores.  Document the
+       changes and errors in rule 12 doco.
+
+       * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
+       (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
+       (load_reg): Move closer to epilogue code.
+       (DO_FRAME_NOTES): Define to control the following..
+       (FRP): Define to set RTX_FRAME_RELATED_P on insns.
+       (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
+       notes as necessary.
+       (hppa_expand_epilogue): Likewise.
+
+2001-04-03  Richard Henderson  <rth@redhat.com>
+
+       * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
+       * configure: Rebuild.
+
+2001-04-03  Richard Henderson  <rth@redhat.com>
+
+       * rtl.h (LCT_THROW): New.
+       * calls.c (emit_library_call_value_1): Handle it.
+       * except.c (connect_post_landing_pads): Use it.
+
+2001-04-03  Zack Weinberg  <zackw@stanford.edu>
+
+       * gansidecl.h: Delete file.
+       * configure.in: Change all refs to gansidecl.h to use
+       ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
+       lives.
+       * configure: Regenerate.
+
+       * Makefile.in (intl.o): Don't depend on gansidecl.h.
+       * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
+       * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
+       Don't include gansidecl.h.
+       * intl.c, main.c, version.c, fixinc/fixlib.h,
+       fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
+       gansidecl.h.
+
+Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_force_to_memory, ix86_free_from_memory):
+       Update for 64bit.
+
+2001-04-03  Zack Weinberg  <zackw@stanford.edu>
+
+       * config/i386/xm-beos.h, config/i386/xm-isc.h,
+       config/i386/xm-next.h, config/i386/xm-sco.h,
+       config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
+       config/m88k/xm-m88k.h: Delete.
+
+       * config/i386/xm-djgpp.h: Don't define __MSDOS__.
+       * config/romp/xm-romp.h: Don't define bcopy.
+       * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
+       HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
+
+       * config.gcc: Remove references to deleted files.
+
+       14 xm-host.h remain, 1 xm-cpu.h.
+
+2001-04-03  Jakub Jelinek  <jakub@redhat.com>
+           David S. Miller  <davem@pierdol.cobaltmicro.com>
+           Andrew MacLeod  <amacleod@redhat.com>
+
+       Use byte offsets in SUBREGs instead of words.
+
+       * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
+       * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
+       to pass new argument.
+       (add_stored_regs): Use subreg_regno_offset function.
+       * calls.c (expand_call): For non-paradoxical SUBREG take endianess
+       into account.
+       (precompute_arguments): Use gen_lowpart_SUBREG.
+       * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
+       (combine_simplify_rtx): Rework to use SUBREG_BYTE.
+       (simplify_set): Rework to use SUBREG_BYTE.
+       (expand_field_assignment): Use SUBREG_BYTE.
+       (make_extraction): Use SUBREG_BYTE.
+       (if_then_else_cond): Use SUBREG_BYTE.
+       (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
+       (gen_lowpart_for_combine): Compute full byte offset.
+       * cse.c (mention_regs): Use SUBREG_BYTE.
+       (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
+       (canon_hash): Use SUBREG_BYTE.
+       (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
+       (gen_lowpart_if_possible): Formatting.
+       * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
+       correctly.
+       * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
+       (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
+       (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
+       * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
+       certain invariants about SUBREGs the compiler creates.
+       (gen_lowpart_SUBREG): New function.
+       (subreg_hard_regno): New function to get the final register number.
+       (gen_lowpart_common): Use SUBREG_BYTE.
+       (gen_imagpart): Spacing nits.
+       (subreg_realpart_p): Use SUBREG_BYTE.
+       (gen_highpart): Use SUBREG_BYTE.
+       (subreg_lowpart_p): Always compute endian corrected goal offset,
+       even at the byte level, then compare against that.
+       (constant_subword): New function, pulled out all constant cases
+       from operand_subword and changed second argument name to offset.
+       (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
+       and call constant_subword to do the work.  Return const0_rtx if
+       looking for a word outside of OP.
+       (operand_subword_force): Change second arg name to offset.
+       * expmed.c (store_bit_field): Use SUBREG_BYTE.
+       (store_split_bit_field): Use SUBREG_BYTE.
+       (extract_bit_field): Use SUBREG_BYTE.
+       (extract_split_bit_field): Use SUBREG_BYTE.
+       (expand_shift): Use SUBREG_BYTE.
+       * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
+       * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
+       * flow.c (set_noop_p): Use SUBREG_BYTE.
+       (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
+       * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
+       (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
+       correction code.
+       (optimize_bit_field): Use SUBREG_BYTE.
+       (purge_addressof_1): Use SUBREG_BYTE.
+       (purge_single_hard_subreg_set): Use subreg_regno_offset function.
+       (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
+       actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
+       * gengenrtl.c (special_rtx): Add SUBREG.
+       * global.c (mark_reg_store): Use SUBREG_BYTE.
+       (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
+       * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
+       * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
+       final byte offset is congruent to subreg's mode size.
+       (subst_constants): Use SUBREG_BYTE.
+       (mark_stores): Use subreg_regno_offset function.
+       * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
+       function and SUBREG_BYTE.
+       * local-alloc.c (combine_regs): Use subreg_regno_offset function.
+       (reg_is_born): Use subreg_hard_regno.
+       * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
+       endian correction code.  Don't combine subregs unless resulting
+       offset aligns with type.  Fix subreg constant extraction for DImode.
+       Simplify SUBREG of VOIDmode CONST_DOUBLE.
+       (general_operand): Remove dead mode_altering_drug code.
+       (indirect_operand): Use SUBREG_BYTE.
+       (constrain_operands): Use subreg_regno_offset function.
+       * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
+       * regmove.c (regmove_optimize): Use SUBREG_BYTE.
+       (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
+       * regs.h (REG_SIZE): Allow target to override.
+       (REGMODE_NATURAL_SIZE): New macro which target can override.
+       * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
+       on the entire subreg rtx.
+       (push_reload): Use SUBREG_BYTE in comments and code.
+       (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
+       for hard registers inside subregs.
+       (operands_match_p): Use subreg_regno_offset.
+       (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
+       containing hard regs.
+       (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
+       corrections when fixing up MEM subregs.
+       (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
+       subreg_regno_offset where appropriate.
+       (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
+       byte endian corrections when fixing up MEM subregs.
+       (subst_reloads): When combining two subregs, make sure final
+       offset is congruent to subreg's mode size.
+       (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
+       (refers_to_regno_for_reload_p): Use subreg_regno.
+       (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
+       * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
+       correction code for memory subreg fixups.
+       (forget_old_reload_1): Use subreg_regno_offset.
+       (choose_reload_regs): Use subreg_regno.
+       (emit_input_reload_insns): Use SUBREG_BYTE.
+       (reload_combine_note_store): Use subreg_regno_offset.
+       (move2add_note_store): Use subreg_regno_offset.
+       * resource.c (update_live_status, mark_referenced_resources): Use
+       subreg_regno function.
+       (mark_set_resources): Use subreg_regno function.
+       * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
+       (subreg_regno_offset, subreg_regno): Define prototypes.
+       (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
+       (gen_lowpart_SUBREG): Add prototype.
+       * rtl.texi (subreg): Update to reflect new byte offset representation.
+       Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
+       * rtlanal.c (refers_to_regno_p): Use subreg_regno.
+       (reg_overlap_mentioned_p): Use subreg_regno.
+       (replace_regs); Make sure final offset of combined subreg is
+       congruent to size of subreg's mode.
+       (subreg_regno_offset): New function.
+       (subreg_regno): New function.
+       * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
+       * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
+       * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
+       * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
+       (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
+       * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
+       (a29k_get_reloaded_address): Use SUBREG_BYTE.
+       (print_operand): Use SUBREG_BYTE.
+       * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
+       * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
+       (arm_reload_out_hi): Use SUBREG_BYTE.
+       * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
+       instead of SUBREG_WORD.
+       (d30v_print_operand_memory_reference): Use subreg_regno_offset.
+       * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
+       SUBREG creation to use byte offset.
+       * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
+       inverted load insns): Fix explicit rtl subregs to use byte
+       offsets.
+       * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
+       udivsi3, umodsi3): Generate SUBREGs with byte offsets.
+       * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
+       * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
+       to use byte offsets.
+       (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
+       * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
+       offsets, also make sure it is congruent to SUBREG's mode size.
+       (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
+       unnamed ldob insn): Generate SUBREGs with byte offset.
+       (zero_extendqihi2): SUBREG's are byte offsets.
+       * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
+       (m68hc11_gen_highpart): Use SUBREG_BYTE.
+       * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
+       zero-extendqisi2): Generate SUBREGs with byte offset.
+       (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
+       subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
+       subregs in rtl to use byte offsets.
+       * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
+       * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
+       (mips_move_2words): Use subreg_regno_offset.
+       (mips_secondary_reload_class): Use subreg_regno_offset.
+       * config/mips/mips.md (DImode plus, minus, move, and logical op
+       splits): Fixup explicit subregs in rtl to use byte offsets.
+       * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
+       * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
+       * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
+       rtl to use byte offsets.
+       * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
+       * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
+       subregs to use byte offsets.
+       * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
+       Fixup explicit subregs in rtl to use byte offsets.
+       * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
+       and remove byte endian correction code.
+       * config/sh/sh.c (output_movedouble): Use subreg_regno.
+       (gen_ashift_hi): Use SUBREG_BYTE.
+       (regs_used): Use subreg_regno_offset.
+       (machine_dependent_reorg): Use subreg_regno_offset.
+       * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
+       * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
+       (movdf_i4): Subregs are byte offsets now.
+       * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
+       * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
+       (REGMODE_NATURAL_SIZE): Override.
+       (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
+       * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
+       with byte offsets.
+       (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
+       extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
+       extendqidi2): Generate SUBREGs with byte offsets, also make sure
+       it is congruent to SUBREG's mode size.
+       (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
+       offsets.
+       (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
+       cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
+       lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
+       SUBREG_BYTE offset for non-paradoxical subregs in patterns.
+       * config/v850/v850.c (print_operand, output_move_double): Use
+       subreg_regno function.
+
+2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
+
+       * configure.in (target_subdir): Use target_alias, not target.
+       * configure: Rebuilt.
+
+       * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
+       other way round.
+       * config/sh/crti.asm: Fix typos in comments.
+
 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
 
        * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
@@ -144,7 +1278,7 @@ Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
        output template.
 
        * MAINTAINERS: Added self.
-       
+
 2001-03-28  Richard Henderson  <rth@redhat.com>
 
        * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
@@ -161,7 +1295,7 @@ Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * tradcif.y (yyerror): Likewise.  Add format specifier in call to
        `error'.
-       
+
        * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
 
 2001-03-28  DJ Delorie  <dj@redhat.com>
@@ -283,7 +1417,7 @@ Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
        (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
        * final.c (final): Don't call check_exception_handler_labels,
        init_insn_eh_region, or free_insn_eh_region.
-       (final_scan_insn): Always emit debug labels for 
+       (final_scan_insn): Always emit debug labels for
        NOTE_INSN_EH_REGION notes.
        * flags.h (flag_new_exceptions): Remove.
        * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
@@ -300,7 +1434,7 @@ Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
        (flow_delete_block): Use maybe_remove_eh_handler.
        (delete_eh_regions): Remove.
        (merge_blocks): Don't check for eh region match.
-       (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO, 
+       (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
        EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
        (init_propagate_block_info): Disable dead frame store optimization
        when current_function_calls_eh_return.
@@ -382,7 +1516,7 @@ Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
        jump.c, toplev.c:
        Rename asynchronous_exceptions to flag_non_call_exceptions.
 
-       * gthr-single.h (UNUSED): New.  Distinguish between how C 
+       * gthr-single.h (UNUSED): New.  Distinguish between how C
        and C++ mark unused function arguments.  Use throughout.
 
        * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
@@ -819,7 +1953,7 @@ Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        undefined symbol on many targets.
 
        * sdbout.c: #include ggc.h.
-       (sdbout_init): Move to end of file.
+       (sdbout_init): Move to end of file.
        Call ggc_add_tree_root for anonymous_types.
        (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
        (sdbout_one_type): Use DECL_NAME for field name.
This page took 0.05633 seconds and 5 git commands to generate.