diff options
author | Hans-Peter Nilsson <hp@bitrange.com> | 2004-10-18 01:56:03 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2004-10-18 01:56:03 +0000 |
commit | 0ca541aab9c0266ebb9eaf59d8bfe088739b26f8 (patch) | |
tree | bbebfb96d0d97a29670e84dd15e52b3e6c0e9e7c | |
parent | 7dcb044217de829680851c86142b9976baf97a0b (diff) | |
download | gcc-0ca541aab9c0266ebb9eaf59d8bfe088739b26f8.zip gcc-0ca541aab9c0266ebb9eaf59d8bfe088739b26f8.tar.gz gcc-0ca541aab9c0266ebb9eaf59d8bfe088739b26f8.tar.bz2 |
cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb...
* 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.
From-SVN: r89193
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 5 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 33de7ac..e372e74 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +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 diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 67b55f4..ee0b468 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -2073,7 +2073,10 @@ rtl_verify_flow_info_1 (void) } 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)) diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ec7bec3..d81d71c 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -4057,6 +4057,7 @@ emit_barrier_before (rtx before) rtx insn = rtx_alloc (BARRIER); INSN_UID (insn) = cur_insn_uid++; + BLOCK_FOR_INSN (insn) = NULL; add_insn_before (insn, before); return insn; @@ -4272,6 +4273,7 @@ emit_barrier_after (rtx after) rtx insn = rtx_alloc (BARRIER); INSN_UID (insn) = cur_insn_uid++; + BLOCK_FOR_INSN (insn) = NULL; add_insn_after (insn, after); return insn; @@ -4668,6 +4670,7 @@ emit_barrier (void) { rtx barrier = rtx_alloc (BARRIER); INSN_UID (barrier) = cur_insn_uid++; + BLOCK_FOR_INSN (barrier) = NULL; add_insn (barrier); return barrier; } |