|
From: <sv...@va...> - 2015-04-21 21:58:22
|
Author: philippe
Date: Tue Apr 21 22:58:14 2015
New Revision: 15128
Log:
Add some stats to helgrind stats:
* nr of client malloc-ed blocks
* how many OldRef helgrind has, and the distribution
of these OldRef according to the nr of accs they have
Modified:
trunk/helgrind/hg_main.c
trunk/helgrind/libhb_core.c
Modified: trunk/helgrind/hg_main.c
==============================================================================
--- trunk/helgrind/hg_main.c (original)
+++ trunk/helgrind/hg_main.c Tue Apr 21 22:58:14 2015
@@ -5359,6 +5359,9 @@
HG_(stats__LockN_to_P_queries),
HG_(stats__LockN_to_P_get_map_size)() );
+ VG_(printf)("client malloc-ed blocks: %'8d\n",
+ VG_(HT_count_nodes)(hg_mallocmeta_table));
+
VG_(printf)("string table map: %'8llu queries (%llu map size)\n",
HG_(stats__string_table_queries),
HG_(stats__string_table_get_map_size)() );
Modified: trunk/helgrind/libhb_core.c
==============================================================================
--- trunk/helgrind/libhb_core.c (original)
+++ trunk/helgrind/libhb_core.c Tue Apr 21 22:58:14 2015
@@ -6120,6 +6120,33 @@
}
VG_(printf)("%s","\n");
+ {
+ UWord OldRef_accs_n[N_OLDREF_ACCS+1];
+ UInt accs_n;
+ UWord OldRef_n;
+ UInt i;
+
+ OldRef_n = 0;
+ for (i = 0; i <= N_OLDREF_ACCS; i++)
+ OldRef_accs_n[i] = 0;
+
+ for (OldRef* o = mru.prev; o != &lru; o = o->prev) {
+ OldRef_n++;
+ accs_n = 0;
+ for (i = 0; i < N_OLDREF_ACCS; i++) {
+ if (o->accs[i].thrid != 0)
+ accs_n++;
+ }
+ OldRef_accs_n[accs_n]++;
+ }
+
+ tl_assert(OldRef_n == oldrefTreeN);
+ VG_(printf)( " libhb: oldrefTreeN %lu ", oldrefTreeN);
+ VG_(printf)( "( ");
+ for (i = 0; i <= N_OLDREF_ACCS; i++)
+ VG_(printf)( "accs[%d]=%lu ", i, OldRef_accs_n[i]);
+ VG_(printf)( ")\n");
+ }
VG_(printf)( " libhb: ctxt__rcdec: 1=%lu(%lu eq), 2=%lu, 3=%lu\n",
stats__ctxt_rcdec1, stats__ctxt_rcdec1_eq,
stats__ctxt_rcdec2,
|