Commit 13c502cd by Mark Mitchell Committed by Mark Mitchell

rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.

	* rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
	* loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.

From-SVN: r41424
parent 3dcaf6e0
2001-04-19 Mark Mitchell <mark@codesourcery.com> 2001-04-19 Mark Mitchell <mark@codesourcery.com>
* rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
* loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
* mips.md (reload_outputdi): Require that operand0 be a * mips.md (reload_outputdi): Require that operand0 be a
general_operand. general_operand.
......
...@@ -8850,10 +8850,13 @@ load_mems (loop) ...@@ -8850,10 +8850,13 @@ load_mems (loop)
/* If this is a jump outside of the loop but not right /* If this is a jump outside of the loop but not right
after the end of the loop, we would have to emit new fixup after the end of the loop, we would have to emit new fixup
sequences for each such label. */ sequences for each such label. */
if (JUMP_LABEL (p) != end_label if (/* If we can't tell where control might go when this
&& (INSN_UID (JUMP_LABEL (p)) >= max_uid_for_loop JUMP_INSN is executed, we must be conservative. */
|| INSN_LUID (JUMP_LABEL (p)) < INSN_LUID (loop->start) !JUMP_LABEL (p)
|| INSN_LUID (JUMP_LABEL (p)) > INSN_LUID (loop->end))) || (JUMP_LABEL (p) != end_label
&& (INSN_UID (JUMP_LABEL (p)) >= max_uid_for_loop
|| INSN_LUID (JUMP_LABEL (p)) < INSN_LUID (loop->start)
|| INSN_LUID (JUMP_LABEL (p)) > INSN_LUID (loop->end))))
return; return;
if (!any_condjump_p (p)) if (!any_condjump_p (p))
......
...@@ -2501,14 +2501,15 @@ recorded as a @code{jump_insn}. ...@@ -2501,14 +2501,15 @@ recorded as a @code{jump_insn}.
accessed in the same way and in addition contain a field accessed in the same way and in addition contain a field
@code{JUMP_LABEL} which is defined once jump optimization has completed. @code{JUMP_LABEL} which is defined once jump optimization has completed.
For simple conditional and unconditional jumps, this field contains the For simple conditional and unconditional jumps, this field contains
@code{code_label} to which this insn will (possibly conditionally) the @code{code_label} to which this insn will (possibly conditionally)
branch. In a more complex jump, @code{JUMP_LABEL} records one of the branch. In a more complex jump, @code{JUMP_LABEL} records one of the
labels that the insn refers to; the only way to find the others labels that the insn refers to; the only way to find the others is to
is to scan the entire body of the insn. scan the entire body of the insn. In an @code{addr_vec},
@code{JUMP_LABEL} is @code{NULL_RTX}.
Return insns count as jumps, but since they do not refer to any labels, Return insns count as jumps, but since they do not refer to any
they have zero in the @code{JUMP_LABEL} field. labels, their @code{JUMP_LABEL} is @code{NULL_RTX}.
@findex call_insn @findex call_insn
@item call_insn @item call_insn
......
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