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
This commit is contained in:
parent
3dcaf6e0d1
commit
13c502cdd5
@ -1,5 +1,8 @@
|
||||
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
|
||||
general_operand.
|
||||
|
||||
|
11
gcc/loop.c
11
gcc/loop.c
@ -8850,10 +8850,13 @@ load_mems (loop)
|
||||
/* 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
|
||||
sequences for each such label. */
|
||||
if (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)))
|
||||
if (/* If we can't tell where control might go when this
|
||||
JUMP_INSN is executed, we must be conservative. */
|
||||
!JUMP_LABEL (p)
|
||||
|| (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;
|
||||
|
||||
if (!any_condjump_p (p))
|
||||
|
13
gcc/rtl.texi
13
gcc/rtl.texi
@ -2501,14 +2501,15 @@ recorded as a @code{jump_insn}.
|
||||
accessed in the same way and in addition contain a field
|
||||
@code{JUMP_LABEL} which is defined once jump optimization has completed.
|
||||
|
||||
For simple conditional and unconditional jumps, this field contains the
|
||||
@code{code_label} to which this insn will (possibly conditionally)
|
||||
For simple conditional and unconditional jumps, this field contains
|
||||
the @code{code_label} to which this insn will (possibly conditionally)
|
||||
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
|
||||
is to scan the entire body of the insn.
|
||||
labels that the insn refers to; the only way to find the others is to
|
||||
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,
|
||||
they have zero in the @code{JUMP_LABEL} field.
|
||||
Return insns count as jumps, but since they do not refer to any
|
||||
labels, their @code{JUMP_LABEL} is @code{NULL_RTX}.
|
||||
|
||||
@findex call_insn
|
||||
@item call_insn
|
||||
|
Loading…
x
Reference in New Issue
Block a user