2000-04-26 Richard Henderson <rth@cygnus.com>
+ * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
+ * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
+
+2000-04-26 Richard Henderson <rth@cygnus.com>
+
* flow.c (propagate_one_insn): Break out from propagate_block.
(init_propagate_block_info): Likewise.
(free_propagate_block_info): Likewise.
generates subregs of a multi-word pseudo, current life analysis will
lose the kill. So we _can_ have a pseudo go live. How irritating.
- BLOCK_FOR_INSN is assumed to be correct.
-
Including PROP_REG_INFO does not properly refresh regs_ever_live
unless the caller resets it to zero. */
Change it to q = p, ...*q..., q = q+size.
Then fall into the usual case. */
rtx insns, temp;
- basic_block bb;
start_sequence ();
emit_move_insn (q, addr);
insns = get_insns ();
end_sequence ();
- bb = BLOCK_FOR_INSN (insn);
- for (temp = insns; temp; temp = NEXT_INSN (temp))
- set_block_for_insn (temp, bb);
+ if (basic_block_for_insn)
+ for (temp = insns; temp; temp = NEXT_INSN (temp))
+ set_block_for_insn (temp, pbi->bb);
/* If we can't make the auto-inc, or can't make the
replacement into Y, exit. There's no point in making
new insn(s) and do the updates. */
emit_insns_before (insns, insn);
- if (BLOCK_FOR_INSN (insn)->head == insn)
- BLOCK_FOR_INSN (insn)->head = insns;
+ if (pbi->bb->head == insn)
+ pbi->bb->head = insns;
/* INCR will become a NOTE and INSN won't contain a
use of ADDR. If a use of ADDR was just placed in
rtx insns = get_insns ();
/* We need up-to-date life information. */
- compute_bb_for_insn (get_max_uid ());
life_analysis (insns, NULL, PROP_KILL_DEAD_CODE | PROP_SCAN_DEAD_CODE);
/* Figure out which regs in copies and phi nodes don't conflict and