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:
parent
112903088c
commit
8a829274db
@ -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>
|
||||
|
||||
PR rtl-optimization/60901
|
||||
|
@ -425,7 +425,8 @@ try_forward_edges (int mode, basic_block b)
|
||||
for (ei = ei_start (b->succs); (e = ei_safe_edge (ei)); )
|
||||
{
|
||||
basic_block target, first;
|
||||
int counter, goto_locus;
|
||||
location_t goto_locus;
|
||||
int counter;
|
||||
bool threaded = false;
|
||||
int nthreaded_edges = 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
|
||||
blocks with different locus are not optimized out. */
|
||||
int new_locus = single_succ_edge (target)->goto_locus;
|
||||
int locus = goto_locus;
|
||||
location_t new_locus = single_succ_edge (target)->goto_locus;
|
||||
location_t locus = goto_locus;
|
||||
|
||||
if (new_locus != UNKNOWN_LOCATION
|
||||
&& locus != UNKNOWN_LOCATION
|
||||
|
@ -889,7 +889,7 @@ rtl_merge_blocks (basic_block a, basic_block b)
|
||||
BB_HEAD (b) = b_empty ? NULL_RTX : b_head;
|
||||
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. */
|
||||
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);
|
||||
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. */
|
||||
if (!optimize)
|
||||
emit_nop_for_unique_locus_between (a, b);
|
||||
|
@ -949,7 +949,7 @@ static basic_block
|
||||
emit_to_new_bb_before (rtx seq, rtx insn)
|
||||
{
|
||||
rtx last;
|
||||
basic_block bb, prev_bb;
|
||||
basic_block bb;
|
||||
edge e;
|
||||
edge_iterator ei;
|
||||
|
||||
@ -964,8 +964,7 @@ emit_to_new_bb_before (rtx seq, rtx insn)
|
||||
last = emit_insn_before (seq, insn);
|
||||
if (BARRIER_P (last))
|
||||
last = PREV_INSN (last);
|
||||
prev_bb = BLOCK_FOR_INSN (insn)->prev_bb;
|
||||
bb = create_basic_block (seq, last, prev_bb);
|
||||
bb = create_basic_block (seq, last, BLOCK_FOR_INSN (insn)->prev_bb);
|
||||
update_bb_for_insn (bb);
|
||||
bb->flags |= BB_SUPERBLOCK;
|
||||
return bb;
|
||||
|
Loading…
Reference in New Issue
Block a user