X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=06984c612ab49a0ebc3bbcbb3e1e3e03c8c82d97;hb=9e644d8fbc8d4fd070c9c57d273938a2f6caf3b0;hp=4b5de1919db7375f1610f23c112272206e74f17d;hpb=503f28173e77c73a0d3f84f111ce89fa81e08c76;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b5de1919db..06984c612ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,960 @@ +2001-08-15 Jason Eckhardt + + * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t". + +Wed Aug 15 14:24:22 CEST 2001 Jan Hubicka + + * predict.c (struct block_info_def): Remove nvisited. + (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions. + (estimate_bb_frequencies): Call mark_dfs_back_edges. + + * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium + (ix86_adjust_cost): Teach scheduler that latency to load operand can + be masked. + +Wed Aug 15 12:41:32 CEST 2001 Jan Hubicka + + * predict.def: Update hitrates. + +2001-08-15 Richard Henderson + + * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT. + +Tue Aug 14 17:30:59 2001 Jeffrey A Law (law@cygnus.com) + + * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG + note from its associated jump. + +2001-08-14 Ulrich Weigand + + * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__ + also on 64-bit s390x targets. + +2001-08-14 Nick Clifton + + * config/arm/arm.c (arm_compute_initial_elimination_offset): New + function. + (arm_expand_prologue): Handled nested functions which take a + variable argument list. + * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace + macro with an invocation of + arm_compute_initial_elimination_offset. + * config/arm/arm-protos.h: Prototype + arm_compute_initial_elimination_offset. + +2001-08-14 Gerald Pfeifer + + * doc/install.texi (Specific, avr): Fix markup. + (Specific, c4x): Ditto. + +2001-08-14 Matt Kraai + + * predict.c (dump_prediction): Change `bool' parameter to `int'. + +2001-08-14 Gabriel Dos Reis + + * Makefile.in (OBJS): Add rtl-error.o + (rtl-error.o): New rule. + (diagnostic.o): Adjust dependency. + diagnostic.c (file_and_line_for_asm, diagnostic_for_asm, + error_for_asm, _fatal_insn, _fatal_insn_not_found, + warning_for_asm): Move to... + rtl-error.c: ...here. New file. + +2001-08-14 Richard Henderson + + * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame + if USING_SJLJ_EXCEPTIONS. + +2001-08-14 Steve Ellcey + + * tlink.c (scan_linker_output): Check string for unsatisfied in + addition to undefined and unresolved. + +2001-08-14 Graham Stott + + * libgcc2.c (*): Replace EH_FRAME_SECTION with + EH_FRAME_SECTION_NAME. + +Tue Aug 14 14:57:07 CEST 2001 Jan Hubicka + + * genattrtab.c (simplify_test_exp_in_temp): New function. + (simplify_test_exp): Avoid explicit use of temporary obstack. + (simplify_cond, insert_right_side, evaluate_eq_attr, + simplify_and_tree, simplify_or_tree, eliminate_known_true): + Use simplify_test_exp_in_temp. + (optimize_attrs): Iterate until expression stabilizes. + +2001-08-13 Ulrich Weigand : + + * glimits.h: Remove the __LONG_MAX__ special case for s390x. + * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES. + +2001-08-13 Richard Henderson + + * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove. + (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove. + * config/arm/conix-elf.h: Likewise. + +2001-08-13 Geoffrey Keating + + * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done + in gcc.c. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + + * gcse.c (hash_scan_set): Expressions that are set as part of + jump instructions are not available. + +2001-08-13 Ulrich Weigand + + * config/s390/s390.c (print_operand, s390_function_prologue, + s390_va_start): Fixed HOST_WIDE_INT type mismatch. + +2001-08-13 Richard Henderson + + * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New. + * defaults.h (EH_FRAME_SECTION_NAME): Respect it. + * doc/tm.texi (Exception Region Output): Document it. + +2001-08-13 Geoffrey Keating + + * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use + DWARF2 instead of stabs by default. + +2001-08-13 David Edelsohn + + * config/rs6000/rs6000.c: Include optabs.h. + +2001-08-13 David Edelsohn + + * config/rs6000/eabi.asm: Define 64-bit versions of FPR + save/restore routines. + * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros. + +2001-08-13 Andreas Jaeger + + * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo, + the english is correct. + +2001-08-13 Zack Weinberg + + * expr.h: Split out optab- and libfunc-related code to... + * optabs.h, libfuncs.h: ... these new headers. + + * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. + (OPTABS_H): New. + (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to + dependencies. + * mkconfig.sh: Don't include insn-codes.h from config.h. + + * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether + enum insn_code is available. Move reload_in_optab and + reload_out_optab array declarations to optabs.h. + * regmove.c (gen_add3_insn): Move to optabs.c, export from + there, prototype in expr.h. + * gencodes.c: Cleanup: zap global variables, don't use + printf where puts will do, don't bother defining MAX_INSN_CODE + which nothing uses, let CODE_FOR_nothing get its value implicitly. + + * genemit.c, genopinit.c: Include optabs.h in generated file. + * genoutput.c: Include insn-codes.h in generated file. + * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, + expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, + reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, + config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, + config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, + config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: + Include optabs.h. + * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, + optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, + config/m88k/m88k.c, config/sparc/sparc.c: + Include libfuncs.h. + * reload.c: Include expr.h and optabs.h before reload.h. + * config/alpha/alpha.c: Include tree.h before reload.h. + * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, + and reload.h in that order. + * config/sparc/sparc.c: Include debug.h. + * recog.c: Include insn-codes.h. + +2001-08-13 Andreas Jaeger + + * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on + s390*linux. + +2000-08-13 Theodore Papadopoulo + + * dwarf2out.c (output_cfa_loc): Fix typo in comment. + * gcc.c (init_spec): Fix typo in comment. + * varasm.c (data_section): Fix typo in comment. + +Mon Aug 13 02:27:39 CEST 2001 Jan Hubicka + + * predict.c (dump_prediction): New argument "USED". + (combine_predictions_for_insn): Determine the used heuristics, + output the case no heuristic applied. + * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New. + +2001-08-13 Andreas Jaeger + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize + register %rip. + +2001-08-13 Kazu Hirata + + * jump.c: Fix formatting. + +2001-08-13 Kazu Hirata + + * config/h8300/h8300.md (zero_extendqihi2): Correct the insn + length. + +2001-08-12 Geoffrey Keating + + * loop.c (check_dbra_loop): Use condjump_label to compute + jump_label. + + * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around + to better document the files they're in. + +2001-08-12 Zack Weinberg + + * recog.h (struct insn_operand_data): Shrink 'mode' field + to 16 bits. + +2001-08-12 Kazu Hirata + + * gcc.c: Fix comment formatting. + * gccspec.c: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genemit.c: Likewise. + * gengenrtl.c: Likewise. + * genrecog.c: Likewise. + * gensupport.c: Likewise. + * ggc-page.c: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * ifcvt.c: Likewise. + * integrate.c: Likewise. + * lcm.c: Likewise. + * libgcc2.c: Likewise. + * loop.c: Likewise. + * mbchar.c: Likewise. + * optabs.c: Likewise. + * predict.c: Likewise. + * prefix.c: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * real.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * resource.c: Likewise. + * rtlanal.c: Likewise. + * rtl.c: Likewise. + +2001-08-12 Kazu Hirata + + * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how + a tree representing a constant is passed to the macro. + +2001-08-12 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New. + (rs6000_elf_asm_out_destructor): New. + * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove. + (DTORS_SECTION_ASM_OP): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors. + +2001-08-12 David Edelsohn + + Revert: + 2001-08-02 Rainer Orth + * gcc.c (set_collect_gcc_options): New function, split out from + main. + Ignore elided switches. + (do_spec_1): Invoke before executing command. + (set_input): Export. + Move declaration ... + * gcc.h (set_input): ... here. + * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input + file. + +2001-08-12 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix + thinko wrt TARGET_RELOCATABLE. + +2001-08-12 Neil Booth + + * fix-header.c (cb_file_change): Update prototype. + +2001-08-11 Zack Weinberg + + * toplev.c (set_float_handler): Make static. + * toplev.h: Don't prototype set_float_handler. + + * simplify-rtx.c: Don't include setjmp.h. + (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1): + New functions. + (simplify_unary_operation, simplify_binary_operation): Use them, + via do_float_handler. + + * fold-const.c: Don't include setjmp.h. + (exact_real_inverse_1): New function. + (exact_real_inverse): Use it, via do_float_handler. + + * varasm.c: Don't include setjmp.h. + (assemble_real_1): New function. + (assemble_real): Use it, via do_float_handler. + Call internal_error if we get a trap here. + + * c-parse.in, cse.c, cselib.c, config/i386/i386.c, + config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h. + +2001-08-11 Zack Weinberg + + * defaults.h: Define PREFERRED_STACK_BOUNDARY to + STACK_BOUNDARY if not already defined. + + * calls.c, function.c, reload1.c, explow.c: Don't default + PREFERRED_STACK_BOUNDARY. Remove all #if/#ifdef on + PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY. + + * explow.c (allocate_dynamic_stack_space): Change unsafe #if + to run-time test. + + * doc/tm.texi: Document that STACK_BOUNDARY is required; + clarify difference between it and PREFERRED_STACK_BOUNDARY. + +2001-08-11 Neil Booth + + * cppmacro.c (enter_macro_context): Push macro expansions even + if empty. + +2001-08-11 Franz Sirl + + * config/rs6000/rs6000.c: Include integrate.h to silence warning. + (rs6000_elf_section_type_flags): Actually return a value. + +2001-08-11 Ulrich Weigand + + * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux: + Clean up code: add missing comments and prototypes, fix warnings, + remove obsolete code, fix spacing to conform to coding style. + +2001-08-11 Ulrich Weigand + + * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN + and TARGET_ASM_CLOSE_PAREN. + (regclass_map): CC register belongs to class NO_REGS. + (legitimize_pic_address): Don't generate unnecessary moves + (to avoid confusing loop optimization). + (check_and_change_labels): Replace jump_long by indirect_jump. + (s390_final_chunkify): Don't start a new literal pool on section + switch in 64-bit code. + (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit. + + * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug. + (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit). + (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer + modes correctly. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS. + (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit. + (CONST_COSTS): Fixed incorrect costs. + + * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3): + Use emit_jump instead of emit_jump_insn (gen_jump). + (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting + (to avoid confusing flow analysis). + (tablejump, tablejump1, tablejump2): Removed. Replaced by casesi. + (casesi, casesi_jump): New. + (jump_long): Removed. Functionality merged into indirect_jump. + (indirect_jump): Accept address_operand, not just register_operand. + (cjump_long, icjump_long): Use same logic as indirect_jump. + (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp): + Fixed broken setjmp/longjmp handling. + (do_builtin_setjmp_setup): Removed. + + * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around + broken GNU as versions that don't accept .quad with large + negative values. Use hexadecimal output instead. + (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn. + (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE, + FUNCTION_EPILOGUE): Removed. Now in targetm. + + * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register. + + * config/s390/fixdfdi.h: Add missing copyright statement. + Fix type conflicts on 64-bit. Add missing SFmode routines. + + * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect + email address. + +2001-08-11 Richard Henderson + + * rtl.h (REG_EH_RETHROW): Remove. + * rtl.c (reg_note_name): Update. + * combine.c (distribute_notes): Don't check for it. + +2001-08-11 Richard Henderson + + * combine.c (distribute_notes): Place REG_SETJMP. + +2001-08-11 Richard Henderson + + * doc/extend.texi (Arrays and pointers implementation): Discourage + relying on sign-extension of pointers. + +2001-08-11 H.J. Lu + + * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and + in_dtors. + (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and + RDATA_SECTION_ASM_OP. + +2001-08-11 Gerald Pfeifer + + * doc/install.texi (Specific, c4x): Fix cross-reference to the + main manual to work both for info and HTML versions. + +2001-08-11 Neil Booth + Matt Kraai + + * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy. + * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix. + (struct cpp_pool): New member first. + * cppinit.c (append_include_chain): Plug memory leaks. + * cpplib.c (cpp_register_pragma, cpp_register_pragma_space): + Allocate pragma structures from the (aligned) macro pool to + avoid leaking memory. + * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first + so we don't leak memory. + * hashtable.c (ht_destroy): New. + * hashtable.h (ht_destroy): New. + +2001-08-11 Neil Booth + Franz Sirl + + * c-lex.c (map): Make const. + (cb_file_change): Update for callback passing a line map. + Don't assume we have a previous map. Remove sanity check + about popping too many files. + * cpperror.c (print_location): Make map const. + * cppfiles.c (stack_include_file): Update; line maps now hold sysp. + (cpp_make_system_header): Similarly. + (search_from): Similarly. + (_cpp_execute_include): Don't remember where we came from. + * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp. + (struct cpp_reader): Make map const. + (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update. + * cpplib.c (do_line): Update; line maps now hold sysp. + (cpp_push_buffer): Similarly. + (_cpp_do_file_change): Similarly; callback with map instead. + (cpp_get_line_maps): Constify return value. + (_cpp_pop_buffer): Update. + * cpplib.h (struct cpp_file_change): Remove. + (struct cpp_callbacks): Update. + (cpp_get_line_maps): Constify return value. + * cppmacro.c (_cpp_create_definition): Update. + * cppmain.c (struct printer): Constify map. + (maybe_print_line): Similarly. + (print_line): Similarly. Deduce flags 1 and 2 here. + (cb_file_change): Update. + * line-map.c (free_line_maps): Warn regardless. + (add_line_map): Return pointer to const. When passed NULL to_file + with LC_LEAVE, use the obvious values for the return point so the + caller doesn't have to figure them out. + (lookup_line): Return pointer to const. + (print_containing_files): Take pointer to const. + * line-map.h (struct line_map): New members reason, sysp. + (add_line_map): Return pointer to const. + (lookup_line): Similarly. + (print_containing_files): Take pointer to const. + +2001-08-10 Roman Zippel + Richard Henderson + + * regmove.c (regmove_optimize): Avoid setting a register twice in + a parallel set. + +2001-08-10 Richard Henderson + + * doc/extend.texi (Arrays and pointers implementation): Document + behavior of pointer/integer conversion. + +2001-08-10 Ulrich Weigand + + * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture. + +2001-08-10 Richard Henderson + + * doc/extend.texi (C Implementation): New chapter. + * doc/gcc.texi (Top): Link it in. + +2001-08-10 Andrew Cagney + + * doc/install.texi (Specific): Fix CVS merge botch. + +2001-08-10 Richard Henderson + + * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with + ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP. + +2001-08-10 Zack Weinberg + + * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY + if not already defined. Remove all #ifdefs on STACK_BOUNDARY; + this macro is now required. + + * cselib.c (cselib_process_insn), flow.c (propagate_block), + loop.c (find_and_verify_loops), reload.c (reload): Check + for rtx code of CALL_INSN, not CALL, when deciding if we + need to check for REG_SETJMP note. + + * gcse.c (compute_hash_table, compute_store_table): Update + the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP + logic. + + * config/avr/avr.c: Fix typo. + * config/convex/convex.c (expand_movstr): Use adjust_address. + * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen + variable. + * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address. + * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h. + Fix typo. + * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?) + Do define STACK_BOUNDARY. + * config/i370/i370.c: Include expr.h. + * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h, + config/pa/som.h, config/v850/v850.h: Take in_ctors and + in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION + and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS. + * config/m88k/m88k.c: Include c-tree.h after expr.h. + * config/pdp11/pdp11.c: Include expr.h and toplev.h. + * config/romp/romp.c: Include expr.h after tree.h. + Include toplev.h. + (output_fpop): Use xmalloc, not oballoc. + * config/we32k/we32k.c: Include expr.h. + +2001-08-10 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + +2001-08-08 Jason Merrill + + * c-common.h (RETURN_NULLIFIED_P): Lose. + * c-semantics.c (genrtl_return_stmt): Don't check it. + +2001-08-10 Richard Sandiford + + * config/mips/mips.c (mips_add_large_offset_to_sp): New function. + (mips_annotate_frame_insn): New function. + (mips_emit_frame_related_store): New function. + (save_restore_insns): Don't mark instructions that set up the base + registers as frame-related. Add REG_FRAME_RELATED_EXPR notes to + the store instructions instead. + (mips_expand_prologue): If the stack size is moved into a temporary + register, do not mark that move as frame-related. Add a + REG_FRAME_RELATED_EXPR note to the stack adjustment instruction. + +2001-08-10 Richard Sandiford + + * config/mips/mips.c (save_restore_insns): Don't mark the RA's + stack slot as unchanging if current_function_calls_eh_return. + +2001-08-10 Richard Sandiford + + * config/mips/mips.md (reload_outcc): Use HARD_REGNO_NREGS to + access the second half of the TFmode scratch operand. + +2001-08-10 Anthony Green + + * java/class.c (emit_register_classes): Conditionalize code on + JCR_SECTION_NAME. + +2001-08-10 Gerald Pfeifer + + * doc/install.texi (Specific, avr): Fix cross-reference to the + main manual to work both for info and HTML versions. + +2001-08-09 John David Anglin + + * stmt.c (expand_null_return_1): Remove code to generate simple returns + and "use_goto" argument. + (expand_null_return, expand_value_return): Update all callers. + * function.c (expand_function_end): Remove code to generate simple + return. + * config/vax/vax.md (epilogue): New expander for function return. + * doc/md.texi (epilogue): Remove "if defined". + +2001-08-09 Zack Weinberg + + * Makefile.in: Partially revert my previous change: + put -DGENERATOR_FILE back in HOST_CFLAGS, take it out + of the hashtab.o and safe-ctype.o rules. + +2001-08-09 Richard Henderson + + * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses. + (USE_COLLECT2): Remove duplicate definition. + * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h. + (use_collect2): Remove dead code. + * configure.in (use_collect2): Remove will_use_collect2 and + maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines. + * configure: Rebuild. + + * target.h (targetm.asm_out.constructor): New. + (targetm.asm_out.destructor, targetm.have_ctors_dtors): New. + * target-def.h (TARGET_ASM_CONSTRUCTOR): New. + (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New. + * varasm.c (in_ctors, in_dtors): New. + (assemble_constructor, assemble_destructor): Remove. + (default_stabs_asm_out_destructor): New. + (default_named_section_asm_out_destructor): New. + (dtors_section, default_dtor_section_asm_out_destructor): New. + (default_stabs_asm_out_constructor): New. + (default_named_section_asm_out_constructor): New. + (ctors_section, default_ctor_section_asm_out_constructor): New. + * output.h: Update declarations. + * c-decl.c (c_expand_body): Use target hooks instead of + assemble_constructor and assemble_destructor. + * profile.c (output_func_start_profiler): Likewise. + * objc/objc-act.c (finish_objc): Likewise. + (build_module_descriptor): Tidy. Set TREE_PUBLIC properly + for the constructor. + * objc/Make-lang.in (objc-act.o): Depend on TARGET_H. + + * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define. + (DTORS_SECTION_ASM_OP): Likewise. + (__CTOR_LIST__): Use attribute section when possible. + (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise. + + * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on + ASM_OUTPUT_CONSTRUCTOR. + + * config/darwin.c (machopic_asm_out_constructor): New. + (machopic_asm_out_destructor): New. + * config/darwin-protos.h: Update declarations. + * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/nextstep.c (nextstep_asm_out_constructor): New. + (nextstep_asm_out_destructor): New. + * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of + ASM_OUTPUT_*STRUCTOR. + * config/i386/aix386ng.h: Likewise. + + * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + * config/lynx.h: Likewise. + * config/netware.h: Likewise. + * config/psos.h: Likewise. + * config/alpha/alpha-interix.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/arc/arc.h: Likewise. + * config/arm/aof.h: Likewise. + * config/arm/coff.h: Likewise. + * config/arm/elf.h: Likewise. + * config/c4x/c4x.h: Likewise. + * config/h8300/h8300.h: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/i386-coff.h: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/vsta.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i960/i960-coff.h: Likewise. + * config/ia64/sysv4.h: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68k/coff.h: Likewise. + * config/m68k/mot3300.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/mcore/mcore-pe.h: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mips/elf.h: Likewise. + * config/mips/elf64.h: Likewise. + * config/mips/iris6.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/sh/sh.h: Likewise. + * config/sparc/litecoff.h: Likewise. + + * config/svr3.h (CTORS_SECTION_ASM_OP): Remove. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + * config/a29k/a29k.c: Move include of tree.h. + * config/a29k/udi.h: Delete file. + * config/alpha/alpha.c (vms_asm_out_constructor): New. + (vms_asm_out_destructor): New. + * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors. + (EXTRA_SECTION_FUNCTIONS): Likewise. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/c4x/c4x.c: Move include of tree.h. + * config/clipper/clipper.c (clix_asm_out_constructor): New. + (clix_asm_out_destructor): New. + * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/i386/i386.c (ix86_svr3_asm_out_constructor): New. + (sco_asm_out_constructor): New. + * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New. + * config/i386/svr3gas.h: Remove stack grows up code. + Remove code duplicated from i386/sysv3.h. + (TARGET_ASM_CONSTRUCTOR): New. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove. + * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New. + (m68hc11_asm_out_destructor): New. + * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New. + (TARGET_ASM_DESTRUCTOR): New. + * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR. + * config/m68k/dpx2.h: Properly undef all the bits inherited from + config/svr3.h pertaining to section manipulation. + * config/m68k/dpx2g.h: Remove #if 0 code. + * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New. + * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo. + (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local. + (m88k_svr3_asm_out_constructor): New. + (m88k_svr3_asm_out_destructor): New. + * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code. + * config/rs6000/aix.h: Likewise. + * config/mips/rtems64.h: Don't undef removed constructor related bits. + * config/mips/vxworks.h: Likewise. + * config/rs6000/lynx.h: Likewise. + * config/sh/elf.h: Likewise. + * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New. + (DTORS_SECTION_ASM_OP): New. + * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + * config/sparc/sol2-sld-64.h: Likewise. + * config/vax/vax.c (vms_asm_out_constructor): New. + (vms_asm_out_destructor): New. + * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + + * doc/tm.texi (@node Initialization): Update. + +2001-08-09 Richard Henderson + + * config/alpha/crtbegin.asm (__JCR_LIST__): New. + (__do_global_dtors_aux): Use gp-relative static data to avoid + one dynamic relocation. + (__do_frame_setup): Register Java classes. + * config/alpha/crtend.asm (__JCR_END__): New. + +2001-08-09 Zack Weinberg + + * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE. + (CONFIG_H, TCONFIG_H, TM_P_H): Update. + (GEN, STAGESTUFF): Add new files. + (insn-constants.h, s-constants, tm-preds.h, s-preds, + genconstants, genpreds, genconstants.o, genpreds.o): New rules. + (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE. + * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h + as well as insn-codes.h and insn-flags.h in config.h; and no + extra headers in tconfig.h and hconfig.h. + + * gencodes.c: Eliminate code to generate predicate declarations + or #defines for md-file constants. + * genconstants.c, genpreds.c: New files. + + * i386.md: Re-order guard expressions such that TARGET_64BIT + comes first, when this permits better optimization. Add + TARGET_64BIT to more x86-64 patterns. Add comment explaining + why this is desirable. + +2001-08-09 Jakub Jelinek + + * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers. + (find_fde_for_dso): Remove. + (_Unwind_IteratePhdrCallback): New. + (_Unwind_FindTableEntry): Use dl_iterate_phdr. + * config/ia64/crtbegin.asm (__ia64_app_header): Remove. + +Thu Aug 9 11:30:20 2001 Richard Kenner + + * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING. + (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING. + +2001-08-09 Graham Stott + + * sched-vis.c (MAX_VISUAL_NO_UNIT): Define. + (vis_no_unit): Use it. + (visualize_no_unit): Add the insn only if room exists. + +2001-08-09 Graham Stott + + * predict.c (estimate_probability): Replace magic numbers with + appropriate enumeration. + +2001-08-09 Graham Stott + + * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro + parameter. + (EXTRACT_FLAGS): Likewise. + +2001-08-09 Aldy Hernandez + + * config/mips/mips.c (mips_legitimate_address_p): Check for + CONST_INT in last patch. + +2001-08-08 Anthony Green + + * java/class.c (emit_register_classes): Use assemble_jcr if + possible. Keep the original mechanism as a fallback. + * defaults.h (JCR_SECTION_NAME): Define if we have named section + and weak symbol support. + * crtstuff.c (__JCR_LIST__): Define. + (__JCR_END__): Define. + (_Jv_RegiserClasses): Define weak symbol if possible. + (__do_global_ctors_aux): Register classes for ELF targets with + weak symbol support. + +2001-08-08 Kazu Hirata + + * dbxout.c: Fix comment formatting. + * dependence.c: Likewise. + * df.c: Likewise. + * diagnostic.c: Likewise. + * dominance.c: Likewise. + * doprint.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + +2001-08-08 Franz Sirl + + * global.c (retry_global_alloc): Avoid shadowing allocno. + +2001-08-08 Mark Mitchell + + * except.c (remove_fixup_regions): Fix typo. + +2001-08-08 Jan van Male + + * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to + unsigned HOST_WIDE_INT to avoid warning. + * final.c (final): Cast INSN_UID to unsigned to avoid warning. + * flow.c (set_block_for_new_insns): Likewise. + +Wed Aug 8 21:08:14 CEST 2001 Jan Hubicka + + * sibcall.c (return_value_pseudo): New static variable. + (skip_copy_to_return_value): Handle return_value_pseudo. + (call_ends_block_p): Ensure that return_value_pseudo is set. + (optimize_sibling_and_tail_recursive_call): Discover the + load of pseudo return value in alternate exit block. + +Wed Aug 8 21:06:43 CEST 2001 Jan Hubicka + + * calls.c (ECF_ALWAYS_RETURN): New constant. + (emit_call_1): Add REG_ALWAYS_RETURN note if needed. + (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func. + (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN. + * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN. + * rtl.c (reg_note_name): New name. + * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN. + +2001-08-07 Aldy Hernandez + + * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses. + +2001-08-08 Jason Merrill + + * alias.c (get_alias_set): Return a previously calculated + alias set for a VAR_DECL. + * function.c (gen_mem_addressof): Calculate the alias set before + touching the RTL. + +Wed Aug 8 18:44:37 CEST 2001 Jan Hubicka + + * predict.def: Set hitrates according our experimental run. + +Wed Aug 8 18:01:58 CEST 2001 Jan Hubicka + + * i386.h (HARD_REGNO_RENAME_OK): New macro. + +2001-08-08 H.J. Lu + + * config/mips/mips.c (mips_unique_section): New. Copied from + config/mips/elf.h. + + * config/mips/mips-protos.h (mips_unique_section): New + prototype. + + * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section. + + * config/mips/little.h: New. Generic little endian mips + targets. Only mips*-*-linux* is converted to use it so far. + + * config/mips/linux.h: Include "gofast.h" and "mips/mips.h". + (WCHAR_TYPE): Defined + (WCHAR_TYPE_SIZE): Likewise. + (INIT_SUBTARGET_OPTABS): Likewise. + (BSS_SECTION_ASM_OP): Likewise. + (SBSS_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ALIGNED_BSS): Likewise. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (UNIQUE_SECTION): Likewise. + (EXTRA_SECTIONS): Likewise. + (ASM_OUTPUT_CONSTRUCTOR): Likewise. + (ASM_OUTPUT_DESTRUCTOR): Likewise. + (ASM_OUTPUT_DEF): Likewise. + (HANDLE_SYSV_PRAGMA): Removed. + (NO_IMPLICIT_EXTERN_C): Likewise. + (TARGET_MEM_FUNCTIONS): Likewise. + (STARTFILE_SPEC): Likewise. + (ENDFILE_SPEC): Likewise. + (LIB_SPEC): Likewise. + (INVOKE__main): Likewise. + (CTOR_LIST_BEGIN): Likewise. + (CTOR_LIST_END): Likewise. + (DTOR_LIST_BEGIN): Likewise. + (DTOR_LIST_END): Likewise. + (SET_ASM_OP): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Likewise. + (ASM_OUTPUT_DEF): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + + * config/mips/mips.h (ASM_SPEC): Undefine before define. + (CPLUSPLUS_CPP_SPEC): Likewise. + (ASM_APP_ON) Redefine only if not defined. + (ASM_APP_OFF): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + + * config.gcc: Update tm_file for Linux/mips. + 2001-08-08 Bernd Schmidt * cselib.c (cselib_record_sets): If insn is predicated, turn @@ -5,7 +962,7 @@ * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b): Turn into define_insn_and_split. - + * sched-deps.c: Include "cselib.h". (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2): Use cselib to turn memory addresses into VALUEs. @@ -15,6 +972,11 @@ * sched-rgn.c (rgn_sched_info): Likewise. * Makefile.in (sched-deps.o): Update dependencies. + * cselib.h (cselib_subst_to_values): Declare. + * cselib.c (cselib_subst_to_values): No longer static. Allow MEMs + that have no value and autoincs to be handled by generating a new + dummy value. + 2001-08-08 Graham Stott * final.c (shorten_branches): Update the INSN_ADDRESSES of insns @@ -96,8 +1058,8 @@ Tue Aug 7 22:18:06 CEST 2001 Jan Hubicka 2001-08-07 Daniel Jacobowitz - * config.gcc: Quote target_cpu_default2 correctly for - powerpc*-*-* targets. + * config.gcc: Quote target_cpu_default2 correctly for + powerpc*-*-* targets. 2001-08-07 Neil Booth @@ -1372,6 +2334,22 @@ Fri Jul 27 17:53:00 CEST 2001 Jan Hubicka * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized variable access. +2001-07-26 Andrew Haley + Joern Rennecke + + * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New. + (SUBTARGET_CPP_ENDIAN_SPEC): New. + (SUBTARGET_CPP_SPEC): New. + (CPP_SPEC): Remove. + * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New. + (SUBTARGET_CPP_PTR_SPEC): New. + (CPP_DEFAULT_CPU_SPEC): New. + (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC, + SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. + (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC, + SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. + (SUBTARGET_CPP_SPEC): Define as an empty string. + 2001-07-27 Gerald Pfeifer * doc/install.texi (Configuration): Properly link the host