re PR rtl-optimization/23117 (ICE on valid code while building libgcc)

Richard Earnshaw  <richard.earnshaw@arm.com>
Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/23117
	* sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
	when head == tail.  Tidy comment.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r102551
This commit is contained in:
Richard Earnshaw 2005-07-29 09:32:14 +00:00 committed by Richard Earnshaw
parent 37cf61167f
commit abf86bf227
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2005-07-29 Richard Earnshaw <richard.earnshaw@arm.com>
Steven Bosscher <stevenb@suse.de>
PR rtl-optimization/23117
* sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
when head == tail. Tidy comment.
2005-07-28 Richard Henderson <rth@redhat.com>
* cse.c (exp_equiv_p): Special case CONST_DOUBLE.

View File

@ -1954,9 +1954,9 @@ add_branch_dependences (rtx head, rtx tail)
T = [addr]
C ? addr += 4
!C ? X += 12
!C ? X += 12
C ? T += 1
C ? jump foo
C ? jump foo
On a target with a one cycle stall on a memory access the optimal
sequence would be:
@ -1977,17 +1977,17 @@ add_branch_dependences (rtx head, rtx tail)
if (!reload_completed || ! JUMP_P (tail))
return;
insn = PREV_INSN (tail);
insn = tail;
while (insn != head)
{
insn = PREV_INSN (insn);
/* Note that we want to add this dependency even when
sched_insns_conditions_mutex_p returns true. The whole point
is that we _want_ this dependency, even if these insns really
are independent. */
if (INSN_P (insn) && GET_CODE (PATTERN (insn)) == COND_EXEC)
add_dependence (tail, insn, REG_DEP_ANTI);
insn = PREV_INSN (insn);
}
#endif
}