From: Richard Henderson Date: Tue, 13 Jan 1998 21:38:31 +0000 (-0800) Subject: haifa-sched.c (schedule_insns): Correctly remove inter-block dependencies after reload. X-Git-Tag: releases/libf2c-0.5.21~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c995fea1951e649c43de8a41275ce7afbe6af7bc;p=thirdparty%2Fgcc.git haifa-sched.c (schedule_insns): Correctly remove inter-block dependencies after reload. * haifa-sched.c (schedule_insns): Correctly remove inter-block dependencies after reload. From-SVN: r17346 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1a27f2f353ca..1ac803a76218 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Jan 13 22:39:40 1998 Richard Henderson (rth@cygnus.com) + + * haifa-sched.c (schedule_insns): Correctly remove inter-block + dependencies after reload. + Tue Jan 13 22:22:31 1998 Franz Sirl * rs6000/linux.h (CPP_PREDEFINES): Add -D__ELF__. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 02350e1941fa..ec66e77a7639 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -8533,16 +8533,23 @@ schedule_insns (dump_file) for (b = 0; b < n_basic_blocks; b++) for (insn = basic_block_head[b];; insn = NEXT_INSN (insn)) { - rtx link; + rtx link, prev; if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') { - for (link = LOG_LINKS (insn); link; link = XEXP (link, 1)) + prev = NULL_RTX; + link = LOG_LINKS (insn); + while (link) { rtx x = XEXP (link, 0); if (INSN_BLOCK (x) != b) - remove_dependence (insn, x); + { + remove_dependence (insn, x); + link = prev ? XEXP (prev, 1) : LOG_LINKS (insn); + } + else + prev = link, link = XEXP (prev, 1); } }