This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] cfgbuild.c: Remove find_sub_basic_blocks.
- From: Kazu Hirata <kazu at cs dot umass dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 06 Mar 2005 22:14:58 -0500 (EST)
- Subject: [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.