@@ -292,45 +292,54 @@ auto BPOrderer<D>::computeOrder(
292
292
bp.run (nodesForDataCompression);
293
293
}
294
294
295
- unsigned numStartupSections = 0 ;
296
- unsigned numCodeCompressionSections = 0 ;
297
- unsigned numDuplicateCodeSections = 0 ;
298
- unsigned numDataCompressionSections = 0 ;
299
- unsigned numDuplicateDataSections = 0 ;
295
+ unsigned numStartupSections = 0 , startupSize = 0 ;
296
+ unsigned numCodeCompressionSections = 0 , codeCompressionSize = 0 ;
297
+ unsigned numDuplicateCodeSections = 0 , duplicateCodeSize = 0 ;
298
+ unsigned numDataCompressionSections = 0 , dataCompressionSize = 0 ;
299
+ unsigned numDuplicateDataSections = 0 , duplicateDataSize = 0 ;
300
300
SetVector<const Section *> orderedSections;
301
301
// Order startup functions,
302
302
for (auto &node : nodesForStartup) {
303
303
const auto *isec = sections[node.Id ];
304
- if (orderedSections.insert (isec))
304
+ if (orderedSections.insert (isec)) {
305
+ startupSize += D::getSize (*isec);
305
306
++numStartupSections;
307
+ }
306
308
}
307
309
// then functions for compression,
308
310
for (auto &node : nodesForFunctionCompression) {
309
311
const auto *isec = sections[node.Id ];
310
- if (orderedSections.insert (isec))
312
+ if (orderedSections.insert (isec)) {
313
+ codeCompressionSize += D::getSize (*isec);
311
314
++numCodeCompressionSections;
312
-
315
+ }
313
316
auto It = duplicateSectionIdxs.find (node.Id );
314
317
if (It == duplicateSectionIdxs.end ())
315
318
continue ;
316
319
for (auto dupSecIdx : It->getSecond ()) {
317
320
const auto *dupIsec = sections[dupSecIdx];
318
- if (orderedSections.insert (dupIsec))
321
+ if (orderedSections.insert (dupIsec)) {
322
+ duplicateCodeSize += D::getSize (*isec);
319
323
++numDuplicateCodeSections;
324
+ }
320
325
}
321
326
}
322
327
// then data for compression.
323
328
for (auto &node : nodesForDataCompression) {
324
329
const auto *isec = sections[node.Id ];
325
- if (orderedSections.insert (isec))
330
+ if (orderedSections.insert (isec)) {
331
+ dataCompressionSize += D::getSize (*isec);
326
332
++numDataCompressionSections;
333
+ }
327
334
auto It = duplicateSectionIdxs.find (node.Id );
328
335
if (It == duplicateSectionIdxs.end ())
329
336
continue ;
330
337
for (auto dupSecIdx : It->getSecond ()) {
331
338
const auto *dupIsec = sections[dupSecIdx];
332
- if (orderedSections.insert (dupIsec))
339
+ if (orderedSections.insert (dupIsec)) {
340
+ duplicateDataSize += D::getSize (*isec);
333
341
++numDuplicateDataSections;
342
+ }
334
343
}
335
344
}
336
345
@@ -339,14 +348,21 @@ auto BPOrderer<D>::computeOrder(
339
348
numStartupSections + numCodeCompressionSections +
340
349
numDuplicateCodeSections + numDataCompressionSections +
341
350
numDuplicateDataSections;
342
- dbgs ()
343
- << " Ordered " << numTotalOrderedSections
344
- << " sections using balanced partitioning:\n Functions for startup: "
345
- << numStartupSections
346
- << " \n Functions for compression: " << numCodeCompressionSections
347
- << " \n Duplicate functions: " << numDuplicateCodeSections
348
- << " \n Data for compression: " << numDataCompressionSections
349
- << " \n Duplicate data: " << numDuplicateDataSections << " \n " ;
351
+ unsigned totalOrderedSize = startupSize + codeCompressionSize +
352
+ duplicateCodeSize + dataCompressionSize +
353
+ duplicateDataSize;
354
+ dbgs () << " Ordered " << numTotalOrderedSections << " sections ("
355
+ << totalOrderedSize << " bytes) using balanced partitioning:\n " ;
356
+ dbgs () << " Functions for startup: " << numStartupSections << " ("
357
+ << startupSize << " bytes)\n " ;
358
+ dbgs () << " Functions for compression: " << numCodeCompressionSections
359
+ << " (" << codeCompressionSize << " bytes)\n " ;
360
+ dbgs () << " Duplicate functions: " << numDuplicateCodeSections << " ("
361
+ << duplicateCodeSize << " bytes)\n " ;
362
+ dbgs () << " Data for compression: " << numDataCompressionSections << " ("
363
+ << dataCompressionSize << " bytes)\n " ;
364
+ dbgs () << " Duplicate data: " << numDuplicateDataSections << " ("
365
+ << duplicateDataSize << " bytes)\n " ;
350
366
351
367
if (!profilePath.empty ()) {
352
368
// Evaluate this function order for startup
0 commit comments