⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelog.3

📁 早期freebsd实现
💻 3
📖 第 1 页 / 共 5 页
字号:
	(init_alias_analysis): Initialize reg_known_value_size.	* loop.c ({unknown,fixed}_aggregate_altered): Deleted.	(loop_store_mems): Replaces loop_store_addrs and loop_store_widths.	(loop_optimize): Call init_alias_analysis.	(prescan_loop, note_addr_stored): Save all MEMs stored into, rather	than just those that appear fixed; save MEMs rather than addresses	and widths.	(invariant_p): Use true_dependence to see if a MEM is invariant;	compare it with all MEMs stored during the loop.	* sched.c (memrefs_conflict_p): If XSIZE or YSIZE is zero	the object conflict if they have the same base, irregardless	of the offsets.	* reorg.c (dbr_schedule): Reallocate unfilled_firstobj after	freeing memory from the obstack.	* reload.c (push_reload): Always reload object inside SUBREG if	STRICT_LOW_PART is present.	Always set RELOAD_STRICT_LOW to zero; maybe we should get rid of it.	* reload.c (make_memloc): Copy the address if it varies to avoid	potential sharing problems.	* global-alloc.c (hard_reg_copy_preferences): New var.	(global_alloc): Allocate and initialze it.	(prune_preferences): Prune it.	(find_reg): Try preferences in hards_reg_copy_preferences first,	then hard_reg_preferences.	(set_preference): Set bit in hard_reg_copy_references, if appropriate.	* emit-rtl.c (try_split): If we are splitting a JUMP_INSN, copy		JUMP_LABEL from the old to new insn update the count of that label.	* cse.c (lookup): Always call exp_equiv_p unless we have a REG.	* cse.c (insert): If we are making a register equivalent to a	constant that was already equivalent to a constant, update	qty_const_insn.	(cse_insn): Don't do it here.	* cse.c (fold_rtx): Always call simplify_unary_operation.	* cse.c (record_jump_equiv): Don't get primary elements for OP0 and	OP1 since they might not be valid.	* loop.c (get_condition): Accept new arg, EARLIEST that is a pointer	to where we place the earliest insn used to form the condition.	Check for comparison with CC0 in main loop, not earlier.	Never return condition involving CC0.	(get_condition_for_loop): Call get_condition with new arg.	* jump.c (jump_optimize): When we make store-flag insn, put new	insns before earliest insn used to form condition and use new	psuedo as target, which we copy into VAR immediately after the insn	that currently sets VAR.	Turn off "if (...) x = 1; else {...} if (x) ..." code; it is not	correct and can't be easily fixed.	(get_label_{before_after}): Use {prev,next}_nonnote_insn.	* jump.c (jump_optimize): Don't interpret NOOP_MOVES as meaning	"after_reload"; check reload_completed instead.  Don't pass NOOP_MOVES	to functions that aren't actually trying to noop moves.	(follow_jumps, tension_vector_labels):  Don't accept AFTER_RELOAD arg;	check reload_completed instead.	* combine.c (try_combine): Don't check that we don't have a	single_set when trying to replace a SET_DEST in a PARALLEL in I2.	(simplify_and_const_int): Always do the AND in the mode passed.	(significant_bits, case DIV and UDIV): Nothing special known	about low-order bits here.	(simplify_shift_const, shift cases): Don't go into infinite loop if	we combine two shifts in the same direction.	* c-parse.y, cplus-parse.y, objc-parse.y (set_yydebug): Move to	end of file so we don't have a reference to yydebug after its	definition; also delete duplicate declaration.Thu Jun 20 09:08:21 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)	* local-alloc.c (block_alloc): Fixed typo in last edit.Wed Jun 19 17:05:52 1991  Jim Wilson  (wilson at wookumz.gnu.ai.mit.edu)	* reload.c (push_reload): Verify reload_in[i] exists before using	GET_CODE on it.	* m88k.md: USE insns must be immediately before CALL_INSNs to work	properly, otherwise sched.c and reorg.c will not associate them will	the CALL.	* unroll.c (calculate_giv_inc): Accept constant increments	represented as a LO_SUM.	* flow.c (mark_used_regs): Don't put a REG_DEAD note on insns that	already have a REG_UNUSED note.  This makes it consistent with	combine.c.	* combine.c (distribute_notes): If a REG_UNUSED reg is no longer	set by an insn, but is still used by the insn, then must convert	the REG_UNUSED note to a REG_DEAD note.	* gcc.c (SIGNED_CHAR_SPEC): Put ifndefs around it, so that it can	be overriden by a definition in the tm.h file.	* cse.c (cse_insn): Add missing third parameter to find_reg_note calls.	* tm-arm.h (INIT_CUMULATIVE_ARGS): Take LIBNAME as third argument.	* combine.c (can_combine_p): Remove extra argument in call to	find_reg_note.	* rtlanal.c (find_regno_note): Verify that the note contains a	REG before checking its REGNO.	* cse.c (canon_reg): Fix spacing/punctuation error.	* recog.c (constrain_operands): Likewise.	* tree.h: Likewise.	* varasm.c (Assemble function): Likewise.Wed Jun 19 13:14:22 1991  Tom Wood  (wood at geech.gnu.ai.mit.edu)	* local-alloc.c (block_alloc): When counting instructions, abort if	a loop is detected.  Improperly threaded insns are easy to produce	when working on the scheduler.Sat Jun 15 06:13:11 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* combine.c (simplify_and_const_int, case ASHIFTRT): Avoid infinite	loop if simplify_shift_const doesn't do anything.Thu Jun 13 09:05:12 1991  Tom Wood  (wood at dg-rtp.dg.com)	* m88k.md (decrement_and_branch_until_zero): Add this insn.	Thu Jun 13 07:32:37 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* explow.c (plus_constant): Fix error in last change; CONST case	wasn't handled correctly.	* tm-m68k.h (CONST_CONSTS): Constants between -7 and -1 are cheap	because of subq.	* m68k.md (dbra): Operand 0 should have '+' constraint, not '='.	* expmed.c (store_fixed_bit_field): Clean up some confusion between	targets and results in expand_binop calls.	* local-alloc.c (optimize_reg_copy): Fix several typos relating to	status updating.	Correctly handle the case where DEST dies before SRC.	Fix some comments that had SRC and DEST backwards.	* combine.c (can_combine_p): Swap order of args of && to avoid	unnecessary calls to use_crosses_set_p.	(simplify_and_const_int, case SUBREG): Make code agree with comment.	* emit-rtl.c (operand_subword): Avoid compilation warning.	* expmed.c (store_fixed_bit_field): Don't use OP0 as SUBTARGET	if it is a MEM and -fforce_mem was specified.	* expmed.c (emit_store_flag): After scc insns, convert to wider	mode using unsigned conversion if STORE_FLAG_VALUE is positive.	* expmed.c (init_expmed): Use mode of size BITS_PER_WORD instead	of SImode.	(store_bit_field, extract_bit_field): Replace references to SImode	with MAXMODE.	(store_fixed_bit_field, extract_fixed_bit_field): Don't use explicit	modes; use get_best_mode instead.	(store_split_bit_field, extract_split_bit_field): Use operand_subword	and mode_for_size instead of making SUBREGs and using SImode.	* stor-layout.c (get_best_mode): Allow LARGEST_MODE to be VOIDmode,	in which case we can use any appropriate mode.Wed Jun 12 16:32:37 1991  Michael Tiemann  (tiemann at pogo.gnu.ai.mit.edu)	* cplus-decl.c (init_decl_processing): Compensate for tm-sparc.h	change to WCHAR_TYPE handling.Wed Jun 12 10:19:13 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)        * tm-sparc.h (WCHAR_TYPE): Must be "short unsigned int".	* combine.c (subst, make_extraction, simplify_shift_const): Don't	change mode of volatile MEM; replaces similar change of June 1st.	* function.c (fixup_var_refs_1, optimize_bit_field): Likewise.	* recog.c (validate_replace_rtx_1): Likewise.Tue Jun 11 22:09:28 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)	* expr.c (expand_expr, case COND_EXPR): Expressions of both the form	X ? A + 1 : A and X ? A : A + 1 were being done, but only the former	was being handled correctly.Tue Jun 11 12:13:53 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* recog.c (validate_replace_rtx_1): If putting a CONST_INT in a	ZERO_EXTEND or SIGN_EXTEND, try to simplify the operation or fail;	the semantics of the operation require a non-VOIDmode argument.	* cse.c (delete_dead_from_cse): Don't delete last insn in a libcall.	* explow.c (allocate_dynamic_stack_space): Don't clobber SIZE when	rounding it.	* fold-const.c (fold, case COND_EXPR): Ensure we always return an	expression in the correct type.	* expr.c (emit_push_insn): Don't need to put X in register if it	is constant; operand_subword_force can do so if needed.	* reload.c (find_reloads): Simplify nested `if' statements.	* recog.c (constrain_operands): Likewise.	* jump.c (mark_jump_label): Fix typo (extra paren) in last change.Tue Jun 11 10:03:08 1991  Micheal Tiemann  (tiemann at pogo.gnu.ai.mit.edu)	* collect2.c: New file.	* sched.c (memrefs_conflict_p): Finish removing ASHIFT case.	* emit-rtl.c (operand_subword): Change test of BITS_PER_WORD <	HOST_BITS_PER_WORD from compile-time to run-time.	* expr.c (emit_push_insn): Ditto.	* recog.c (constrain_operands): Ditto.	* reload.c (find_reloads): Ditto.	* jump.c (jump_optimize): Add `continue' after deleting INSN in case	where further attempts to optimize the insn are invalid.	(mark_jump_label): Don't crash if NEXT == 0.Tue Jun 11 09:14:05 1991  Tom Wood  (wood at dg-rtp.dg.com)	* out-m88k.c (legitimize_operand): New function to convert	CONST_DOUBLE to SFmode when possible.	* m88k.md (cmpdf, adddf3, subdf3, muldf3, divdf3): Use it.	* tm-m88k.h: Declare it.	* xm-m88k.h (OBSTACK_CHUNK_SIZE): For DG/UX at least, the default	value results in a perfect checkerboard.Tue Jun 11 07:23:45 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* expr.c (expand_expr, case FLOAT_EXPR, FIX_EXPR): Don't try to	do any partial conversions here; expand_fix and expand_float now	handle all modes.	* optabs.c (fixtab, fixtrunctab, floattab): Table now contains	all modes.	(can_fix_p, can_float_p): Use mode as index in tables.	(init_fixtab, init_floattab): Likewise.	Add support for QImode and HImode operations.	(expand_float): Rework to remove dependendence on specific modes.	Can only use REAL_VALUE_LDEXP in certain configurations.	(expand_fix): Likewise.	If can't do operation unsigned, or signed into wider mode, emit a	sequence that compares operand with 2**(N-1) and, if larger,	subtracts 2**(N-1), converts, and adds it back.		Protect from queue and force not memory at start.	* m88k.md (fixuns_truncdfsi2, fixuns_truncsfsi2): Deleted; now done	in expand_fix in optabs.c.	* combine.c (expand_field_assignment): Convert SET_SRC to mode of	INNER.	(simplify_shift_const, case ASHIFTRT): Don't use undefined initial	value of MASK.	* explow.c: Include insn-config.h, recog.h, and insn-codes.h.	(allocate_dynamic_stack_space): Rework to be more precise in required	alignment.  Must maintain alignment of stack to STACK_BOUNDARY at	all times (it must not be momentarily misaligned) and must align	returned address to BIGGEST_ALIGNMENT. 	* Makefile.in (explow.o): Show new includes.Tue Jun 11 07:22:54 1991  Matthew Self  (mself at next.com)	* m68k.md:  Change incorrect reference to -m68040-fp to -m68040-only.	Fix several spelling errors.	* m68k.md (fix_trunc*f*i2):  New insn's to replace fintrz on the	'040.  These emit a sequence of insn's to change the rounding mode	to round-to-zero, perform the truncation, and restore the rounding	mode. Mon Jun 10 09:57:31 1991  Michael Tiemann  (tiemann at cygint.cygnus.com)	* c-lang.c (GNU_xref_{begin,end}): Add stub functions for xref info.	* cplus-decl.c (record_builtin_type): Add support for handling	builtin types' nicknames (e.g. "unsigned long" for "long unsigned	int").	* expmed.c (struct algorithm): Change array size from BITS_PER_WORD	to MAX_BITS_PER_WORD.	gcc.texinfo: Document MAX_BITS_PER_WORD.Mon Jun 10 07:45:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* combine.c (try_combine): When making an I1 from an I2 that is	a PARALLEL, give the new I1 the same INSN_UID as I2.	* recog.c (constrain_operands, case 'p'): Pass operand mode	(from match_operand) to strict_memory_address_p.	* m68k.md (andsi3): bclr does not set the condition codes in the	standard way.Sun Jun  9 11:16:24 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)	* reload.c (find_reloads): Swap preferred_class and pref_or_nothing	when we swap commutative operands.	* combine.c (subst, simplify_shift_const): Treat UDIV and MULT	with a second operand of a constant that is a power of two as the	appropriate shift if it feeds or is fed by a shift.	* expmed.c (expand_divmod): When searching for the best mode to	perform the computation, take into account the fact that we sometimes	do a shift, not a divide.	* expmed.c (emit_store_flag): Correctly handle "a = b < 0;" if A	is narrower tha

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -