re PR middle-end/43631 (var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in...
authorSteven Bosscher <steven@gcc.gnu.org>
Tue, 16 Apr 2013 06:24:47 +0000 (06:24 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Tue, 16 Apr 2013 06:24:47 +0000 (06:24 +0000)
commit96fba5210e819b3354e8ca8d99c1b13e417277d8
treee33803d286079623c109356f39eb59a4ec4cadeb
parent996943bea7a61c5583bf504b31d600b11159b6ed
re PR middle-end/43631 (var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks)

PR middle-end/43631
* emit-rtl.c (make_note_raw): New function.
(link_insn_into_chain): New static inline function.
(add_insn): Use it.
(add_insn_before, add_insn_after): Factor insn chain linking code...
(add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
using link_insn_into_chain.
(note_outside_basic_block_p): New helper function for emit_note_after
and emit_note_before.
(emit_note_after): Use nobb variant of add_insn_after if the note
should not be contained in a basic block.
(emit_note_before): Use nobb variant of add_insn_before if the note
should not be contained in a basic block.
(emit_note_copy): Use make_note_raw.
(emit_note): Likewise.
* bb-reorder.c (insert_section_boundary_note): Remove hack to set
BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
* jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
the moved barrier the tail of the basic block it follows.
* var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.

From-SVN: r197994
gcc/ChangeLog
gcc/bb-reorder.c
gcc/emit-rtl.c
gcc/jump.c
gcc/var-tracking.c