mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 15:11:08 +08:00
jump.c (jump_optimize_1): Do not delete assignments to internal_arg_pointer.
* jump.c (jump_optimize_1): Do not delete assignments to internal_arg_pointer. * cse.c (delete_trivially_dead_insns): Always consider a set of the internal_arg_pointer live. From-SVN: r28957
This commit is contained in:
parent
27778b739c
commit
af37f0dda9
@ -1,3 +1,10 @@
|
||||
Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* jump.c (jump_optimize_1): Do not delete assignments to
|
||||
internal_arg_pointer.
|
||||
* cse.c (delete_trivially_dead_insns): Always consider a set of
|
||||
the internal_arg_pointer live.
|
||||
|
||||
Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
|
||||
|
@ -9215,7 +9215,13 @@ delete_trivially_dead_insns (insns, nreg)
|
||||
else if (GET_CODE (SET_DEST (elt)) != REG
|
||||
|| REGNO (SET_DEST (elt)) < FIRST_PSEUDO_REGISTER
|
||||
|| counts[REGNO (SET_DEST (elt))] != 0
|
||||
|| side_effects_p (SET_SRC (elt)))
|
||||
|| side_effects_p (SET_SRC (elt))
|
||||
/* An ADDRESSOF expression can turn into a use of the
|
||||
internal arg pointer, so always consider the
|
||||
internal arg pointer live. If it is truly dead,
|
||||
flow will delete the initializing insn. */
|
||||
|| (SET_DEST (elt)
|
||||
== current_function_internal_arg_pointer))
|
||||
live_insn = 1;
|
||||
}
|
||||
else if (GET_CODE (elt) != CLOBBER && GET_CODE (elt) != USE)
|
||||
|
@ -290,7 +290,12 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only)
|
||||
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))
|
||||
&& ! 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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user