aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1998-04-16 15:42:19 -0600
committerJeff Law <law@gcc.gnu.org>1998-04-16 15:42:19 -0600
commit3522e0f2c7c1270b7085698011c8ae61e2f29c4d (patch)
tree8b18182bceb540d42ab64ae00ab4a94b69a5d488 /gcc
parent74c5186c2aa6e5c6ca25206ecc949ec6bec62e1c (diff)
downloadgcc-3522e0f2c7c1270b7085698011c8ae61e2f29c4d.zip
gcc-3522e0f2c7c1270b7085698011c8ae61e2f29c4d.tar.gz
gcc-3522e0f2c7c1270b7085698011c8ae61e2f29c4d.tar.bz2
flow.c (dump_sbitmap, [...]): New debugging functions.
8 * flow.c (dump_sbitmap, dump_sbitmap_vector): New debugging functions. * basic-block.h: Declare them. From-SVN: r19242
Diffstat (limited to 'gcc')
-rw-r--r--gcc/basic-block.h3
-rw-r--r--gcc/flow.c40
2 files changed, 43 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 01a682e..048cbde 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -190,6 +190,9 @@ extern int *uid_block_number;
extern void compute_preds_succs PROTO ((int_list_ptr *, int_list_ptr *,
int *, int *));
extern void dump_bb_data PROTO ((FILE *, int_list_ptr *, int_list_ptr *));
+extern void dump_sbitmap PROTO ((FILE *, sbitmap));
+extern void dump_sbitmap_vector PROTO ((FILE *, char *, char *,
+ sbitmap *, int));
extern void free_bb_mem PROTO ((void));
extern void free_basic_block_vars PROTO ((int));
diff --git a/gcc/flow.c b/gcc/flow.c
index 5794070..8e4da8c 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3416,6 +3416,46 @@ dump_bb_data (file, preds, succs)
fprintf (file, "\n");
}
+void
+dump_sbitmap (file, bmap)
+ FILE *file;
+ sbitmap bmap;
+{
+ int i,j,n;
+ int set_size = bmap->size;
+ int total_bits = bmap->n_bits;
+
+ fprintf (file, " ");
+ for (i = n = 0; i < set_size && n < total_bits; i++)
+ {
+ for (j = 0; j < SBITMAP_ELT_BITS && n < total_bits; j++, n++)
+ {
+ if (n != 0 && n % 10 == 0)
+ fprintf (file, " ");
+ fprintf (file, "%d", (bmap->elms[i] & (1L << j)) != 0);
+ }
+ }
+ fprintf (file, "\n");
+}
+
+void
+dump_sbitmap_vector (file, title, subtitle, bmaps, n_maps)
+ FILE *file;
+ char *title, *subtitle;
+ sbitmap *bmaps;
+ int n_maps;
+{
+ int bb;
+
+ fprintf (file, "%s\n", title);
+ for (bb = 0; bb < n_maps; bb++)
+ {
+ fprintf (file, "%s %d\n", subtitle, bb);
+ dump_sbitmap (file, bmaps[bb]);
+ }
+ fprintf (file, "\n");
+}
+
/* Free basic block data storage. */
void