X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=2639d7254957775856905df071a92fc5466ed27d;hb=91d64b48ed3673cc1eefb7c17b7a87007bebf685;hp=89287c9921087eed17a905fa1562df6d746a4d6b;hpb=91a70e60f146ebf0651f001e02b745eed36813fc;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89287c99210..2639d725495 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,250 @@ +1999-12-07 Jakub Jelinek + + * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers + suitable for holding OFmode values so that gcc works with complex + quad long doubles. + (hard_64bit_mode_classes): Likewise. + + * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern + so that it is actually matched. + (sethi_di_medlow): Likewise. + + * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L + as legitimate constant if -mvis. + * config/sparc/sparc.md (movtf): Likewise. + (clear_sf): Use const_double_operand. + (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns. + + * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function. + * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype. + * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_* + routines, _Qp_* cannot be handled like that now. + (INIT_TARGET_OPTABS): Likewise. + * config/sparc/sparc.md (cmptf): Accept soft float ARCH64. + (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call + sparc_emit_float_lib_cmp if ARCH64 and soft float. + (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2, + floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3, + divtf3, sqrttf3): New expanders. + (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq, + floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq, + addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from + non-_hq patterns. + + * configure.in (sparc64-*-linux*): Use posix threads if enabled. + * configure: Rebuilt. + * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no + -mcpu is given and we're doing 64bit compiles. + +Tue Dec 7 19:22:06 1999 Richard Henderson + + * loop.h (struct induction): Add multi_insn_incr. + * loop.c (basic_induction_var): New multi_insn_incr argument. + Set it if we search back through previous insns for the biv. + (record_biv): New multi_insn_incr argument; fill in struct induction. + (strength_reduce): Discard an iv with multiple bivs, any of + which require multiple insns to increment. + +1999-12-07 Martin v. Löwis + + * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std + documentation. + +1999-12-06 David S. Miller + + * combine.c (check_promoted_subreg): Do not conditionalize this upon + PROMOTE_FUNCTION_RETURN. + +Mon Dec 6 15:12:14 1999 Jim Wilson + + * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for + and handle REG_UNUSED note on insn. + + * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set + inner_mask instead of mask. + +1999-12-06 Brendan Kehoe + + * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be + zero if there was an error. + +1999-12-06 Jakub Jelinek + + * config/sparc/sparc.md (return_losum_di): Fix typo in asm + output string. + + * longlong.h: Fix clobbers in SPARC asm statements. + + * config/sparc/sparc.c (input_operand): Allow HImode and QImode + valid sethi operations when TARGET_ARCH64. + + * calls.c (save_fixed_argument_area): If save_mode is BLKmode, + always use move_by_pieces to avoid infinite recursion. + (restore_fixed_argument_area): Likewise. + + * combine.c (check_promoted_subreg, record_promoted_value): New + functions. + (combine_instructions): Use them to retain nonzero and sign bit + information after SUBREGs are eliminated by optimizations in + this pass if PROMOTE_FUNCTION_RETURN. + + * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document + .register declaration. Don't use variables with __ prefixes. + +Mon Dec 6 12:24:52 1999 Richard Kenner + + * fold-const.c (optimize_bit_field_compare): Only use one mode + for both RHS and LHS in non-constant case. + +1999-12-06 Nathan Sidwell + + * frame.c (start_fde_sort): Only allocate erratic array, if + linear one was allocated. Return allocated flag. + (fde_insert): Only insert, if there's a valid array. + (fde_end_sort): Split, sort and merge if linear and erratic + arrays exist, else just sort linear one. + (search_fdes): New function. Linear search through original fde + structure. + (frame_init): Permit multiple initializations. Cope with + memory shortages. + (find_fde): Fallback on linear search, if failed to sort array. + (__deregister_frame_info): Only free sorted array, if we + allocated it. + +1999-12-06 Jakub Jelinek + + * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro. + +1999-12-05 Jakub Jelinek + + * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi. + +1999-12-05 Mark Mitchell + + * tree.h (special_function_p): Declare. + * calls.c (special_function_p): Make it global. Don't take `name' + as a parameter. Fix typo in 1999-11-28 change. + (expand_cal): Adjust. + +1999-12-04 Mark Mitchell + + * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting. + * tree.h (EXPR_WFL_FILENAME): Define in terms of + EXPR_WFL_FILENAME_NODE. + (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than + the TREE_CHAIN. + * print-tree.c (print_note): Print TREE_PRIVATE and + TREE_PROTECTED. + + * dwarf2out.c (add_abstract_origin_attribute): Don't abort when + the original die cannot be found. + + * varray.h (varray_head_tag): Add elements_used. + (VARRAY_PUSH): New macro. + (VARRAY_POP): Likewise. + (VARRAY_TOP): Likewise. + Add variants of VARRAY_PUSH and VARRAY_POP for all varray element + types. + * varray.c (varray_init): Initialize elements_used. + * Makefile.in (BASIC_BLOCK_H): Add varray.h. + (INTEGRATE_H): New variable. + (integrate.o): Depend on INTEGRATE_H. + (unroll.o): Likewise. + + * function.h (insert_block_after_note): Declare. + * function.c (insert_block_after_note): Split out from ... + (retrofit_block): ... here. + + * stmt.c (expand_fixup): Fix typo in comment. + +Sat Dec 4 14:13:38 MET 1999 Jan Hubicka + + * regmove.c (copy_src_to_dest): Remove loop_depth parameter. + (optimize_reg_copy_1): Remove REG_N_REFS updating code. + (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise. + (regmove_optimize, fixup_match_1): Likewise. + +1999-12-05 Michael Hayes + + * flow.c (flow_loops_dump): Add missing argument when calling + flow_loop_nested_p. + +1999-12-04 Geoffrey Keating + Greg McGary + + * c-common.c (enum attrs): Add A_NO_LIMIT_STACK. + (init_attributes): Add A_NO_LIMIT_STACK. + (decl_attributes): Handle A_NO_LIMIT_STACK. + * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK. + * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]: + Handle stack bounds checking. + * flags.h (flag_stack_check): Use the word 'probe' rather than + 'check', because the flag doesn't actually cause any checking to + be done. + * function.c (expand_function_start): Set + current_function_limit_stack. + * function.h (struct function): Add limit_stack. + (current_function_limit_stack): Define. + * invoke.texi (Code Gen Options): Document new options. + * rtl.h: Declare stack_limit_rtx. + * toplev.c (stack_limit_rtx): New variable. + (decode_f_option): Handle new options -fstack-limit-register=REG, + -fstack-limit-symbol=IDENT, -fno-stack-limit. + (main): Add stack_limit_rtx as GC root. + * tree.h (DECL_NO_LIMIT_STACK): New macro. + (struct tree_decl): New member no_limit_stack. + + * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle + stack_limit_rtx. + * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx. + (conditional_trap+1): Get new mnemonic correct. + (conditional_trap+2): New pattern for DImode traps. + + * config/m68k/m68k.c (output_function_prologue): Handle + stack_limit_rtx. + * config/m68k/m68k.md (trap): New insn. + (conditional_trap): New insn. + * md.texi (Standard Names): Document `trap' and + `conditional_trap'. + * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence() + so a cc0 setter doesn't get emitted at some random place in the + function. + + * config/i960/i960.md (trap): New insn. + (conditional_trap): New expander. + (conditional_trap+1, conditional_trap+2): New insns for signed + and unsigned cases. + * config/i960/i960.c (i960_function_prologue): Use + STARTING_FRAME_OFFSET. Handle stack_limit_rtx. + +Thu Dec 2 21:22:45 1999 Greg McGary + Geoffrey Keating + + * flags.h (warn_padded, warn_packed): Add global var decls. + * toplev.c (warn_padded, warn_packed): Add global var defns. + (W_options): Add warnings `-Wpacked' and `-Wpadded'. + * stor-layout.c (layout_record): Add local variable `type' + to hold often-used TREE_TYPE (field). Add local variable + `unpacked_align' to hold alignment that would be in force + if no `packed' attribute were present. Warn if `packed' attribute + is unnecessary, or even harmful. Warn when gcc inserts padding + to satisfy alignment requirements of members. Use NULL_TREE + when checking whether var_size is set. + * invoke.texi: Document new flags. + +1999-12-03 Nathan Sidwell + + * frame.c (fde_split): Reimplement to avoid variable sized array. + +Thu Dec 2 18:59:48 1999 J"orn Rennecke + + * combine.c (try_combine): Before fixing up LOG_LINKS for the + i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL. + +1999-12-02 Gavin Romig-Koch + + * invoke.texi: Document the mips option -mno-crt0 + 1999-12-02 Mike Karr * cccp.c (argdata): Added free_ptr member.