Author: sewardj
Date: 2008-03-05 10:54:45 +0000 (Wed, 05 Mar 2008)
New Revision: 7569

Log:
Add counters to distinguish the case when a location's segment set
only has one element (98% or more) from when it has multiple elements
(rare).



Modified:
   branches/HGDEV/helgrind/hg_main.c


Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c   2008-03-05 02:25:05 UTC (rev 7568)
+++ branches/HGDEV/helgrind/hg_main.c   2008-03-05 10:54:45 UTC (rev 7569)
@@ -2832,16 +2832,18 @@
 /*--- the core memory state machine (msm__* functions)         ---*/
 /*----------------------------------------------------------------*/
 
-static UWord stats__msm_BHL_hack    = 0;
-static UWord stats__msm_Race        = 0;
-static UWord stats__msm_R_to_R      = 0;
-static UWord stats__msm_R_to_W      = 0;
-static UWord stats__msm_W_to_R      = 0;
-static UWord stats__msm_W_to_W      = 0;
-static UWord stats__msm_New_to_W    = 0;
-static UWord stats__msm_New_to_R    = 0;
-static UWord stats__msm_wr_NoAccess = 0;
-static UWord stats__msm_rd_NoAccess = 0;
+static UWord stats__msm_BHL_hack     = 0;
+static UWord stats__msm_Race         = 0;
+static UWord stats__msm_R_to_R       = 0;
+static UWord stats__msm_R_to_W       = 0;
+static UWord stats__msm_W_to_R       = 0;
+static UWord stats__msm_W_to_W       = 0;
+static UWord stats__msm_New_to_W     = 0;
+static UWord stats__msm_New_to_R     = 0;
+static UWord stats__msm_wr_NoAccess  = 0;
+static UWord stats__msm_rd_NoAccess  = 0;
+static UWord stats__msm_oldSS_single = 0;
+static UWord stats__msm_oldSS_multi  = 0;
 
 /* fwds */
 static void record_error_Race ( Thread* thr, 
@@ -3097,6 +3099,13 @@
       oldLS = get_SHVAL_LS(sv_old);
 
       oldSS_size = SS_get_size(oldSS);
+      if (oldSS_size == 1) {
+         stats__msm_oldSS_single++;
+      } else {
+         tl_assert(oldSS_size > 1);
+         stats__msm_oldSS_multi++;
+      }
+
       // update the segment set and compute hb_all
       hb_all = True;
       newSS = SS_mk_singleton(currS);
@@ -8479,6 +8488,8 @@
                   stats__msm_New_to_R, stats__msm_New_to_W);
       VG_(printf)("     msm: %,12lu %,12lu  rd_NoAccess, wr_NoAccess\n",
                   stats__msm_rd_NoAccess, stats__msm_rd_NoAccess);
+      VG_(printf)("     msm: %,12lu %,12lu  oldSS_single, oldSS_multi\n",
+                  stats__msm_oldSS_single, stats__msm_oldSS_multi);
 
       VG_(printf)("\n");
       VG_(printf)(" secmaps: %,10lu allocd (%,12lu g-a-range)\n",


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to