Commit be202ec2 by Franz Sirl Committed by Franz Sirl

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