Commit d57f1617 by Vladimir Makarov Committed by Vladimir Makarov

re PR target/15653 (Gcc 3.4 ICE on valid code)

2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/15653
	* haifa-sched.c (schedule_block): Finish cycle after issuing asm
	insn.

From-SVN: r82942
parent 322afd16
2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
PR target/15653
* haifa-sched.c (schedule_block): Finish cycle after issuing asm
insn.
2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR web/15263 PR web/15263
......
...@@ -2378,6 +2378,7 @@ schedule_block (int b, int rgn_n_insns) ...@@ -2378,6 +2378,7 @@ schedule_block (int b, int rgn_n_insns)
{ {
rtx insn; rtx insn;
int cost; int cost;
bool asm_p = false;
if (sched_verbose >= 2) if (sched_verbose >= 2)
{ {
...@@ -2435,9 +2436,9 @@ schedule_block (int b, int rgn_n_insns) ...@@ -2435,9 +2436,9 @@ schedule_block (int b, int rgn_n_insns)
memcpy (temp_state, curr_state, dfa_state_size); memcpy (temp_state, curr_state, dfa_state_size);
if (recog_memoized (insn) < 0) if (recog_memoized (insn) < 0)
{ {
if (!first_cycle_insn_p asm_p = (GET_CODE (PATTERN (insn)) == ASM_INPUT
&& (GET_CODE (PATTERN (insn)) == ASM_INPUT || asm_noperands (PATTERN (insn)) >= 0);
|| asm_noperands (PATTERN (insn)) >= 0)) if (!first_cycle_insn_p && asm_p)
/* This is asm insn which is tryed to be issued on the /* This is asm insn which is tryed to be issued on the
cycle not first. Issue it on the next cycle. */ cycle not first. Issue it on the next cycle. */
cost = 1; cost = 1;
...@@ -2552,6 +2553,10 @@ schedule_block (int b, int rgn_n_insns) ...@@ -2552,6 +2553,10 @@ schedule_block (int b, int rgn_n_insns)
can_issue_more--; can_issue_more--;
advance = schedule_insn (insn, &ready, clock_var); advance = schedule_insn (insn, &ready, clock_var);
/* After issuing an asm insn we should start a new cycle. */
if (advance == 0 && asm_p)
advance = 1;
if (advance != 0) if (advance != 0)
break; break;
......
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