aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@redhat.com>2001-06-22 22:20:42 +0000
committerDiego Novillo <dnovillo@gcc.gnu.org>2001-06-22 18:20:42 -0400
commit316dcdf6830c4b8c662035fce49096f9ac81ee24 (patch)
tree6a6c46aab4b02ff1686a4500b33664db8735565c
parent1b28186a60548d3e4eb6db9cbe5c7bbae0bd47e3 (diff)
downloadgcc-316dcdf6830c4b8c662035fce49096f9ac81ee24.zip
gcc-316dcdf6830c4b8c662035fce49096f9ac81ee24.tar.gz
gcc-316dcdf6830c4b8c662035fce49096f9ac81ee24.tar.bz2
basic-block.h (dump_edge_info): Declare.
2001-06-22 Diego Novillo <dnovillo@redhat.com> * basic-block.h (dump_edge_info): Declare. (clear_edges): Declare. (mark_critical_edges): Declare. * flow.c (dump_edge_info): Remove static declaration. (clear_edges): Ditto. (mark_critical_edges): Ditto. (free_basic_block_vars): Only clear edges and free basic block array if basic_block_info is not NULL. * ssa.c (compute_dominance_frontiers): Remove static declaration. * ssa.h (compute_dominance_frontiers): Declare. From-SVN: r43518
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/basic-block.h3
-rw-r--r--gcc/flow.c16
-rw-r--r--gcc/ssa.c4
-rw-r--r--gcc/ssa.h1
5 files changed, 26 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 323b21b..057efe4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2001-06-22 Diego Novillo <dnovillo@redhat.com>
+
+ * basic-block.h (dump_edge_info): Declare.
+ (clear_edges): Declare.
+ (mark_critical_edges): Declare.
+ * flow.c (dump_edge_info): Remove static declaration.
+ (clear_edges): Ditto.
+ (mark_critical_edges): Ditto.
+ (free_basic_block_vars): Only clear edges and free basic block
+ array if basic_block_info is not NULL.
+ * ssa.c (compute_dominance_frontiers): Remove static declaration.
+ * ssa.h (compute_dominance_frontiers): Declare.
+
2001-06-22 Toshiyasu Morita (toshiyasu.morita@hsa.hitachi.com)
* predict.c: (expected_value_to_br_prob): Check for const_true_rtx
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index c41ee32..515d222 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -290,6 +290,9 @@ extern int flow_delete_block PARAMS ((basic_block));
extern void merge_blocks_nomove PARAMS ((basic_block, basic_block));
extern void tidy_fallthru_edge PARAMS ((edge, basic_block,
basic_block));
+extern void dump_edge_info PARAMS ((FILE *, edge, int));
+extern void clear_edges PARAMS ((void));
+extern void mark_critical_edges PARAMS ((void));
/* Structure to hold information for each natural loop. */
struct loop
diff --git a/gcc/flow.c b/gcc/flow.c
index b3d4327..2d7ee80 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -364,12 +364,10 @@ typedef struct depth_first_search_dsS *depth_first_search_ds;
static int count_basic_blocks PARAMS ((rtx));
static void find_basic_blocks_1 PARAMS ((rtx));
static rtx find_label_refs PARAMS ((rtx, rtx));
-static void clear_edges PARAMS ((void));
static void make_edges PARAMS ((rtx));
static void make_label_edge PARAMS ((sbitmap *, basic_block,
rtx, int));
static void make_eh_edge PARAMS ((sbitmap *, basic_block, rtx));
-static void mark_critical_edges PARAMS ((void));
static void commit_one_edge_insertion PARAMS ((edge));
@@ -434,7 +432,6 @@ static void mark_used_regs PARAMS ((struct propagate_block_info *,
rtx, rtx, rtx));
void dump_flow_info PARAMS ((FILE *));
void debug_flow_info PARAMS ((void));
-static void dump_edge_info PARAMS ((FILE *, edge, int));
static void print_rtl_and_abort_fcn PARAMS ((const char *, int,
const char *))
ATTRIBUTE_NORETURN;
@@ -1118,7 +1115,7 @@ compute_bb_for_insn (max)
/* Free the memory associated with the edge structures. */
-static void
+void
clear_edges ()
{
int i;
@@ -1432,7 +1429,7 @@ make_eh_edge (edge_cache, src, insn)
/* Identify critical edges and set the bits appropriately. */
-static void
+void
mark_critical_edges ()
{
int i, n = n_basic_blocks;
@@ -3094,8 +3091,11 @@ free_basic_block_vars (keep_head_end_p)
if (! keep_head_end_p)
{
- clear_edges ();
- VARRAY_FREE (basic_block_info);
+ if (basic_block_info)
+ {
+ clear_edges ();
+ VARRAY_FREE (basic_block_info);
+ }
n_basic_blocks = 0;
ENTRY_BLOCK_PTR->aux = NULL;
@@ -6390,7 +6390,7 @@ debug_flow_info ()
dump_flow_info (stderr);
}
-static void
+void
dump_edge_info (file, e, do_succ)
FILE *file;
edge e;
diff --git a/gcc/ssa.c b/gcc/ssa.c
index 3bb1dff..97e259b 100644
--- a/gcc/ssa.c
+++ b/gcc/ssa.c
@@ -166,8 +166,6 @@ static rtx first_insn_after_basic_block_note
PARAMS ((basic_block));
static void compute_dominance_frontiers_1
PARAMS ((sbitmap *frontiers, int *idom, int bb, sbitmap done));
-static void compute_dominance_frontiers
- PARAMS ((sbitmap *frontiers, int *idom));
static void find_evaluations_1
PARAMS ((rtx dest, rtx set, void *data));
static void find_evaluations
@@ -558,7 +556,7 @@ compute_dominance_frontiers_1 (frontiers, idom, bb, done)
}
}
-static void
+void
compute_dominance_frontiers (frontiers, idom)
sbitmap *frontiers;
int *idom;
diff --git a/gcc/ssa.h b/gcc/ssa.h
index 5095319..5eb9785 100644
--- a/gcc/ssa.h
+++ b/gcc/ssa.h
@@ -27,6 +27,7 @@ typedef int (*successor_phi_fn) PARAMS ((rtx, int, int, void *));
extern int for_each_successor_phi PARAMS ((basic_block bb,
successor_phi_fn,
void *));
+void compute_dominance_frontiers PARAMS ((sbitmap *frontiers, int *idom));
extern int remove_phi_alternative PARAMS ((rtx, basic_block));