[SFN] debug markers before labels no more
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 20 Dec 2017 14:48:34 +0000 (14:48 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 20 Dec 2017 14:48:34 +0000 (14:48 +0000)
commit67a8d7199fe4e474f7bd565161fa2f27d59969fc
tree6093bd1b061517b897df00a25e329bbff6c51b48
parent8a91d5455313fb3c4fc07935d848921012cb297f
[SFN] debug markers before labels no more

Make sure that gimple and RTL IRs don't have debug markers before
labels.  When we build the CFG, we move labels before any markers
appearing before them.  Then, make sure we don't mistakenly
reintroduce them.

This reverts some of the complexity that had been brought about by the
initial SFN patches.

for  gcc/ChangeLog

PR bootstrap/83396
* cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
allowed debug stmts before labels.
(expand_gimple_basic_block): Likewise.
* gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
* gimple-iterator.h (gsi_after_labels): Likewise.
* tree-cfgcleanup (remove_forwarder_block): Likewise, but
rename reused variable, and simplify using gsi_move_before.
* tree-ssa-tail-merge.c (find_duplicate): Likewise.
* tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
(gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
(gimple_verify_flow_info, gimple_block_label): Likewise.
(make_blocks): Move debug markers after adjacent labels.
* cfgrtl.c (skip_insns_after_block): Revert SFN changes that
allowed debug insns outside blocks.
* df-scan.c (df_insn_delete): Likewise.
* lra-constraints.c (update_ebb_live_info): Likewise.
* var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
(vt_initialize, delete_vta_debug_insns): Likewise.
(reemit_marker_as_note): Drop BB parm.  Adjust callers.

From-SVN: r255895
gcc/ChangeLog
gcc/cfgexpand.c
gcc/cfgrtl.c
gcc/df-scan.c
gcc/gimple-iterator.c
gcc/gimple-iterator.h
gcc/lra-constraints.c
gcc/tree-cfg.c
gcc/tree-cfgcleanup.c
gcc/tree-ssa-tail-merge.c
gcc/var-tracking.c