projects
/
bison.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* doc/bison.texinfo: minor typo fixes
[bison.git]
/
lib
/
bitset_stats.c
diff --git
a/lib/bitset_stats.c
b/lib/bitset_stats.c
index b14fbc3ccee2c601ec3701826e3fdf8233dd33d7..70acd977de0b1342c7ec0d9819737bbecff18b31 100644
(file)
--- a/
lib/bitset_stats.c
+++ b/
lib/bitset_stats.c
@@
-1,5
+1,5
@@
/* Bitset statistics.
/* Bitset statistics.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002
, 2003, 2004
Free Software Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
This program is free software; you can redistribute it and/or modify
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
This program is free software; you can redistribute it and/or modify
@@
-33,6
+33,7
@@
#include "abitset.h"
#include "ebitset.h"
#include "lbitset.h"
#include "abitset.h"
#include "ebitset.h"
#include "lbitset.h"
+#include "vbitset.h"
#include "bitset_stats.h"
#include <stdlib.h>
#include <string.h>
#include "bitset_stats.h"
#include <stdlib.h>
#include <string.h>
@@
-100,7
+101,7
@@
struct bitset_stats_info_struct
struct bitset_stats_info_struct bitset_stats_info_data;
struct bitset_stats_info_struct *bitset_stats_info;
struct bitset_stats_info_struct bitset_stats_info_data;
struct bitset_stats_info_struct *bitset_stats_info;
-
int bitset_stats_enabled = 0
;
+
bool bitset_stats_enabled = false
;
/* Print a percentage histogram with message MSG to FILE. */
/* Print a percentage histogram with message MSG to FILE. */
@@
-159,8
+160,8
@@
bitset_log_histogram_print (FILE *file, const char *name, const char *msg,
for (; i < n_bins; i++)
fprintf (file, "%*lu-%lu\t%8u (%5.1f%%)\n",
max_width - ((unsigned int) (0.30103 * (i) + 0.9999) + 1),
for (; i < n_bins; i++)
fprintf (file, "%*lu-%lu\t%8u (%5.1f%%)\n",
max_width - ((unsigned int) (0.30103 * (i) + 0.9999) + 1),
-
(unsigned long) 1
<< (i - 1),
- (
(unsigned long) 1
<< i) - 1,
+
1UL
<< (i - 1),
+ (
1UL
<< i) - 1,
bins[i],
(100.0 * bins[i]) / total);
}
bins[i],
(100.0 * bins[i]) / total);
}
@@
-203,7
+204,7
@@
bitset_stats_print_1 (FILE *file, const char *name,
/* Print all bitset statistics to FILE. */
static void
/* Print all bitset statistics to FILE. */
static void
-bitset_stats_print (FILE *file,
int
verbose ATTRIBUTE_UNUSED)
+bitset_stats_print (FILE *file,
bool
verbose ATTRIBUTE_UNUSED)
{
int i;
{
int i;
@@
-227,14
+228,14
@@
bitset_stats_enable (void)
{
if (!bitset_stats_info)
bitset_stats_info = &bitset_stats_info_data;
{
if (!bitset_stats_info)
bitset_stats_info = &bitset_stats_info_data;
- bitset_stats_enabled =
1
;
+ bitset_stats_enabled =
true
;
}
void
bitset_stats_disable (void)
{
}
void
bitset_stats_disable (void)
{
- bitset_stats_enabled =
0
;
+ bitset_stats_enabled =
false
;
}
}
@@
-261,7
+262,8
@@
bitset_stats_read (const char *filename)
else
fprintf (stderr, _("Bad stats file size.\n"));
}
else
fprintf (stderr, _("Bad stats file size.\n"));
}
- fclose (file);
+ if (fclose (file) != 0)
+ perror (_("Could not read stats file."));
}
bitset_stats_info_data.runs++;
}
}
bitset_stats_info_data.runs++;
}
@@
-285,7
+287,8
@@
bitset_stats_write (const char *filename)
if (fwrite (&bitset_stats_info_data, sizeof (bitset_stats_info_data),
1, file) != 1)
perror (_("Could not write stats file."));
if (fwrite (&bitset_stats_info_data, sizeof (bitset_stats_info_data),
1, file) != 1)
perror (_("Could not write stats file."));
- fclose (file);
+ if (fclose (file) != 0)
+ perror (_("Could not write stats file."));
}
else
perror (_("Could not open stats file for writing."));
}
else
perror (_("Could not open stats file for writing."));
@@
-296,7
+299,7
@@
bitset_stats_write (const char *filename)
void
bitset_stats_dump (FILE *file)
{
void
bitset_stats_dump (FILE *file)
{
- bitset_stats_print (file,
0
);
+ bitset_stats_print (file,
false
);
}
}
@@
-304,7
+307,7
@@
bitset_stats_dump (FILE *file)
void
debug_bitset_stats (void)
{
void
debug_bitset_stats (void)
{
- bitset_stats_print (stderr,
1
);
+ bitset_stats_print (stderr,
true
);
}
}
@@
-347,14
+350,14
@@
bitset_stats_reset (bitset dst, bitset_bindex bitno)
}
}
-static
int
+static
bool
bitset_stats_toggle (bitset src, bitset_bindex bitno)
{
return BITSET_TOGGLE_ (src->s.bset, bitno);
}
bitset_stats_toggle (bitset src, bitset_bindex bitno)
{
return BITSET_TOGGLE_ (src->s.bset, bitno);
}
-static
int
+static
bool
bitset_stats_test (bitset src, bitset_bindex bitno)
{
bitset bset = src->s.bset;
bitset_stats_test (bitset src, bitset_bindex bitno)
{
bitset bset = src->s.bset;
@@
-373,6
+376,13
@@
bitset_stats_test (bitset src, bitset_bindex bitno)
}
}
+static bitset_bindex
+bitset_stats_resize (bitset src, bitset_bindex size)
+{
+ return BITSET_RESIZE_ (src->s.bset, size);
+}
+
+
static bitset_bindex
bitset_stats_size (bitset src)
{
static bitset_bindex
bitset_stats_size (bitset src)
{
@@
-387,7
+397,7
@@
bitset_stats_count (bitset src)
}
}
-static
int
+static
bool
bitset_stats_empty_p (bitset dst)
{
return BITSET_EMPTY_P_ (dst->s.bset);
bitset_stats_empty_p (bitset dst)
{
return BITSET_EMPTY_P_ (dst->s.bset);
@@
-416,7
+426,7
@@
bitset_stats_copy (bitset dst, bitset src)
}
}
-static
int
+static
bool
bitset_stats_disjoint_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
bitset_stats_disjoint_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
@@
-424,7
+434,7
@@
bitset_stats_disjoint_p (bitset dst, bitset src)
}
}
-static
int
+static
bool
bitset_stats_equal_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
bitset_stats_equal_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
@@
-440,7
+450,7
@@
bitset_stats_not (bitset dst, bitset src)
}
}
-static
int
+static
bool
bitset_stats_subset_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
bitset_stats_subset_p (bitset dst, bitset src)
{
BITSET_CHECK2_ (dst, src);
@@
-456,7
+466,7
@@
bitset_stats_and (bitset dst, bitset src1, bitset src2)
}
}
-static
int
+static
bool
bitset_stats_and_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
bitset_stats_and_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
@@
-472,7
+482,7
@@
bitset_stats_andn (bitset dst, bitset src1, bitset src2)
}
}
-static
int
+static
bool
bitset_stats_andn_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
bitset_stats_andn_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
@@
-488,7
+498,7
@@
bitset_stats_or (bitset dst, bitset src1, bitset src2)
}
}
-static
int
+static
bool
bitset_stats_or_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
bitset_stats_or_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
@@
-504,7
+514,7
@@
bitset_stats_xor (bitset dst, bitset src1, bitset src2)
}
}
-static
int
+static
bool
bitset_stats_xor_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
bitset_stats_xor_cmp (bitset dst, bitset src1, bitset src2)
{
BITSET_CHECK3_ (dst, src1, src2);
@@
-516,16
+526,14
@@
static void
bitset_stats_and_or (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_and_or (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
BITSET_AND_OR_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
BITSET_AND_OR_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
-static
int
+static
bool
bitset_stats_and_or_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_and_or_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
return BITSET_AND_OR_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
return BITSET_AND_OR_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
@@
-534,16
+542,14
@@
static void
bitset_stats_andn_or (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_andn_or (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
BITSET_ANDN_OR_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
BITSET_ANDN_OR_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
-static
int
+static
bool
bitset_stats_andn_or_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_andn_or_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
return BITSET_ANDN_OR_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
return BITSET_ANDN_OR_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
@@
-552,16
+558,14
@@
static void
bitset_stats_or_and (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_or_and (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
BITSET_OR_AND_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
BITSET_OR_AND_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
-static
int
+static
bool
bitset_stats_or_and_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
bitset_stats_or_and_cmp (bitset dst, bitset src1, bitset src2, bitset src3)
{
BITSET_CHECK4_ (dst, src1, src2, src3);
-
return BITSET_OR_AND_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
return BITSET_OR_AND_CMP_ (dst->s.bset, src1->s.bset, src2->s.bset, src3->s.bset);
}
@@
-626,6
+630,7
@@
struct bitset_vtable bitset_stats_vtable = {
bitset_stats_reset,
bitset_stats_toggle,
bitset_stats_test,
bitset_stats_reset,
bitset_stats_toggle,
bitset_stats_test,
+ bitset_stats_resize,
bitset_stats_size,
bitset_stats_count,
bitset_stats_empty_p,
bitset_stats_size,
bitset_stats_count,
bitset_stats_empty_p,
@@
-685,6
+690,8
@@
bitset_stats_init (bitset bset, bitset_bindex n_bits, enum bitset_type type)
bset->b.csize = 0;
bset->b.cdata = 0;
bset->b.csize = 0;
bset->b.cdata = 0;
+ BITSET_NBITS_ (bset) = n_bits;
+
/* Set up the actual bitset implementation that
we are a wrapper over. */
switch (type)
/* Set up the actual bitset implementation that
we are a wrapper over. */
switch (type)
@@
-707,6
+714,12
@@
bitset_stats_init (bitset bset, bitset_bindex n_bits, enum bitset_type type)
ebitset_init (sbset, n_bits);
break;
ebitset_init (sbset, n_bits);
break;
+ case BITSET_VARRAY:
+ bytes = vbitset_bytes (n_bits);
+ sbset = (bitset) xcalloc (1, bytes);
+ vbitset_init (sbset, n_bits);
+ break;
+
default:
abort ();
}
default:
abort ();
}