+2004-10-17 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
+ handle barriers in a bb by checking that it points to a NULL bb.
+ * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
+ (emit_barrier_after, emit_barrier): Ditto.
+
2004-10-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/extend.texi (Attribute Syntax): Clarify details of
}
for (x = BB_HEAD (bb); x != NEXT_INSN (BB_END (bb)); x = NEXT_INSN (x))
- if (BLOCK_FOR_INSN (x) != bb)
+ /* We may have a barrier inside a basic block before dead code
+ elimination. They always have a NULL BLOCK_FOR_INSN. */
+ if (BLOCK_FOR_INSN (x) != bb
+ && !(BARRIER_P (x) && BLOCK_FOR_INSN (x) == NULL))
{
debug_rtx (x);
if (! BLOCK_FOR_INSN (x))
rtx insn = rtx_alloc (BARRIER);
INSN_UID (insn) = cur_insn_uid++;
+ BLOCK_FOR_INSN (insn) = NULL;
add_insn_before (insn, before);
return insn;
rtx insn = rtx_alloc (BARRIER);
INSN_UID (insn) = cur_insn_uid++;
+ BLOCK_FOR_INSN (insn) = NULL;
add_insn_after (insn, after);
return insn;
{
rtx barrier = rtx_alloc (BARRIER);
INSN_UID (barrier) = cur_insn_uid++;
+ BLOCK_FOR_INSN (barrier) = NULL;
add_insn (barrier);
return barrier;
}