@@ -292,45 +292,54 @@ auto BPOrderer<D>::computeOrder(
292292 bp.run (nodesForDataCompression);
293293 }
294294
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 ;
300300 SetVector<const Section *> orderedSections;
301301 // Order startup functions,
302302 for (auto &node : nodesForStartup) {
303303 const auto *isec = sections[node.Id ];
304- if (orderedSections.insert (isec))
304+ if (orderedSections.insert (isec)) {
305+ startupSize += D::getSize (*isec);
305306 ++numStartupSections;
307+ }
306308 }
307309 // then functions for compression,
308310 for (auto &node : nodesForFunctionCompression) {
309311 const auto *isec = sections[node.Id ];
310- if (orderedSections.insert (isec))
312+ if (orderedSections.insert (isec)) {
313+ codeCompressionSize += D::getSize (*isec);
311314 ++numCodeCompressionSections;
312-
315+ }
313316 auto It = duplicateSectionIdxs.find (node.Id );
314317 if (It == duplicateSectionIdxs.end ())
315318 continue ;
316319 for (auto dupSecIdx : It->getSecond ()) {
317320 const auto *dupIsec = sections[dupSecIdx];
318- if (orderedSections.insert (dupIsec))
321+ if (orderedSections.insert (dupIsec)) {
322+ duplicateCodeSize += D::getSize (*isec);
319323 ++numDuplicateCodeSections;
324+ }
320325 }
321326 }
322327 // then data for compression.
323328 for (auto &node : nodesForDataCompression) {
324329 const auto *isec = sections[node.Id ];
325- if (orderedSections.insert (isec))
330+ if (orderedSections.insert (isec)) {
331+ dataCompressionSize += D::getSize (*isec);
326332 ++numDataCompressionSections;
333+ }
327334 auto It = duplicateSectionIdxs.find (node.Id );
328335 if (It == duplicateSectionIdxs.end ())
329336 continue ;
330337 for (auto dupSecIdx : It->getSecond ()) {
331338 const auto *dupIsec = sections[dupSecIdx];
332- if (orderedSections.insert (dupIsec))
339+ if (orderedSections.insert (dupIsec)) {
340+ duplicateDataSize += D::getSize (*isec);
333341 ++numDuplicateDataSections;
342+ }
334343 }
335344 }
336345
@@ -339,14 +348,21 @@ auto BPOrderer<D>::computeOrder(
339348 numStartupSections + numCodeCompressionSections +
340349 numDuplicateCodeSections + numDataCompressionSections +
341350 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 " ;
350366
351367 if (!profilePath.empty ()) {
352368 // Evaluate this function order for startup
0 commit comments