Commit 35bb0780 by John Wehle Committed by John Wehle

jump.c (jump_optimize_1): Don't delete dead stores here.

	* jump.c (jump_optimize_1): Don't delete dead stores here.
	* toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
	prior to running jump optimize before cse2.

From-SVN: r41320
parent 1a5428f7
Fri Apr 13 00:09:22 EDT 2001 John Wehle (john@feith.com)
* jump.c (jump_optimize_1): Don't delete dead stores here.
* toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
prior to running jump optimize before cse2.
2001-04-12 Stan Shebs <shebs@apple.com>
* objc/objc-act.c: Remove all code ifdefed with the never-used
......
......@@ -248,35 +248,6 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan,
if (noop_moves)
delete_noop_moves (f);
/* If we haven't yet gotten to reload and we have just run regscan,
delete any insn that sets a register that isn't used elsewhere.
This helps some of the optimizations below by having less insns
being jumped around. */
if (optimize && ! reload_completed && after_regscan)
for (insn = f; insn; insn = next)
{
rtx set = single_set (insn);
next = NEXT_INSN (insn);
if (set && GET_CODE (SET_DEST (set)) == REG
&& REGNO (SET_DEST (set)) >= FIRST_PSEUDO_REGISTER
&& REGNO_FIRST_UID (REGNO (SET_DEST (set))) == INSN_UID (insn)
/* We use regno_last_note_uid so as not to delete the setting
of a reg that's used in notes. A subsequent optimization
might arrange to use that reg for real. */
&& REGNO_LAST_NOTE_UID (REGNO (SET_DEST (set))) == INSN_UID (insn)
&& ! side_effects_p (SET_SRC (set))
&& ! find_reg_note (insn, REG_RETVAL, 0)
/* An ADDRESSOF expression can turn into a use of the internal arg
pointer, so do not delete the initialization of the internal
arg pointer yet. If it is truly dead, flow will delete the
initializing insn. */
&& SET_DEST (set) != current_function_internal_arg_pointer)
delete_insn (insn);
}
/* Now iterate optimizing jumps until nothing changes over one pass. */
changed = 1;
old_max_reg = max_reg_num ();
......
......@@ -3224,6 +3224,12 @@ rest_of_compilation (decl)
??? Rework to not call reg_scan so often. */
timevar_push (TV_JUMP);
/* The previous call to loop_optimize makes some instructions
trivially dead. We delete those instructions now in the
hope that doing so will make the heuristics in jump work
better and possibly speed up compilation. */
delete_trivially_dead_insns (insns, max_reg_num ());
reg_scan (insns, max_reg_num (), 0);
jump_optimize (insns, !JUMP_CROSS_JUMP,
!JUMP_NOOP_MOVES, JUMP_AFTER_REGSCAN);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment