Commit 11222b61 by Jim Wilson

(sched_analyze_2): Remove an explicit dependence between an insn that uses CC0…

(sched_analyze_2): Remove an explicit dependence between an insn that uses CC0 and the immediately previous insn.

(sched_analyze_2): Remove an explicit dependence between an insn
that uses CC0 and the immediately previous insn.
(SCHED_GROUP_P represents the dependence.)
(schedule_block): Only check sets_cc0_p on an insn.

From-SVN: r2010
parent 4ecc65ac
...@@ -1717,12 +1717,16 @@ sched_analyze_2 (x, insn) ...@@ -1717,12 +1717,16 @@ sched_analyze_2 (x, insn)
/* Make a copy of all dependencies on the immediately previous insn, /* Make a copy of all dependencies on the immediately previous insn,
and add to this insn. This is so that all the dependencies will and add to this insn. This is so that all the dependencies will
apply to the group. */ apply to the group. Remove an explicit dependence on this insn
as SCHED_GROUP_P now represents it. */
prev = PREV_INSN (insn); prev = PREV_INSN (insn);
while (GET_CODE (prev) == NOTE) while (GET_CODE (prev) == NOTE)
prev = PREV_INSN (prev); prev = PREV_INSN (prev);
if (find_insn_list (prev, LOG_LINKS (insn)))
remove_dependence (insn, prev);
for (link = LOG_LINKS (prev); link; link = XEXP (link, 1)) for (link = LOG_LINKS (prev); link; link = XEXP (link, 1))
add_dependence (insn, XEXP (link, 0), GET_MODE (link)); add_dependence (insn, XEXP (link, 0), GET_MODE (link));
...@@ -2933,10 +2937,12 @@ schedule_block (b, file) ...@@ -2933,10 +2937,12 @@ schedule_block (b, file)
at the end because they can't be moved away from their cc0 user. */ at the end because they can't be moved away from their cc0 user. */
last = 0; last = 0;
while (GET_CODE (insn) == CALL_INSN || GET_CODE (insn) == JUMP_INSN while (GET_CODE (insn) == CALL_INSN || GET_CODE (insn) == JUMP_INSN
|| (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == USE) || (GET_CODE (insn) == INSN
&& (GET_CODE (PATTERN (insn)) == USE
#ifdef HAVE_cc0 #ifdef HAVE_cc0
|| sets_cc0_p (PATTERN (insn)) || sets_cc0_p (PATTERN (insn))
#endif #endif
))
|| GET_CODE (insn) == NOTE) || GET_CODE (insn) == NOTE)
{ {
if (GET_CODE (insn) != NOTE) if (GET_CODE (insn) != NOTE)
......
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