rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
2002-06-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE. * sched-deps.c (add_dependence): Likewise. (group_leader): Likewise. * sched-rgn.c (init_ready_list): Likewise. * doc/rtl.texi: Adjust accordingly. From-SVN: r54622
This commit is contained in:
parent
6203ef88a6
commit
be202ec201
5 changed files with 25 additions and 23 deletions
|
@ -1,3 +1,11 @@
|
|||
2002-06-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||
|
||||
* rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
|
||||
* sched-deps.c (add_dependence): Likewise.
|
||||
(group_leader): Likewise.
|
||||
* sched-rgn.c (init_ready_list): Likewise.
|
||||
* doc/rtl.texi: Adjust accordingly.
|
||||
|
||||
2002-06-13 Jeffrey Law <law@redhat.com>
|
||||
|
||||
* gcse.c (delete_null_pointer_checks_1): Inform caller if any
|
||||
|
|
|
@ -614,17 +614,13 @@ anywhere. This does not mean that it is function invariant.
|
|||
Stored in the @code{unchanging} field and printed as @samp{/u}.
|
||||
|
||||
@findex SCHED_GROUP_P
|
||||
@cindex @code{insn} and @samp{/i}
|
||||
@cindex @code{call_insn} and @samp{/i}
|
||||
@cindex @code{jump_insn} and @samp{/i}
|
||||
@cindex @code{code_label} and @samp{/i}
|
||||
@cindex @code{barrier} and @samp{/i}
|
||||
@cindex @code{note} and @samp{/i}
|
||||
@cindex @code{in_struct}, in @code{insn}, @code{jump_insn}, @code{call_insn}, @code{code_label}, @code{barrier}, and @code{note}
|
||||
@cindex @code{insn} and @samp{/s}
|
||||
@cindex @code{call_insn} and @samp{/s}
|
||||
@cindex @code{jump_insn} and @samp{/s}
|
||||
@cindex @code{in_struct}, in @code{insn}, @code{jump_insn} and @code{call_insn}
|
||||
@item SCHED_GROUP_P (@var{x})
|
||||
During instruction scheduling, in an @code{insn}, @code{call_insn},
|
||||
@code{jump_insn}, @code{code_label}, @code{barrier}, or
|
||||
@code{note}, indicates that the
|
||||
During instruction scheduling, in an @code{insn}, @code{call_insn} or
|
||||
@code{jump_insn}, indicates that the
|
||||
previous insn must be scheduled together with this insn. This is used to
|
||||
ensure that certain groups of instructions will not be split up by the
|
||||
instruction scheduling pass, for example, @code{use} insns before
|
||||
|
|
|
@ -161,9 +161,8 @@ struct rtx_def
|
|||
and must not be deleted even if its count is zero.
|
||||
1 in a LABEL_REF if this is a reference to a label outside the
|
||||
current loop.
|
||||
1 in an INSN, JUMP_INSN, CALL_INSN, CODE_LABEL, BARRIER, or NOTE if
|
||||
this insn must be scheduled together with the preceding insn. Valid
|
||||
only within sched.
|
||||
1 in an INSN, JUMP_INSN or CALL_INSN if this insn must be scheduled
|
||||
together with the preceding insn. Valid only within sched.
|
||||
1 in an INSN, JUMP_INSN, or CALL_INSN if insn is in a delay slot and
|
||||
from the target of a branch. Valid from reorg until end of compilation;
|
||||
cleared before used.
|
||||
|
@ -1118,8 +1117,8 @@ do { \
|
|||
/* During sched, 1 if RTX is an insn that must be scheduled together
|
||||
with the preceding insn. */
|
||||
#define SCHED_GROUP_P(RTX) \
|
||||
(RTL_FLAG_CHECK6("SCHED_GROUP_P", (RTX), INSN, JUMP_INSN, CALL_INSN, \
|
||||
CODE_LABEL, BARRIER, NOTE)->in_struct)
|
||||
(RTL_FLAG_CHECK3("SCHED_GROUP_P", (RTX), INSN, JUMP_INSN, CALL_INSN \
|
||||
)->in_struct)
|
||||
|
||||
/* For a SET rtx, SET_DEST is the place that is set
|
||||
and SET_SRC is the value it is set to. */
|
||||
|
|
|
@ -222,8 +222,7 @@ add_dependence (insn, elem, dep_type)
|
|||
setters of the condition codes, so we must skip past notes here.
|
||||
Otherwise, NOTEs are impossible here. */
|
||||
next = next_nonnote_insn (elem);
|
||||
if (next && SCHED_GROUP_P (next)
|
||||
&& GET_CODE (next) != CODE_LABEL)
|
||||
if (next && INSN_P (next) && SCHED_GROUP_P (next))
|
||||
{
|
||||
/* Notes will never intervene here though, so don't bother checking
|
||||
for them. */
|
||||
|
@ -235,8 +234,8 @@ add_dependence (insn, elem, dep_type)
|
|||
|
||||
rtx nnext;
|
||||
while ((nnext = next_nonnote_insn (next)) != NULL
|
||||
&& SCHED_GROUP_P (nnext)
|
||||
&& GET_CODE (nnext) != CODE_LABEL)
|
||||
&& INSN_P (nnext)
|
||||
&& SCHED_GROUP_P (nnext))
|
||||
next = nnext;
|
||||
|
||||
/* Again, don't depend an insn on itself. */
|
||||
|
@ -448,7 +447,7 @@ group_leader (insn)
|
|||
prev = insn;
|
||||
insn = next_nonnote_insn (insn);
|
||||
}
|
||||
while (insn && SCHED_GROUP_P (insn) && (GET_CODE (insn) != CODE_LABEL));
|
||||
while (insn && INSN_P (insn) && SCHED_GROUP_P (insn));
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
|
|
@ -2033,7 +2033,7 @@ init_ready_list (ready)
|
|||
next = NEXT_INSN (insn);
|
||||
|
||||
if (INSN_DEP_COUNT (insn) == 0
|
||||
&& (SCHED_GROUP_P (next) == 0 || ! INSN_P (next)))
|
||||
&& (! INSN_P (next) || SCHED_GROUP_P (next) == 0))
|
||||
ready_add (ready, insn);
|
||||
if (!(SCHED_GROUP_P (insn)))
|
||||
target_n_insns++;
|
||||
|
@ -2079,8 +2079,8 @@ init_ready_list (ready)
|
|||
next = next_nonnote_insn (insn);
|
||||
if (INSN_DEP_COUNT (insn) == 0
|
||||
&& (! next
|
||||
|| SCHED_GROUP_P (next) == 0
|
||||
|| ! INSN_P (next)))
|
||||
|| ! INSN_P (next)
|
||||
|| SCHED_GROUP_P (next) == 0))
|
||||
ready_add (ready, insn);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue