This removes a useless local variable in emit_to_new_bb_before coming from a 
patch that was later reverted, thus restoring the original code, changes the 
type of locations in try_forward_edges to location_t and fixes inconsistent 
comments I added to rtl_merge_blocks and cfg_layout_merge_blocks.

Tested on x86_64-suse-linux, applied on the mainline as obvious.


2014-05-14  Eric Botcazou  <ebotca...@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.


-- 
Eric Botcazou
Index: except.c
===================================================================
--- except.c	(revision 210410)
+++ except.c	(working copy)
@@ -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;
Index: cfgcleanup.c
===================================================================
--- cfgcleanup.c	(revision 210410)
+++ cfgcleanup.c	(working copy)
@@ -425,7 +425,8 @@ try_forward_edges (int mode, basic_block
   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
 		{
 		  /* 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
Index: cfgrtl.c
===================================================================
--- cfgrtl.c	(revision 210410)
+++ cfgrtl.c	(working copy)
@@ -889,7 +889,7 @@ rtl_merge_blocks (basic_block a, basic_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,
     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);

Reply via email to