diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-08-31 18:26:25 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-08-31 18:26:25 -0700 |
commit | 11222b61f1ba16a1fd82acb2741eb989118d4ebd (patch) | |
tree | 3c17a16b63f2f8f507742243b87858924deaba6e /gcc/sched.c | |
parent | 4ecc65ac4eb85f3e2864b966b54176758612eddb (diff) | |
download | gcc-11222b61f1ba16a1fd82acb2741eb989118d4ebd.zip gcc-11222b61f1ba16a1fd82acb2741eb989118d4ebd.tar.gz gcc-11222b61f1ba16a1fd82acb2741eb989118d4ebd.tar.bz2 |
(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
Diffstat (limited to 'gcc/sched.c')
-rw-r--r-- | gcc/sched.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/sched.c b/gcc/sched.c index 1a1fe73..e984210 100644 --- a/gcc/sched.c +++ b/gcc/sched.c @@ -1717,12 +1717,16 @@ sched_analyze_2 (x, 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 - 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); while (GET_CODE (prev) == NOTE) 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)) add_dependence (insn, XEXP (link, 0), GET_MODE (link)); @@ -2933,10 +2937,12 @@ schedule_block (b, file) at the end because they can't be moved away from their cc0 user. */ last = 0; 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 - || sets_cc0_p (PATTERN (insn)) + || sets_cc0_p (PATTERN (insn)) #endif + )) || GET_CODE (insn) == NOTE) { if (GET_CODE (insn) != NOTE) |