This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] cfgbuild.c: Remove find_sub_basic_blocks.


Hi,

Attached is a patch to remove find_sub_basic_blocks as it is unused.

Tested on i686-pc-linux-gnu.  OK to apply?

Kazu Hirata

2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgbuild.c (find_sub_basic_blocks): Remove.
	* basic-block.h: Remove the corresponding prototype.
	* cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
	in comments.
	* doc/cfg.texi: Don't mention find_sub_basic_blocks.

Index: basic-block.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/basic-block.h,v
retrieving revision 1.239
diff -u -d -p -r1.239 basic-block.h
--- basic-block.h	4 Mar 2005 21:35:46 -0000	1.239
+++ basic-block.h	5 Mar 2005 21:35:28 -0000
@@ -768,7 +768,6 @@ extern rtx block_label (basic_block);
 extern bool forwarder_block_p (basic_block);
 extern bool purge_all_dead_edges (int);
 extern bool purge_dead_edges (basic_block);
-extern void find_sub_basic_blocks (basic_block);
 extern void find_many_sub_basic_blocks (sbitmap);
 extern void rtl_make_eh_edge (sbitmap *, basic_block, rtx);
 extern bool can_fallthru (basic_block, basic_block);
Index: cfgbuild.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgbuild.c,v
retrieving revision 1.61
diff -u -d -p -r1.61 cfgbuild.c
--- cfgbuild.c	15 Feb 2005 07:18:23 -0000	1.61
+++ cfgbuild.c	5 Mar 2005 21:35:32 -0000
@@ -28,9 +28,7 @@ Software Foundation, 59 Temple Place - S
 
    Available functionality:
      - CFG construction
-         find_basic_blocks
-     - Local CFG construction
-         find_sub_basic_blocks		 */
+         find_basic_blocks  */
 
 #include "config.h"
 #include "system.h"
@@ -537,7 +535,7 @@ find_basic_blocks (rtx f)
   timevar_pop (TV_CFG);
 }
 
-/* State of basic block as seen by find_sub_basic_blocks.  */
+/* State of basic block as seen by find_many_sub_basic_blocks.  */
 enum state {BLOCK_NEW = 0, BLOCK_ORIGINAL, BLOCK_TO_SPLIT};
 
 #define STATE(BB) (enum state) ((size_t) (BB)->aux)
@@ -771,41 +769,3 @@ find_many_sub_basic_blocks (sbitmap bloc
   FOR_EACH_BB (bb)
     SET_STATE (bb, 0);
 }
-
-/* Like above but for single basic block only.  */
-
-void
-find_sub_basic_blocks (basic_block bb)
-{
-  basic_block min, max, b;
-  basic_block next = bb->next_bb;
-
-  min = bb;
-  find_bb_boundaries (bb);
-  max = next->prev_bb;
-
-  /* Now re-scan and wire in all edges.  This expect simple (conditional)
-     jumps at the end of each new basic blocks.  */
-  make_edges (min, max, 1);
-
-  /* Update branch probabilities.  Expect only (un)conditional jumps
-     to be created with only the forward edges.  */
-  FOR_BB_BETWEEN (b, min, max->next_bb, next_bb)
-    {
-      edge e;
-      edge_iterator ei;
-
-      if (b != min)
-	{
-	  b->count = 0;
-	  b->frequency = 0;
-	  FOR_EACH_EDGE (e, ei, b->preds)
-	    {
-	      b->count += e->count;
-	      b->frequency += EDGE_FREQUENCY (e);
-	    }
-	}
-
-      compute_outgoing_frequencies (b);
-    }
-}
Index: cfgexpand.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgexpand.c,v
retrieving revision 2.34
diff -u -d -p -r2.34 cfgexpand.c
--- cfgexpand.c	3 Mar 2005 16:22:38 -0000	2.34
+++ cfgexpand.c	5 Mar 2005 21:35:32 -0000
@@ -1003,7 +1003,7 @@ expand_gimple_tailcall (basic_block bb, 
 
   /* This is somewhat ugly: the call_expr expander often emits instructions
      after the sibcall (to perform the function return).  These confuse the
-     find_sub_basic_blocks code, so we need to get rid of these.  */
+     find_many_sub_basic_blocks code, so we need to get rid of these.  */
   last = NEXT_INSN (last);
   gcc_assert (BARRIER_P (last));
 
@@ -1088,7 +1088,7 @@ expand_gimple_basic_block (basic_block b
       e->flags &= ~EDGE_EXECUTABLE;
 
       /* At the moment not all abnormal edges match the RTL representation.
-         It is safe to remove them here as find_sub_basic_blocks will
+         It is safe to remove them here as find_many_sub_basic_blocks will
          rediscover them.  In the future we should get this fixed properly.  */
       if (e->flags & EDGE_ABNORMAL)
 	remove_edge (e);
Index: cfgrtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgrtl.c,v
retrieving revision 1.159
diff -u -d -p -r1.159 cfgrtl.c
--- cfgrtl.c	28 Feb 2005 18:18:21 -0000	1.159
+++ cfgrtl.c	5 Mar 2005 21:35:33 -0000
@@ -1684,7 +1684,7 @@ commit_one_edge_insertion (edge e, int w
   else
     gcc_assert (!JUMP_P (last));
 
-  /* Mark the basic block for find_sub_basic_blocks.  */
+  /* Mark the basic block for find_many_sub_basic_blocks.  */
   bb->aux = &bb->aux;
 }
 
Index: doc/cfg.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/cfg.texi,v
retrieving revision 1.11
diff -u -d -p -r1.11 cfg.texi
--- doc/cfg.texi	3 Dec 2004 02:01:35 -0000	1.11
+++ doc/cfg.texi	5 Mar 2005 21:35:45 -0000
@@ -580,14 +580,12 @@ low level functions, such as @code{redir
 chain only.  The CFG hooks defined in @file{cfghooks.h} should provide
 the complete API required for manipulating and maintaining the CFG@.
 
-@findex find_sub_basic_blocks, split_block
+@findex split_block
 It is also possible that a pass has to insert control flow instruction
 into the middle of a basic block, thus creating an entry point in the
 middle of the basic block, which is impossible by definition: The
 block must be split to make sure it only has one entry point, i.e.@: the
-head of the basic block.  In the RTL representation, the
-@code{find_sub_basic_blocks} may be used to split existing basic block
-and add necessary edges.  The CFG hook @code{split_block} may be used
+head of the basic block.  The CFG hook @code{split_block} may be used
 when an instruction in the middle of a basic block has to become the
 target of a jump or branch instruction.
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]