cfgcleanup.c (try_forward_edges): Use location_t for locations.

* cfgcleanup.c (try_forward_edges): Use location_t for locations.
	* cfgrtl.c (rtl_merge_blocks): Fix comment.
	(cfg_layout_merge_blocks): Likewise.
	* except.c (emit_to_new_bb_before): Remove prev_bb local variable.

From-SVN: r210416
This commit is contained in:
Eric Botcazou 2014-05-14 10:36:23 +00:00 committed by Eric Botcazou
parent 112903088c
commit 8a829274db
4 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
* cfgcleanup.c (try_forward_edges): Use location_t for locations.
* cfgrtl.c (rtl_merge_blocks): Fix comment.
(cfg_layout_merge_blocks): Likewise.
* except.c (emit_to_new_bb_before): Remove prev_bb local variable.
2014-05-14 Andrey Belevantsev <abel@ispras.ru> 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/60901 PR rtl-optimization/60901

View File

@ -425,7 +425,8 @@ try_forward_edges (int mode, basic_block b)
for (ei = ei_start (b->succs); (e = ei_safe_edge (ei)); ) for (ei = ei_start (b->succs); (e = ei_safe_edge (ei)); )
{ {
basic_block target, first; basic_block target, first;
int counter, goto_locus; location_t goto_locus;
int counter;
bool threaded = false; bool threaded = false;
int nthreaded_edges = 0; int nthreaded_edges = 0;
bool may_thread = first_pass || (b->flags & BB_MODIFIED) != 0; bool may_thread = first_pass || (b->flags & BB_MODIFIED) != 0;
@ -477,8 +478,8 @@ try_forward_edges (int mode, basic_block b)
{ {
/* When not optimizing, ensure that edges or forwarder /* When not optimizing, ensure that edges or forwarder
blocks with different locus are not optimized out. */ blocks with different locus are not optimized out. */
int new_locus = single_succ_edge (target)->goto_locus; location_t new_locus = single_succ_edge (target)->goto_locus;
int locus = goto_locus; location_t locus = goto_locus;
if (new_locus != UNKNOWN_LOCATION if (new_locus != UNKNOWN_LOCATION
&& locus != UNKNOWN_LOCATION && locus != UNKNOWN_LOCATION

View File

@ -889,7 +889,7 @@ rtl_merge_blocks (basic_block a, basic_block b)
BB_HEAD (b) = b_empty ? NULL_RTX : b_head; BB_HEAD (b) = b_empty ? NULL_RTX : b_head;
delete_insn_chain (del_first, del_last, true); delete_insn_chain (del_first, del_last, true);
/* When not optimizing CFG and the edge is the only place in RTL which holds /* When not optimizing and the edge is the only place in RTL which holds
some unique locus, emit a nop with that locus in between. */ some unique locus, emit a nop with that locus in between. */
if (!optimize) if (!optimize)
{ {
@ -4564,7 +4564,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
try_redirect_by_replacing_jump (EDGE_SUCC (a, 0), b, true); try_redirect_by_replacing_jump (EDGE_SUCC (a, 0), b, true);
gcc_assert (!JUMP_P (BB_END (a))); gcc_assert (!JUMP_P (BB_END (a)));
/* When not optimizing CFG and the edge is the only place in RTL which holds /* When not optimizing and the edge is the only place in RTL which holds
some unique locus, emit a nop with that locus in between. */ some unique locus, emit a nop with that locus in between. */
if (!optimize) if (!optimize)
emit_nop_for_unique_locus_between (a, b); emit_nop_for_unique_locus_between (a, b);

View File

@ -949,7 +949,7 @@ static basic_block
emit_to_new_bb_before (rtx seq, rtx insn) emit_to_new_bb_before (rtx seq, rtx insn)
{ {
rtx last; rtx last;
basic_block bb, prev_bb; basic_block bb;
edge e; edge e;
edge_iterator ei; edge_iterator ei;
@ -964,8 +964,7 @@ emit_to_new_bb_before (rtx seq, rtx insn)
last = emit_insn_before (seq, insn); last = emit_insn_before (seq, insn);
if (BARRIER_P (last)) if (BARRIER_P (last))
last = PREV_INSN (last); last = PREV_INSN (last);
prev_bb = BLOCK_FOR_INSN (insn)->prev_bb; bb = create_basic_block (seq, last, BLOCK_FOR_INSN (insn)->prev_bb);
bb = create_basic_block (seq, last, prev_bb);
update_bb_for_insn (bb); update_bb_for_insn (bb);
bb->flags |= BB_SUPERBLOCK; bb->flags |= BB_SUPERBLOCK;
return bb; return bb;