📄 ochangelog
字号:
Wed Dec 21 02:46:34 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * Version 1.32 released. * toplev.c (main): Vax pcc enforces goto-less programming with fatal error. * stmt.c (fixup_memory_subreg): New arg INSN says where to emit insns. (walk_fixup_memory_subreg): Likewise. All callers changed.Tue Dec 20 01:26:56 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (start_function): Don't clear TREE_PERMANENT in fn decl. Make the result decl a permanent node. (finish_function): Don't clear DECL_RESULT in an inline function. (duplicate_decls): Don't lose DECL_RESULT or DECL_SAVED_INSNS or old decl, when defn is followed by redeclaration. Likewise DECL_ARGUMENTS and DECL_RESULT_TYPE. * stmt.c (expand_function_end): End any sequences left unterminated. * cse.c (predecide_loop_entry): If "loop" has no label, do nothing. * recog.c (asm_noperands): Now return -1 if not that kind of insn. All callers changed. * combine.c (check_asm_operands): Calling changes not quite trivial. * final.c (final): Likewise. * reload.c (find_reloads): Likewise. * recog.c (asm_noperands): Other changes: Loop computing # of SETs in a PARALLEL was off by 1. Validate all elts of any PARALLEL, to block invalid combinations. * ns32k.md (andsi3, andhi3): Make new CONST_INTs; don't clobber old. * integrate.c (copy_rtx_and_substitute): When looking in `parm_map', if our mode mismatches parm's mode, use change_address to extract part. On BYTES_BIG_ENDIAN machines, adjust the offset.Mon Dec 19 23:50:14 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * cexp.y ('/' and '%' ops): If divide by 0, print error, don't die.Sun Dec 18 14:03:02 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * toplev.c (main): Avoid shadowing I in inner block. * flow.c (propagate_block): The insn at the end of a libcall may be dead, but the libcall might still be needed if the hard return reg is used later. Detect this case. (libcall_dead_p): New fn used to check that the libcall is dead. * output-m68k.c, tm-m68k.h (standard_sun_fpa_constant_p): Fn renamed.Sat Dec 17 13:23:51 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * stmt.c (expand_end_bindings): error_with_file_and_line => ..._decl. * combine.o (try_combine): Accept combination making a valid asm with operands. (check_asm_operands): Recognize asm with operands that are valid. * loop.c (strength_reduce): Don't accept a reg as a giv if the reg was made by loop-optimize. * stmt.c (balance_case_nodes): A list of 3 always splits in middle.Fri Dec 16 17:22:07 1988 Tiemann (rms at sugar-bombs.ai.mit.edu) * sparc.md (fetch from constant address): Split into two patterns, one fixed point and one floating. (store at constant address): Handle remembered hi-half differently. Other bug fixes. (fix_truncsfsi2): Use f1, not f0, as temp. (fix_truncdfsi2): Don't clear CC_F1_IS_0. * output-sparc.c (singlemove_string): Changed handling of case where op1 is not memory and op0 has varying address. (output_fp_move_double): Avoid reloading high half address in the ldd and std cases with constant address. (make_f0_contain_0): Handle f0 and f1 individually. * tm-sparc.h (GO_IF_LEGITIMATE_ADDRESS): CONST is now illegitimate. * rtl.c (note_stores): Pass entire SET rtx, not flag, as 2nd arg to FN. * local-alloc.c (reg_is_set): New type for 2nd arg. * Makefile: Comment out cc1plus, since not ready for release.Thu Dec 15 16:39:47 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * local-alloc.c (reg_is_set): If a hard reg is clobbered, make it free before and after the insn. * stupid.c (stupid_mark_refs): Likewise. * global-alloc.c (global_conflicts): Likewise. Use note_stores to call mark_reg_{store,clobber}. (mark_reg_store): Changed calling conventions All work done on set/clobbered regs is now done here. Ignore CLOBBERs. (mark_reg_clobber): Similar fn, but ignore SETs and handle CLOBBERs. (regs_set, n_regs_set): New static vars for comm. among the above. * stmt.c (expand_asm_operands): call protect_from_queue on operands. This requires preexpanding the outputs into a vector of rtx's. * Makefile (install): cd to $(libdir) before ranlib. * c-typeck.c (c_expand_asm_operands): emit_queue at the end. * reload.c (find_reloads): Count # alternatives properly for an asm insn, and check that all operands correspond. * loop.c (verify_loop): Reject loops containg setjmps. * cse.c (cse_main): Don't cse across a call to setjmp. * expr.c (expand_expr): Permit any non0 DECL_RTL for a VAR_DECL. * stmt.c (balance_case_nodes): Count ranges double when balancing.Wed Dec 14 13:50:45 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * final.c (output_addr_const): Output just `-', not `+-'. * make-cc1.com: Update filenames changed to `c-'. * make-cccp.com: Pass needed -D options when compiling cccp.c. Use /nomap when linking. * loop.c (strength_reduce): Paraphrase setting NEW_REG, for Iris cc. * output-m68k.c (output_move_const_single): %'s must be doubled twice. * loop.c (record_giv): A giv can be replaceable if its uses are all in the same basic block as its sole setting. (last_use_this_basic_block): Subroutine to test that.Tue Dec 13 13:41:57 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * expr.c (do_store_flag): Allow for COMPARISON to be a const_int. * c-decl.c (pushdecl): Warn if type mismatch with another external decl in a global scope. * fixincludes: Fix typo in msg of deleting unchanged file. * Makefile (insn-*): Use two-step rules with a separate time-stamp file to avoid rerunning gen* unless md has changed again.Mon Dec 12 13:32:05 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * i386.md (tstsf, tstdf, cmpsf, cmpdf): Use fnstsw, not fstsw. Faster. * tm-vax.h (ASM_OUTPUT_REG_POP): Use correct asm syntax for pop insn. * combine.c (subst): Handle (subreg (mem)) by making a changed mem. This avoids producing any (subreg (mem))s except in the special case they are supposed to be made here. Also set undo_storage in a couple of cases that forgot to. * reload.c (push_reload): When handling (SUBREG (MEM)) for IN, if there is an OUT, make that a separate reload. Return its number in `output_reloadnum' (find_reloads): When pushing matching-reloads, note that the two operands can have different reload-numbers. * tm-3b1.h (ASM_OUTPUT_CASE_END): Test flag on TABLE, not its pattern. (ASM_OUTPUT_CASE_LABEL): If /i flag set, don't output the dummy entry since the fetcher-insn will not be off by 2 in this case. * m68k.md (casesi_2 recognizer): For 3b1 syntax, compensate for that.Sun Dec 11 12:51:49 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * genrecog.c (try_merge_2): No longer put all explicit decompositions before all predicates. Patterns are now tested in the order written. * vax.md: Move the push-or-move-address patterns to the end. * m68k.md: Move load-address pattern to end. Rearrange the special-case movsi patterns. * ns32k.md: Move special load-reg-17 pattern before movsi. * i386.md: Move the QI and DI push patterns to logical places. This should not actually change anything. * stmt.c: Add Andy Hitchins's binary-tree case statement code. (struct case_stmt): case_list field is now a case_node chain. Replace has_default field with default_label field. (pushcase, pushcase_range): Build case_list in its new type, and keep it sorted. (expand_end_case): Use case_list in its new type. Count a range of > 1 as two cases, when choosing strategy. (group_case_nodes, balance_case_nodes): New fns, rearrange case_list. (node_has_{low,high}_bound, node_is_bounded): New fns test relationships of values of various case_list tree nodes. (emit_jump_if_reachable): New fn. (emit_case_nodes): Emit compares and jumps based on tree of case_list. * cccp.c (finclude): Handle nonordinary files (stat doesn't give size). * tm-3b1.h (PRINT_OPERAND_ADDRESS): Handle case of breg and no ireg.Sat Dec 10 16:30:32 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * sparc.md (movstrsi): Separate define_expand and define_insn; clobber some pseudos to get temp regs to use in the output. * output-sparc.c (output_block_move): Use those temp regs, guaranteed to be free. * sparc.md (andcc patterns for bitfields from memory): Test immed. arg for being in range. (load DFmode constant): Use %m for output in one case. * output-sparc.c (singlemove_string, output_move_double): Likewise. * output-sparc.c (singlemove_string): New case for mem-to-mem move.Fri Dec 9 11:42:15 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * stupid.c (stupid_mark_refs): for CLOBBER of a pseudo, it is born just before this insn and dies just after. * tm-vax.h (NOTICE_UPDATE_CC): For aob, sob insns, forget the cc's. * basic-block.h (REG_BLOCK_UNKNOWN, REG_BLOCK_GLOBAL): Move defn here. * local-alloc.c: Use them. * c-decl.c (store_parm_decls): Additional explanatory message for some prototype mismatches. * gnulib.c (SItype): New macro used instead of `int' for SImode operands and values. Definition is `long int'.Thu Dec 8 18:45:48 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * reload.c (operands_match_p): Move the label `slow' so that it doesn't cause a REG and a SUBREG to be compared wrong. * toplev.c (compile_file): Output a label `gcc_compiled.' for GDB. If new macro ASM_IDENTIFY_GCC is defined, run that instead. * tm-3b1.h (ASM_IDENTIFY_GCC): Define this as no-op.Wed Dec 7 12:20:42 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * i386.md (adddf3): Typo: paren was in a constraint. * c-decl.c (grokparms): Avoid duplicate msgs for incomplete type ptrs. * gnulib.c: Rename all fns to start with `__'. * optabs.c, expr.c: Rename all references. * gnulib.c (__cmpdi2, __ucmpdi2): New fns. * optabs.c (emit_cmp_insn): Use them. * Makefile (stage*): Ignore errors on the main `mv' (for cc1plus). Run ranlib if we have to copy gnulib. * expmed.c (expand_divmod): Split `label' into several local vars. * jump.c (jump_back_p): Do nothing unless cc's were set from integers.Tue Dec 6 12:00:21 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-parse.y (extend_token_buffer): Use xrealloc, not realloc. * integrate.c (output_inline_function): fix args of expand_function_end (expand_inline_function): Add missing arg to expand_end_bindings. * cse.c (cse_insn): Add missing MODE arg to canon_hash. * reload1.c (reload_as_needed): Del. extra arg of choose_reload_targets (reload): Add missing MODE arg to immediate_operand. * expmed.c (expand_mult): Delete extra arg to expand_unop. * c-typeck.c (default_conversion): Add missing NOCONVERT arg to build_unary_op. * c-decl.c (duplicate_decls, finish_struct): Add missing arg KNOWN_ALIGMENT to layout_decl. * stor-layout.c (layout_record): Likewise. * varasm.c (assemble_variable): Likewise. * dbxout.c (dbxout_init): Add missing LOCAL arg to dbxout_symbol. * expr.c (clear_storage): Remove excess arg to emit_move_insn. * loop.c (consec_sets_invariant_p): Add parens in hairy if-condition. * fold-const.c (fold): Typo, missing `case'. * cccp.c (main): Typo handling `-I-' option. * tm-i386.h (NO_FUNCTION_CSE): Define this; cse is said to slow things down with less than 7 calls. * stmt.c (fixup_var_refs_insn): When scanning the reg-notes, don't touch other insns they point at. * expr.c (do_jump): Use invert_exp, not reverse_condition, to invert sense of a jump. * jump.c reverse_condition now static, invert_exp now global.Mon Dec 5 10:51:39 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * tm-sun386.h (ASM_FILE_START): In the .file arg, exclude directories. * stmt.c (expand_expr_stmt): If -W, warn if stmt has no side effect. * cccp.c (monthnames): Capitalize each name. * rtl.def: New code MATCH_OPERATOR. * genconfig.c (walk_insn_part): Handle it. * genextract.c (walk_rtx): Handle it. * genpeep.c (match_rtx): Handle it. * genrecog.c (add_to_sequence): Handle it. * genemit.c (max_operand_1, gen_exp, gen_expand): Handle it. * genoutput.c (scan_operands): Handle it. (insn_n_alternatives): New array in the output. (struct data): New slots n_alternatives and op_n_alternatives. (scan_operands, gen_insn, gen_peephole): Record op_n_alternatives for each operand. (output_epilogue): Verify that all operands have same # of alternatives Also output insn_n_alternatives. * reload.c (find_reloads): use insn_n_alternatives to control the loop over all alternatives. An empty constraint or empty alternative in a constraint is always satisfied. * recog.c (constrain_operands): Likewise. * c-decl.c (lang_decode_option): For each -f option, recognize a form with `no-' and a form without, as contraries. * toplev.c (main): Decode -f options using a table so that each option automatically has a `no-' variant. * combine.c (try_combine): Give up if I1 or I2 follows a compare insn.Sun Dec 4 12:00:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * varasm.c (data_section): If flag_shared, use SHARED_SECTION_ASM_OP if that is defined.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -