This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/43631] var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks
- From: "tejohnson at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 13 Feb 2014 21:15:38 +0000
- Subject: [Bug middle-end/43631] var-tracking inserts notes with non-NULL BLOCK_FOR_INSN in between basic blocks
- Auto-submitted: auto-generated
- References: <bug-43631-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43631
--- Comment #26 from tejohnson at gcc dot gnu.org ---
Author: tejohnson
Date: Thu Feb 13 21:15:06 2014
New Revision: 207766
URL: http://gcc.gnu.org/viewcvs?rev=207766&root=gcc&view=rev
Log:
2014-02-13 Teresa Johnson <tejohnson@google.com>
For Google b/12971524, backport r197994 to fix PR60141.
2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
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.
Modified:
branches/google/gcc-4_8/gcc/bb-reorder.c
branches/google/gcc-4_8/gcc/emit-rtl.c
branches/google/gcc-4_8/gcc/jump.c
branches/google/gcc-4_8/gcc/var-tracking.c