if (GET_CODE (insn) == JUMP_INSN)
{
- rtx next, u;
+ rtx next;
next = next_nonnote_insn (insn);
if (next && GET_CODE (next) == BARRIER)
schedule_barrier_found = 1;
else
{
+ rtx pending, pending_mem, u;
regset_head tmp;
INIT_REG_SET (&tmp);
});
CLEAR_REG_SET (&tmp);
+
+ pending = deps->pending_write_insns;
+ pending_mem = deps->pending_write_mems;
+ while (pending)
+ {
+ add_dependence (insn, XEXP (pending, 0), REG_DEP_OUTPUT);
+
+ pending = XEXP (pending, 1);
+ pending_mem = XEXP (pending_mem, 1);
+ }
+
+ for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1))
+ add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
}
}
/* Add dependencies if a scheduling barrier was found. */
if (schedule_barrier_found)
{
- rtx u, pending, pending_mem;
+ rtx u;
for (i = 0; i < deps->max_reg; i++)
{
}
flush_pending_lists (deps, insn, 0);
- pending = deps->pending_write_insns;
- pending_mem = deps->pending_write_mems;
- while (pending)
- {
- add_dependence (insn, XEXP (pending, 0), 0);
- pending = XEXP (pending, 1);
- pending_mem = XEXP (pending_mem, 1);
- }
-
- for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1))
- add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
-
reg_pending_sets_all = 1;
}