📄 changelog.2
字号:
* integrate.c (subst_constants): Only commute operands if op0 is const. * rtl.def (INLINE_HEADER): Add new integer field. * rtl.h (POPS_ARGS): New macro for place to save current_function_pops_args. (FUNCTION_FLAG_POPS_ARGS): Deleted; no longer a single bit. * emit-rtl.c (gen_inline_header_rtx): Add new arg for "pops args". * integrate.c (initialize_for_inline, output_inline_function): Correctly save and restore current_function_pops_args.Sun Jan 6 14:10:44 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * rtl.h (ASM_OPERANDS_INPUT_LENGTH): New macro. * reload1.c (eliminate_regs): Use ASM_OPERANDS_... macros. * recog.c (asm_noperands, decode_asm_operands): Likewise. * rtl.def (IF_THEN_ELSE): Set class to '3'. * cse.c (simplify_{unary,binary,ternary}_operation): New functions, from fold_rtx. (fold_rtx): Call these function to do the bulk of the work. Use GET_RTX_CLASS to find commutative and comparison operations. Swap folded_arg[01] when commuting operands. * rtl.h: Define new functions. * integrate.c (try_constants): Replace constant folding code with calls to new functions above. In commutative operations, put constants last. * genemit.c (struct clobber_pat): New data structure. (gen_insn): If pattern ends with a group of CLOBBERs of hard registers, store this information in a struct clobber_pat. (output_add_clobbers): New function. (main): Call it to write code to add CLOBBERs. * genrecog.c (struct decision): Add new field num_clobbers_to_add. (make_insn_sequence): If pattern ends with a group of CLOBBERs, set up to recognize it without the CLOBBERs but to indicate the number of CLOBBERs omitted. (add_to_sequence): Initialize num_clobbers_to_add. Remove unnecessary conditionalization on STORE_FLAG_VALUE. (break_out_subroutines, write_subroutine, write_tree): Remove RETURN_PREFIX parameter; TYPE is sufficient. (write_subroutine): Add extra parameter for recog_* functions. (write_tree_1): Pass TYPE instead of string for return. Write out code to return number of CLOBBERs needed. (write_tree): Add new parameter to recog_*. (main): Add new parameter to recog. Don't pass return string to break_out_subroutines and write_tree. * recog.c (recog_memoized): Pass extra (0) parameter to recog. * combine.c (recog_for_combine): New function. (try_combine, simplify_and_cc0, try_distrib): Use it instead of recog. (reg_dead_at_p, reg_dead_at_p_1): New functions. * flow.c (mark_set_1): Count in reg_n_sets when a part of a register is modified. Update SIGNIFICANT correctly when subreg_p and multiple hard regs. Compute reg_n_sets for hard registers.Sun Jan 6 13:41:49 1991 Richard Stallman (rms at mole.ai.mit.edu) * function.c (locate_and_pad_parm): Do REG_PARM_STACK_SPACE just once. * Changes by wilson@cygnus.com. * calls.c (expand_call): Test value of REG_PARM_STACK_SPACE instead of assuming that it will always be greater than zero. * function.c (assign_parms): Same as above. Also, correct calculation of STACK_BYTES. * reload1.c (reload_reg_free_p): Old input reload blocks input_addr.Sat Jan 5 18:32:15 1991 Richard Stallman (rms at mole.ai.mit.edu) * Makefile.in (mostlyclean): New name for old `clean'. (clean): Deletes gnulib also. (cleanconfig): Need not delete gnulib here. * reload.c (push_reload): Don't use dying reg unless operand fits. * c-parse.y (yylex): Hex and octal constants now traditionally signed.Sat Jan 5 18:03:50 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * regclass.c (regclass): reg_n_sets is one per set. It does not take into account loop_depth. So don't adjust by loop_depth here.Fri Jan 4 13:18:07 1991 Richard Stallman (rms at mole.ai.mit.edu) * function.c (put_var_into_stack): Don't mung virtual reg. (fix_lexical_addr): Accept the virtual arg pointer. * function.h (struct var_refs_queue): New structure. (struct function): Use that for the pending var refs queue. * print-tree.c (print_node): Nicer format for rtl of decls. * c-decl.c (push_c_function_context, pop_c_function_context): No need to deal with current_function_decl. * c-parse.y (nested_function): Delete spurious nonterminal.Fri Jan 4 12:13:14 1991 Michael Tiemann (tiemann at cygnus.com) * cplus-class.c (modify_vtable_entries): In case we are modifying the main vtable, start with the vtable that comes from the immediate baseclass, not the most base class. This is needed because later fixups (for non-first and virtual baseclasses) do not fix up this case.Fri Jan 4 06:55:00 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * optabs.c (expand_binop): Fix typo in testing for SImode operation. Generalize to apply in more cases by calling emit_store_flag rather than doing the gen_sltu explicitly. * expmed.c (store_bit_field, extract_bit_field): When insv/extv don't allow MEM and we need to load the field into a register, don't use the mode of OP0 if it is wider than the mode to be used for insv/extv operating on a register. * expmed.c (emit_stor_flag): Try to convert some comparisons with 1 and -1 to comparisons with zero. Explicitly test sign bit of STORE_FLAG_VALUE rather than testing it for being less than zero. * cse.c (find_comparison_args): Don't compute STORE_FLAG_VALUE < 0; instead, test the relevant sign bit. Use GET_RTX_CLASS instead of comparison_code_p. * loop.c (get_condition): Likewise. * recog.c (validate_change): Eliminate duplicate code by always saving the change. If in_group == 0, call apply_change_group. (apply_change_group): If recog_memoized fails, see if we have a CLOBBER at the end. Use validate_change to replace the pattern with one without the CLOBBER if so; later we will verify that change. * tree.c (stabilize_reference_1): Now static; also, define as forward reference at start of file. * rtl.def: Add new field in DEF_RTL_EXPR macro to give the "class" of the rtx operation. * rtl.h: DEF_RTL_EXPR has one additional arg. (rtx_class, GET_RTX_CLASS): New var and macro. * rtl.c: DEF_RTL_EXPR has one additional arg. (rtx_class): Initialize table. * reload.c (push_reload): If an input operand contains a dead register used nowhere else in the insn, try to use it as a reload reg. * reload1.c (reload_as_needed): If cancelling optional reload, clear reload_reg_rtx. (choose_reload_regs): If we can find reload value lying around, use that register unless choice made by find_reloads would also save an insn (the new choice added above won't). * genoutput.c: Update comments on things written. Change order to agree with the order written. (output_epilogue): Remove extraneous tests.Thu Jan 3 13:32:54 1991 Richard Stallman (rms at mole.ai.mit.edu) * rtl.c (read_rtx): Cast NULL vector. * By Jim Wilson. * tree.c (stabilize_reference): Modified to call stabilize_reference_1 instead of save_expr. (stabilize_reference_1): New function. For arithmetic operator trees, recurse on the subtrees. Otherwise, put a SAVE_EXPR around the tree if it has side-effects. Thu Jan 3 12:37:56 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * reload1.c (choose_reload_regs): Only set reload_when_needed to RELOAD_FOR_OUTPUT or RELOAD_FOR_INPUT when it used to be RELOAD_OTHER.Wed Jan 2 18:28:23 1991 Richard Stallman (rms at mole.ai.mit.edu) * emit-rtl.c (init_emit_once): Fix typo setting constm1_rtx.Wed Jan 2 07:53:04 1991 Michael Tiemann (tiemann at cygnus.com) * sparc.md (fix_truncdfsi2 recognizer): xoperands must have 3 elements because `output_fp_move_double' can write to operands[2].Wed Jan 2 17:16:20 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * calls.c (emit_call_1): If we have call_pop, use it if we have no stack arguments. * out-vax.c (relational_op): Deleted, redundant. * vax.md (branch): Use comparison_operator (in recog.c) instead of relational_op. * tm-vax.h (PRINT_OPERAND_PUNCT_VALID_P): "C" is not punctuation. * reload1.c (reload_as_needed, forget_old_reloads_1): Don't clear reg_has_output_reload and reg_is_output_reload for each insn, just ones that need reload. Instead, interpret each entry as zero if n_reloads == 0.Wed Jan 2 15:52:13 1991 Richard Stallman (rms at mole.ai.mit.edu) * optabs.c (expand_binop): Fix typos. * toplev.c (rest_of_compilation): Clear cse_not_expected after loop. * rtl.h (cse_not_expected): Declare here. * expr.h: Not here.Tue Jan 1 21:55:11 1991 Richard Stallman (rms at mole.ai.mit.edu) * emit-rtl.c (constm1_rtx): New standard constant. (gen_rtx): Use it when appropriate. (init_emit_once): Initialize it. * out-vax.c (split_quadword_operands): New function. (relational_op): Likewise. * vax.md (extendsidi2, adddi3, subdi3): New patterns. (movdi): Use clrq when appropriate. (movaq recognizer): New pattern. * recog.h (OUT_FCN): New macro. * genoutput.c: Include recog.h in output file. No longer define "const", since that happens in recog.h. * tm-vax.h (PRINT_OPERAND): Add 'C' to print a reversed condition. * out-vax.c (rev_cond_name): Return its name. * vax.md (unnamed patterns): Combine several reversed branch patterns into one, using match_operator with relational_op and "%C". * optabs.c (expand_binop): Handle multi-word addition and subtraction. * Makefile.in (install-gnulib): Use RANLIB_TEST. Use libg_dir. (libg_dir): New customization variable. * assert.h (__assert): Use standard GNU format for error messages.Tue Jan 1 21:25:00 1991 Richard Kenner (kenner at vlsi1) * reload1.c (eliminate_regs, case PLUS): Always move constant to the outside of a PLUS expression.Tue Jan 1 11:45:22 1991 Richard Stallman (rms at mole.ai.mit.edu) * ecoff-cmp: Specify `c' in option to tail. * stor-layout.c (layout_record, layout_union, layout_type): Use ROUND_TYPE_ALIGN and ROUND_TYPE_SIZE to compute alignment and size of records, unions and arrays. * ROUND_TYPE_ALIGN: New. Args are type, spec'd align, other min align. * ROUND_TYPE_SIZE: New. Args are type, size of contents, align. * reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]: Scan output and output-address reloads together. Check for matching hard reg. * config.gcc: Set proper shell vars in big dispatch. Not `machine'. (i386-isc): New alternative.Tue Jan 1 08:29:49 1991 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * reorg.c (update_block): Turn bb_tick update back on; it is needed, after all.Mon Dec 31 18:12:07 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * genattrtab.c (write_test_expr, case EQ_ATTR): Use correct expression number for attribute value. * cse.c (cse_insn): Use single_set when looking for an insn that sets cc0 followed by one that no longer does. * recog.c (find_single_use): If the next insn after one that sets cc0 is not an INSN or JUMP_INSN, return 0; don't blow up on a NOTE. * emit-rtl.c (emit_insn_before, emit_insn_after, emit_insn): Return something sensible if a SEQUENCE of length zero was passed. We no longer make a SEQUENCE with XVEC == 0, so don't test for it. * reload1.c (emit_reload_insns): Handle gen_move_insn returning no insns (occurs on RT for dummy registers). * rtl.h (reg_cc0_rtx, find_cc): No longer needed. * emit-rtl.c: Likewise. * conditions.h: Entire file is #ifdef HAVE_cc0. * final.c (CC_STATUS_INIT): Make a null default #ifndef HAVE_cc0. (cc_status): No longer exists #ifndef HAVE_cc0. (final_scan_insn): Do CC processing only #ifdef HAVE_cc0. (alter_cond): Only exists #ifdef HAVE_cc0. * genemit.c (gen_exp): No longer have CC0_REGNUM or reg_cc0_rtx. * genoutput.c (main): Include insn-config.h before conditions.h. * reorg.c: Likewise. * jump.c (rtx_equal_for_thread_p): Remove reference to CC0_REGNUM; we'll have to do this optimization some other way later. * tm-a29k.h (NOTICE_UPDATE_CC): Deleted.Mon Dec 31 14:44:31 1990 Richard Stallman (rms at mole.ai.mit.edu) * reload.h (enum_reload_when_needed): New alternatives RELOAD_FOR_OUTPUT, RELOAD_FOR_INPUT. * reload1.c (choose_reload_regs): Use those when appropriate. (mark_reload_reg_in_use): Record this usage specially. (reload_reg_free_p, reload_reg_free_before_p): Handle this usage. (reload_reg_reaches_end_p): Likewise. (emit_reload_insns): Treat RELOAD_FOR_INPUT like RELOAD_OTHER. * i386.md (push for SFmode): Operand of fst was missing.Mon Dec 31 08:50:17 1990 Craig Burley (burley at pogo.ai.mit.edu) * stor-layout.c (layout_type): For ARRAY_TYPE case, don't try and compute a size if there is no TYPE_MAX_VALUE for the index. * tree.c, tree.h (build_index_2_type): New function, like build_index_type except it accepts the low value as an arg instead of assuming 0.Mon Dec 31 08:09:10 1990 Michael Tiemann (tiemann at cygnus.com) * cplus-typeck.c (c_expand_return): Handle case when we try to return a void value (such as a void function call) in a function returning void, and there are cleanups to run.Sun Dec 30 21:08:32 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * tm-a29k.h (TARGET_VERSION): Can't use target_flags since we can be called from gcc.c.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -