Bug 1181142 - Part 0: Update DMD tests to handle a minimum alloc size of 16 on Win64. r=erahm.
authorNicholas Nethercote <nnethercote@mozilla.com>
Tue, 29 Mar 2016 16:31:21 +1100
changeset 291039 77b78203d8b153d16708b6488f30f131bbe8c8f0
parent 291038 4a7ab6d8c379fe1e700d61c306c21c687176e48a
child 291040 45c01e7fbe3fb034e0a2b5bfb6a6a745b19497ff
push id19656
push usergwagner@mozilla.com
push dateMon, 04 Apr 2016 13:43:23 +0000
treeherderb2g-inbound@e99061fde28a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerserahm
bugs1181142
milestone48.0a1
Bug 1181142 - Part 0: Update DMD tests to handle a minimum alloc size of 16 on Win64. r=erahm.
memory/replace/dmd/test/SmokeDMD.cpp
memory/replace/dmd/test/complete-full1-dark-matter-expected.txt
memory/replace/dmd/test/complete-full1-live-expected.txt
memory/replace/dmd/test/complete-full2-cumulative-expected.txt
memory/replace/dmd/test/complete-full2-dark-matter-expected.txt
memory/replace/dmd/test/complete-partial-live-expected.txt
--- a/memory/replace/dmd/test/SmokeDMD.cpp
+++ b/memory/replace/dmd/test/SmokeDMD.cpp
@@ -124,32 +124,32 @@ TestFull(const char* aTestName, int aNum
       a = (char*) malloc(100);
       UseItOrLoseIt(a, aSeven);
   }
   free(a);
 
   // A no-op.
   free(nullptr);
 
-  // Note: 8 bytes is the smallest requested size that gives consistent
+  // Note: 16 bytes is the smallest requested size that gives consistent
   // behaviour across all platforms with jemalloc.
   // Analyze 1: reported.
   // Analyze 2: thrice-reported.
-  char* a2 = (char*) malloc(8);
+  char* a2 = (char*) malloc(16);
   Report(a2);
 
   // Analyze 1: reported.
   // Analyze 2: reportedness carries over, due to ReportOnAlloc.
   char* b = (char*) malloc(10);
   ReportOnAlloc(b);
 
   // ReportOnAlloc, then freed.
   // Analyze 1: freed, irrelevant.
   // Analyze 2: freed, irrelevant.
-  char* b2 = (char*) malloc(8);
+  char* b2 = (char*) malloc(16);
   ReportOnAlloc(b2);
   free(b2);
 
   // Analyze 1: reported 4 times.
   // Analyze 2: freed, irrelevant.
   char* c = (char*) calloc(10, 3);
   Report(c);
   for (int i = 0; i < aSeven - 4; i++) {
@@ -284,35 +284,35 @@ TestPartial(const char* aTestName, const
 
   int kTenThousand = aSeven + 9993;
   char* s;
 
   // The output of this function is deterministic but it relies on the
   // probability and seeds given to the FastBernoulliTrial instance in
   // ResetBernoulli(). If they change, the output will change too.
 
-  // Expected fraction with stacks: (1 - (1 - 0.003) ** 8) = 0.0237
-  // So we expect about 0.0237 * 10000 == 237.
-  // We actually get 258.
+  // Expected fraction with stacks: (1 - (1 - 0.003) ** 16) = 0.0469.
+  // So we expect about 0.0469 * 10000 == 469.
+  // We actually get 511.
   for (int i = 0; i < kTenThousand; i++) {
-    s = (char*) malloc(8);
+    s = (char*) malloc(16);
     UseItOrLoseIt(s, aSeven);
   }
 
-  // Expected fraction with stacks: (1 - (1 - 0.003) ** 128) = 0.3193,
+  // Expected fraction with stacks: (1 - (1 - 0.003) ** 128) = 0.3193.
   // So we expect about 0.3193 * 10000 == 3193.
-  // We actually get 3150.
+  // We actually get 3136.
   for (int i = 0; i < kTenThousand; i++) {
     s = (char*) malloc(128);
     UseItOrLoseIt(s, aSeven);
   }
 
-  // Expected fraction with stacks: (1 - (1 - 0.003) ** 1024) = 0.9539,
+  // Expected fraction with stacks: (1 - (1 - 0.003) ** 1024) = 0.9539.
   // So we expect about 0.9539 * 10000 == 9539.
-  // We actually get 9539.
+  // We actually get 9531.
   for (int i = 0; i < kTenThousand; i++) {
     s = (char*) malloc(1024);
     UseItOrLoseIt(s, aSeven);
   }
 
   Analyze(Move(f));
 }
 
--- a/memory/replace/dmd/test/complete-full1-dark-matter-expected.txt
+++ b/memory/replace/dmd/test/complete-full1-dark-matter-expected.txt
@@ -38,17 +38,17 @@ Twice-reported {
   Reported again at {
     #01: ... DMD.cpp ...
   }
 }
 
 Twice-reported {
   1 block in heap block record 3 of 4
   80 bytes (77 requested / 3 slop)
-  0.66% of the heap (1.99% cumulative)
+  0.66% of the heap (1.98% cumulative)
   29.41% of twice-reported (88.24% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
   Reported again at {
@@ -73,28 +73,28 @@ Twice-reported {
 }
 
 #-----------------------------------------------------------------
 
 Unreported {
   9 blocks in heap block record 1 of 3
   1,008 bytes (900 requested / 108 slop)
   Individual block sizes: 112 x 9
-  8.34% of the heap (8.34% cumulative)
+  8.33% of the heap (8.33% cumulative)
   81.82% of unreported (81.82% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   2 blocks in heap block record 2 of 3
   112 bytes (112 requested / 0 slop)
   Individual block sizes: 64; 48
-  0.93% of the heap (9.27% cumulative)
+  0.93% of the heap (9.26% cumulative)
   9.09% of unreported (90.91% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   2 blocks in heap block record 3 of 3
@@ -107,159 +107,159 @@ Unreported {
   }
 }
 
 #-----------------------------------------------------------------
 
 Once-reported {
   1 block in heap block record 1 of 11
   8,192 bytes (7,169 requested / 1,023 slop)
-  67.77% of the heap (67.77% cumulative)
-  77.40% of once-reported (77.40% cumulative)
+  67.72% of the heap (67.72% cumulative)
+  77.34% of once-reported (77.34% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 2 of 11
   1,024 bytes (1,023 requested / 1 slop)
-  8.47% of the heap (76.24% cumulative)
-  9.67% of once-reported (87.07% cumulative)
+  8.47% of the heap (76.19% cumulative)
+  9.67% of once-reported (87.01% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 3 of 11
   512 bytes (512 requested / 0 slop)
-  4.24% of the heap (80.48% cumulative)
-  4.84% of once-reported (91.91% cumulative)
+  4.23% of the heap (80.42% cumulative)
+  4.83% of once-reported (91.84% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   2 blocks in heap block record 4 of 11
   240 bytes (240 requested / 0 slop)
   Individual block sizes: 128; 112
-  1.99% of the heap (82.46% cumulative)
-  2.27% of once-reported (94.18% cumulative)
+  1.98% of the heap (82.41% cumulative)
+  2.27% of once-reported (94.11% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   2 blocks in heap block record 5 of 11
   240 bytes (240 requested / 0 slop)
   Individual block sizes: 128; 112
-  1.99% of the heap (84.45% cumulative)
-  2.27% of once-reported (96.45% cumulative)
+  1.98% of the heap (84.39% cumulative)
+  2.27% of once-reported (96.37% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 6 of 11
   96 bytes (96 requested / 0 slop)
-  0.79% of the heap (85.24% cumulative)
-  0.91% of once-reported (97.35% cumulative)
+  0.79% of the heap (85.19% cumulative)
+  0.91% of once-reported (97.28% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 7 of 11
   96 bytes (96 requested / 0 slop)
-  0.79% of the heap (86.04% cumulative)
-  0.91% of once-reported (98.26% cumulative)
+  0.79% of the heap (85.98% cumulative)
+  0.91% of once-reported (98.19% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 8 of 11
   80 bytes (80 requested / 0 slop)
-  0.66% of the heap (86.70% cumulative)
-  0.76% of once-reported (99.02% cumulative)
+  0.66% of the heap (86.64% cumulative)
+  0.76% of once-reported (98.94% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 9 of 11
   80 bytes (80 requested / 0 slop)
-  0.66% of the heap (87.36% cumulative)
-  0.76% of once-reported (99.77% cumulative)
+  0.66% of the heap (87.30% cumulative)
+  0.76% of once-reported (99.70% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 10 of 11
-  16 bytes (10 requested / 6 slop)
-  0.13% of the heap (87.49% cumulative)
-  0.15% of once-reported (99.92% cumulative)
+  16 bytes (16 requested / 0 slop)
+  0.13% of the heap (87.43% cumulative)
+  0.15% of once-reported (99.85% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 11 of 11
-  8 bytes (8 requested / 0 slop)
-  0.07% of the heap (87.56% cumulative)
-  0.08% of once-reported (100.00% cumulative)
+  16 bytes (10 requested / 6 slop)
+  0.13% of the heap (87.57% cumulative)
+  0.15% of once-reported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
-  Total:                12,088 bytes (100.00%) in      30 blocks (100.00%)
+  Total:                12,096 bytes (100.00%) in      30 blocks (100.00%)
   Unreported:            1,232 bytes ( 10.19%) in      13 blocks ( 43.33%)
-  Once-reported:        10,584 bytes ( 87.56%) in      13 blocks ( 43.33%)
+  Once-reported:        10,592 bytes ( 87.57%) in      13 blocks ( 43.33%)
   Twice-reported:          272 bytes (  2.25%) in       4 blocks ( 13.33%)
 }
 
--- a/memory/replace/dmd/test/complete-full1-live-expected.txt
+++ b/memory/replace/dmd/test/complete-full1-live-expected.txt
@@ -6,122 +6,122 @@ Invocation {
   Mode = 'live'
 }
 
 #-----------------------------------------------------------------
 
 Live {
   1 block in heap block record 1 of 12
   8,192 bytes (7,169 requested / 1,023 slop)
-  67.77% of the heap (67.77% cumulative)
+  67.72% of the heap (67.72% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 2 of 12
   1,024 bytes (1,023 requested / 1 slop)
-  8.47% of the heap (76.24% cumulative)
+  8.47% of the heap (76.19% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   9 blocks in heap block record 3 of 12
   1,008 bytes (900 requested / 108 slop)
   Individual block sizes: 112 x 9
-  8.34% of the heap (84.58% cumulative)
+  8.33% of the heap (84.52% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 4 of 12
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  4.37% of the heap (88.95% cumulative)
+  4.37% of the heap (88.89% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 5 of 12
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  4.37% of the heap (93.32% cumulative)
+  4.37% of the heap (93.25% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 6 of 12
   512 bytes (512 requested / 0 slop)
-  4.24% of the heap (97.55% cumulative)
+  4.23% of the heap (97.49% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 7 of 12
   80 bytes (79 requested / 1 slop)
-  0.66% of the heap (98.21% cumulative)
+  0.66% of the heap (98.15% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 8 of 12
   80 bytes (78 requested / 2 slop)
-  0.66% of the heap (98.87% cumulative)
+  0.66% of the heap (98.81% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 9 of 12
   80 bytes (77 requested / 3 slop)
-  0.66% of the heap (99.54% cumulative)
+  0.66% of the heap (99.47% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 10 of 12
   32 bytes (30 requested / 2 slop)
-  0.26% of the heap (99.80% cumulative)
+  0.26% of the heap (99.74% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 11 of 12
-  16 bytes (10 requested / 6 slop)
-  0.13% of the heap (99.93% cumulative)
+  16 bytes (16 requested / 0 slop)
+  0.13% of the heap (99.87% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 12 of 12
-  8 bytes (8 requested / 0 slop)
-  0.07% of the heap (100.00% cumulative)
+  16 bytes (10 requested / 6 slop)
+  0.13% of the heap (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
-  Total: 12,088 bytes in 30 blocks
+  Total: 12,096 bytes in 30 blocks
 }
 
--- a/memory/replace/dmd/test/complete-full2-cumulative-expected.txt
+++ b/memory/replace/dmd/test/complete-full2-cumulative-expected.txt
@@ -7,167 +7,167 @@ Invocation {
 }
 
 #-----------------------------------------------------------------
 
 Cumulative {
   100 blocks in heap block record 1 of 17
   12,800 bytes (12,800 requested / 0 slop)
   Individual block sizes: 128 x 100
-  42.40% of the heap (42.40% cumulative)
+  42.37% of the heap (42.37% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 2 of 17
   8,192 bytes (7,169 requested / 1,023 slop)
-  27.13% of the heap (69.53% cumulative)
+  27.12% of the heap (69.49% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 3 of 17
   4,096 bytes (4,096 requested / 0 slop)
-  13.57% of the heap (83.09% cumulative)
+  13.56% of the heap (83.05% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   10 blocks in heap block record 4 of 17
   1,120 bytes (1,000 requested / 120 slop)
   Individual block sizes: 112 x 10
-  3.71% of the heap (86.80% cumulative)
+  3.71% of the heap (86.76% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 5 of 17
   1,024 bytes (1,024 requested / 0 slop)
-  3.39% of the heap (90.20% cumulative)
+  3.39% of the heap (90.15% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 6 of 17
   1,024 bytes (1,023 requested / 1 slop)
-  3.39% of the heap (93.59% cumulative)
+  3.39% of the heap (93.54% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   6 blocks in heap block record 7 of 17
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  1.75% of the heap (95.34% cumulative)
+  1.75% of the heap (95.29% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   6 blocks in heap block record 8 of 17
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  1.75% of the heap (97.09% cumulative)
+  1.75% of the heap (97.03% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 9 of 17
   512 bytes (512 requested / 0 slop)
-  1.70% of the heap (98.78% cumulative)
+  1.69% of the heap (98.73% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 10 of 17
   80 bytes (79 requested / 1 slop)
-  0.26% of the heap (99.05% cumulative)
+  0.26% of the heap (98.99% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 11 of 17
   80 bytes (78 requested / 2 slop)
-  0.26% of the heap (99.31% cumulative)
+  0.26% of the heap (99.26% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 12 of 17
   80 bytes (77 requested / 3 slop)
-  0.26% of the heap (99.58% cumulative)
+  0.26% of the heap (99.52% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 13 of 17
   64 bytes (64 requested / 0 slop)
-  0.21% of the heap (99.79% cumulative)
+  0.21% of the heap (99.74% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 14 of 17
   32 bytes (30 requested / 2 slop)
-  0.11% of the heap (99.89% cumulative)
+  0.11% of the heap (99.84% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 15 of 17
-  16 bytes (10 requested / 6 slop)
-  0.05% of the heap (99.95% cumulative)
+  16 bytes (16 requested / 0 slop)
+  0.05% of the heap (99.89% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 16 of 17
-  8 bytes (8 requested / 0 slop)
-  0.03% of the heap (99.97% cumulative)
+  16 bytes (16 requested / 0 slop)
+  0.05% of the heap (99.95% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Cumulative {
   1 block in heap block record 17 of 17
-  8 bytes (8 requested / 0 slop)
-  0.03% of the heap (100.00% cumulative)
+  16 bytes (10 requested / 6 slop)
+  0.05% of the heap (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
-  Total: 30,192 bytes in 135 blocks
+  Total: 30,208 bytes in 135 blocks
 }
 
--- a/memory/replace/dmd/test/complete-full2-dark-matter-expected.txt
+++ b/memory/replace/dmd/test/complete-full2-dark-matter-expected.txt
@@ -6,34 +6,34 @@ Invocation {
   Mode = 'dark-matter'
 }
 
 #-----------------------------------------------------------------
 
 Twice-reported {
   1 block in heap block record 1 of 2
   80 bytes (77 requested / 3 slop)
-  2.82% of the heap (2.82% cumulative)
-  90.91% of twice-reported (90.91% cumulative)
+  2.81% of the heap (2.81% cumulative)
+  83.33% of twice-reported (83.33% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
   Reported again at {
     #01: ... DMD.cpp ...
   }
 }
 
 Twice-reported {
   1 block in heap block record 2 of 2
-  8 bytes (8 requested / 0 slop)
-  0.28% of the heap (3.10% cumulative)
-  9.09% of twice-reported (100.00% cumulative)
+  16 bytes (16 requested / 0 slop)
+  0.56% of the heap (3.37% cumulative)
+  16.67% of twice-reported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
   Reported again at {
     #01: ... DMD.cpp ...
@@ -41,100 +41,100 @@ Twice-reported {
 }
 
 #-----------------------------------------------------------------
 
 Unreported {
   9 blocks in heap block record 1 of 3
   1,008 bytes (900 requested / 108 slop)
   Individual block sizes: 112 x 9
-  35.49% of the heap (35.49% cumulative)
+  35.39% of the heap (35.39% cumulative)
   48.84% of unreported (48.84% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   6 blocks in heap block record 2 of 3
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  18.59% of the heap (54.08% cumulative)
+  18.54% of the heap (53.93% cumulative)
   25.58% of unreported (74.42% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   6 blocks in heap block record 3 of 3
   528 bytes (528 requested / 0 slop)
   Individual block sizes: 128; 112; 96; 80; 64; 48
-  18.59% of the heap (72.68% cumulative)
+  18.54% of the heap (72.47% cumulative)
   25.58% of unreported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Once-reported {
   1 block in heap block record 1 of 4
   512 bytes (512 requested / 0 slop)
-  18.03% of the heap (18.03% cumulative)
+  17.98% of the heap (17.98% cumulative)
   74.42% of once-reported (74.42% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 2 of 4
   80 bytes (79 requested / 1 slop)
-  2.82% of the heap (20.85% cumulative)
+  2.81% of the heap (20.79% cumulative)
   11.63% of once-reported (86.05% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 3 of 4
   80 bytes (78 requested / 2 slop)
-  2.82% of the heap (23.66% cumulative)
+  2.81% of the heap (23.60% cumulative)
   11.63% of once-reported (97.67% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   1 block in heap block record 4 of 4
   16 bytes (10 requested / 6 slop)
-  0.56% of the heap (24.23% cumulative)
+  0.56% of the heap (24.16% cumulative)
   2.33% of once-reported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
-  Total:                 2,840 bytes (100.00%) in      27 blocks (100.00%)
-  Unreported:            2,064 bytes ( 72.68%) in      21 blocks ( 77.78%)
-  Once-reported:           688 bytes ( 24.23%) in       4 blocks ( 14.81%)
-  Twice-reported:           88 bytes (  3.10%) in       2 blocks (  7.41%)
+  Total:                 2,848 bytes (100.00%) in      27 blocks (100.00%)
+  Unreported:            2,064 bytes ( 72.47%) in      21 blocks ( 77.78%)
+  Once-reported:           688 bytes ( 24.16%) in       4 blocks ( 14.81%)
+  Twice-reported:           96 bytes (  3.37%) in       2 blocks (  7.41%)
 }
 
--- a/memory/replace/dmd/test/complete-partial-live-expected.txt
+++ b/memory/replace/dmd/test/complete-partial-live-expected.txt
@@ -4,53 +4,53 @@
 Invocation {
   $DMD = '--mode=live'
   Mode = 'live'
 }
 
 #-----------------------------------------------------------------
 
 Live {
-  9,539 blocks in heap block record 1 of 4
-  9,767,936 bytes (9,767,936 requested / 0 slop)
-  Individual block sizes: 1,024 x 9,539
-  84.21% of the heap (84.21% cumulative)
+  9,531 blocks in heap block record 1 of 4
+  9,759,744 bytes (9,759,744 requested / 0 slop)
+  Individual block sizes: 1,024 x 9,531
+  83.56% of the heap (83.56% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
-  17,053 blocks in heap block record 2 of 4
-  1,426,800 bytes (1,426,800 requested / 0 slop)
-  Individual block sizes: 1,024 x 461; 128 x 6,850; 8 x 9,742
-  12.30% of the heap (96.51% cumulative)
+  16,822 blocks in heap block record 2 of 4
+  1,510,672 bytes (1,510,672 requested / 0 slop)
+  Individual block sizes: 1,024 x 469; 128 x 6,864; 16 x 9,489
+  12.93% of the heap (96.49% cumulative)
   Allocated at {
     #01: (no stack trace recorded due to --stacks=partial)
   }
 }
 
 Live {
-  3,150 blocks in heap block record 3 of 4
-  403,200 bytes (403,200 requested / 0 slop)
-  Individual block sizes: 128 x 3,150
-  3.48% of the heap (99.98% cumulative)
+  3,136 blocks in heap block record 3 of 4
+  401,408 bytes (401,408 requested / 0 slop)
+  Individual block sizes: 128 x 3,136
+  3.44% of the heap (99.93% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
-  258 blocks in heap block record 4 of 4
-  2,064 bytes (2,064 requested / 0 slop)
-  Individual block sizes: 8 x 258
-  0.02% of the heap (100.00% cumulative)
+  511 blocks in heap block record 4 of 4
+  8,176 bytes (8,176 requested / 0 slop)
+  Individual block sizes: 16 x 511
+  0.07% of the heap (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
-  Total: 11,600,000 bytes in 30,000 blocks
+  Total: 11,680,000 bytes in 30,000 blocks
 }