📄 ochangelog
字号:
Use `emit' to handle a PARALLEL. (FAIL, DONE): Change to fit gen_expand changes. * emit-rtl.c (change_address): abort if arg isn't a MEM. * emit-rtl.c: Sequences work now by saving and restoring first_insn and last_insn. So these variables are used even when in a sequence. emit_to_sequence has been deleted. (start_sequence, end_sequence): Save and restore first_insn, last_insn. (get_last_insn, add_insn): Sequences no longer need special treatment. (delete_insns_since, reorder_insns): likewise. (push_to_sequence): Set up to emit to a given existing insn chain. * emit-rtl.c (copy_rtx_if_shared): Don't copy INSNs. Insert missing return stmt in MEM case (for MEMs ok to share). (unshare_all_rtx): Now can copy the REG_NOTES simply. Copy the LOG_LINKS too. * emit-rtl.c (make_safe_from): Treat SUBREG as X like a REG. (delete_insns_since): Don't lose if FROM is the first insn. (emit): Declare void, since no useful value. Call simplejump_p properly. (restore_reg_data_1): When a reg is an address, do mark_reg_pointer. * dbxout.c (dbxout_types): Call dbxout_symbol to do the work. (dbxout_type_def): Deleted. (dbxout_symbol): Set TREE_ASM_WRITTEN when a TYPE_DECL is output. Don't output the same one twice. * cse.c (fold_cc0): LABEL_REF is not zero. * cse.c (cse_insn): Don't insert src, dest if they are the same place. * cse.c (lookup_as_function): Return entire rtx, not just operand. (cse_insn): Caller changed. Also, copy the result before inserting it. * cse.c (fold_rtx): Put constant arg last if commutative op. Handle idempotents and identities for mult, div, booleans, shifts. * cse.c (canon_hash): Parens were missing around shifts in "rotates". * c-convert.c (convert_to_integer): Truncate TRUTH_ANDIF_EXPR like TRUTH_AND_EXPR; OR also. * c-typeck.c (build_binary_op_nodefault): Do truthvalue_conversion for TRUTH_ANDIF, etc. (build_unary_op): More simplifications for TRUTH_NOT_EXPR; uses new fn `invert_truthvalue'. * recog.c (reg_fits_class_p): New name for reg_renumbered_fits_class_p since it no longer needs to renumber. Also it now really assumes arg is a REG. Callers changed. * reload.c: Callers changed. * recog.c (general_operand): (SUBREG (MEM...)) need not alter mode. (register_operand, nonmemory_operand): (SUBREG (MEM...)) is allowed. (memory_operand): (SUBREG (MEM...)) is *not* allowed. (mode_independent_operand): Operand names were backwards! (No change in effect of this function.) * print-tree.c (dump): Some expr nodes contain rtx's. Print as rtx's.Wed Sep 28 18:51:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * reload1.c (choose_reload_targets): If a reload wanted a group, don't allow a single register for it.Tue Sep 27 11:43:56 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * final.c (output_addr_const): Handle DImode CONST_DOUBLEs. * tm-*.h (PRINT_OPERAND): Treat DImode CONST_DOUBLE like a CONST_INT. * vax.md (rotldi3): Insn deleted; it doesn't really exist. * toplev.c (report_error_function): Also mention the file name, for parallel makes. New arg FILE; all callers changed.Mon Sep 26 15:44:18 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * expmed.c (expand_shift): When using extzv, convert OP1 to SImode. * c-typeck.c (build_binary_op_nodefault): Convert shift-count to int regardless of result type. * output-spur.c (output_move_double): Fix typo, optype0=>optype1. * expr.c (expand_call): Avoid null deref on result of FUNCTION_ARG. * tm-i386.h (FUNCTION_PROFILER): Use correct assembler syntax.Sun Sep 25 12:13:56 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * fixincludes: Handle some files in netdnet, netdna, vaxif, vaxuba. * reload.c (find_reloads): Make no optional reloads if not -O. * loop.c (strength_reduce): Can't eliminate a biv if it's used to compute a DEST_ADDR giv. Only DEST_REG givs are safe. * loop.c (general_induction_var): Shift & divide ops are linear only in 1st operand; don't look for biv or giv in 2nd operand. * vax.md (fix_truncdfqi2): Use `%#'.Sat Sep 24 00:25:48 1988 Richard Stallman (rms at gluteus.ai.mit.edu) * loop.c (n_times_set, n_times_used): Now file-scope; no longer passed as args to several functions. * loop.c (basic_induction_var): Accept reg as source value only if it's invariant. (strength_reduce): Benefit calculation and threshold changed. Check reducibility of givs before trying to reduce them. Check eliminability of biv before considering the givs; let this affect the threshold. (record_giv): New subroutine adds a giv to the chain. * ns32k.md (incrementing sp): Use cmpd insns to increment by 4 or 8. * integrate.c (expand_inline_function): Rename return_label to local_return_label; avoid shadowing.Fri Sep 23 13:57:52 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * loop.c (loop_skip_over): Put the new label after the note that ends the loop. * loop.c: New function strength_reduce and subroutines. * toplev.c: New var flag_strength_reduce, set from -fstrength-reduce. * vax.md (sob insns): They were broken, with plus in one place and minus in another. Use plus consistently. * rtl.h (REG_LIBCALL, REG_NONNEG): Two new kinds of reg-note. * optabs.c (expand_binop, expand_unop): Make REG_LIBCALL notes. * loop.c (scan_loop, move_movables): Move entire library calls. Use m->set_src to get the expression, in case it's from a REG_EQUAL. (consec_sets_invariant_p): Likewise. * loop.c (scan_loop): Start scan from loop_top, if entry is rearranged. Watch out for pseudo regs created by strength_reduce; they can't index regno_last_uid. (replace_regs): # regs mapped is now an arg. * loop.c (count_loop_regs_set): Don't increment n_times_set past 127. (consec_sets_invariant_p): Reject if N_SETS arg is 127. * toplev.c (rest_of_compilation): NREGS arg of loop_optimize deleted. * c-decl.c (store_parm_decls): Anything but an IDENTIFIER_NODE in SPECPARMS indicates a parmlist, not an identifier list. (get_parm_info): Use only PARM_DECLs when making the list of arg types. * combine.c (try_distrib): Boolean ops can't distribute through PLUS. MULT can distribute through PLUS and only PLUS.Thu Sep 22 15:57:41 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * jump.c (jump_optimize): uncond jump to a return becomes a return. * integrate.c (copy_parm_decls, copy_decl_tree): Set TREE_USED. Avoid inevitable "unused" warning for these decls. * c-typeck.c (comptypes): When comparing array types, ignore qualifiers of element type. * tm-*.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Define new macros. * final.c (final_start_function): Use them to protect around the call to the profiling function. * stmt.c (expand_function_start): Set current_function_needs_context and current_function_returns_struct. * stmt.c (expand_null_return_1): If clear_pending_stack_adjust doesn't clear it, do the adjust now. * expr.c (clear_pending_stack_adjust): No-op if -finline-functions. * cccp.c (macarg1, skip_if_group): Backslash makes next char ordinary. * reload.c (find_reloads): Delete code to look for an equiv reg for a reg being input-reloaded. This isn't safe. * reload1.c (choose_reload_targets): Do it here.Wed Sep 21 00:36:22 1988 Richard Stallman (rms at hobbes.ai.mit.edu) * tm-sun3.h (CPP_SPEC): Define it based on TARGET_DEFAULT. (STARTFILE_SPEC): Likewise. * reload1.c (choose_reload_targets): When redirecting prev insn into this insn's reload-reg, check this doesn't break the prev insn by giving it a reg it can't accept. Use new fn constraint_all_regs_p. * tm-sparc.h (ASM_OUTPUT_LOCAL): Use .reserve, not .common. * tree.h (TREE_USED): New attribute macro. * c-parse.y (primary): Set TREE_USED in ..._DECL nodes. * toplev.c, flags.h: Define and set warn_unused. * stmt.c (expand_end_bindings): Warn if any var is unused. * print-tree.c (prtypeinfo): Print this attribute.Tue Sep 20 15:29:01 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * assert.h: `assert' must expand to an expression. Error message should show arg before expansion, not after. * c-decl.c (implicitly_declare): Make decl perm if !warn_implicit since start_function needs to look inside it in that case. * toplev.c (announce_function): If we don't print, don't record we did.Mon Sep 19 15:21:11 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-parse.y (structsp): If pedantic, warn if comma at end of enumlist. * reload.c (find_reloads): Check insn_code_number >= 0 when looking in insn_operand_strict_low. * tm-sun[23].h (CPP_SPEC): Rename __HAVE_FPU__ to __HAVE_68881__ and put a space after that option.Sun Sep 18 01:12:56 1988 Richard Stallman (rms at hobbes.ai.mit.edu) * reload.c (find_reloads): Make optional reloads for explicit MEMs. * tm-m68k.h (MODES_TIEABLE_P): If no 68881, can tie fixed to floating. * m68k.md (movdi): Allow F's (can be DImode now). Don't allow f-regs (experiment). Don't preference x-regs. (DImode push): Allow y-regs. (DFmode push): Allow y-regs, not x-regs. * reload1.c (modes_equiv_for_class_p): New function. (reload): Compare multiple modes for reg group with that function. Allows differing modes in some cases when not tieable. * c-parse.y (check_newline): Let ASM_OUTPUT_IDENT override .ident. * tm-3b1.h (ASM_OUTPUT_IDENT): Define this as no-op. * emit-rtl.c (reorder_insns): Update sequence_{first,last}_insn if nec. (get_last_insn): If in a sequence, return last insn of sequence. (delete_insns_since): If in a sequence, set sequence_last_insn. * spur.md (CONST_DOUBLE load insn): Use & for most dests. (cond branches): pass additional args to output_compare. (movdf, movdi): Use & loading reg from mem. (trunc*): Enable these. (add): New pattern for adding large immediate operand. (shifts): A define_expand for each kind of shift, plus a recognizer which outputs repeated insns if necessary. (call*): Use r9 as temp, not r2. * output-spur.c (output_compare): New args NEG_{EXCHANGE_,}OPCODE. (singlemove_string): Handle reg as operand 1. (output_add_large_offset): Fake add insn with large immediate arg. (big_immediate_operand): Match such an arg. * tm-spur.h (FUNCTION_PROLOGUE): Align the stack pointer. Handle bigger frames. (TARGET_LONG_JUMP, TARGET_EXPAND_SHIFT): New target flags. * va-spur.h: Track position in regs and stack separately. * c-decl.c (duplicate_decls): Warn if prototype follows non-prototype definition.Sat Sep 17 14:30:23 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * expr.c (expand_builtin): Avoid crash if arg isn't integer type. * c-decl.c (duplicate_decls): Just warn if redeclaring a builtin, and leave it built in unless it is redefined. * vax.md (ashlsi3): Use addl3, moval or movad when useful. (addsi3): Avoid pushab, movab for constants < 64. Do use movab when > 64 when operands match. (mov*i): Use mcom* rather than mneg*. Use add*3 with two quick immediate args when useful. (movhi): Don't use movzbw or cvtbw; said to be slow. * rtl.h: New macros MEM_VOLATILE_P, MEM_IN_STRUCT_P, INSN_DELETED_P, REG_USER_VAR_P, RTX_UNCHANGING_P, RTX_INTEGRATED_P, CONSTANT_POOL_ADDRESS_P. Most places changed to use them.Fri Sep 16 11:50:15 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * jump.c (jump_optimize): Was testing volatil on non-MEMs erroneously when looking for no-op move insns. * cccp.c (handle_directive): Ignore comments between # and directive. * integrate.c (copy_rtx_and_substitute): Stack-push memrefs need to be copied. * tm-bsd386.h (ASM_OUTPUT_DOUBLE): Undef previous def. * reload1.c (alter_reg): Don't reuse spill_stack_slot if it isn't big enough for this reg's mode. * expr.c (emit_move_insn): After force_const_mem, ensure mem address is valid. (move_block_to_reg, move_block_from_reg): Likewise. * expr.c (expand_call): Spurious TREE_VALUE on args[i].tree_value. * m68k.md (zero_extend*): Require register_operand for operand 0. * stdarg.h (va_start): Alternate defn for sparc.Thu Sep 15 11:39:06 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-parse.y (yylex): When atof gives ERANGE, check for "0.0", etc. * assert.h (__assert): Alternative definition for -traditional. * output-sparc.c (output_block_move): Initialize xoperands. * combine.c (try_combine): Never subst for a reg that is incremented. * m68k.md (cmpm pattern): Make the match_operands match memrefs and check that they are pushes in the extra condition. This makes reloading handle the pushes properly. * expr.c (MOVE_RATIO): Make it 15. Allow overriding it.Wed Sep 14 09:50:08 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (build_enumerator): Use saveable_tree_cons. * vax.md (movdf): Use movq when safe. * Version 1.28 released. * tm-sparc.h (FIRST_PARM_CALLER_OFFSET): Defined.Tue Sep 13 00:11:37 1988 Richard
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -