Index: llvm/tools/llvm-dwarfdump/SectionSizes.cpp =================================================================== --- llvm/tools/llvm-dwarfdump/SectionSizes.cpp +++ llvm/tools/llvm-dwarfdump/SectionSizes.cpp @@ -51,23 +51,57 @@ raw_ostream &OS) { OS << "----------------------------------------------------" << "\n"; - OS << " SECTION \t\t" - << " SIZE" - << "\n"; - OS << "------------ \t\t ------------\n"; - - OS << " .debug_info \t\t " << Sizes.TotalDebugInfo << "\n"; - OS << " .debug_str \t\t " << Sizes.TotalDebugStr << "\n"; - OS << " .debug_abbrev \t\t " << Sizes.TotalDebugAbbrev << "\n"; - OS << " .debug_line \t\t " << Sizes.TotalDebugLine << "\n"; - OS << " .debug_ranges \t\t " << Sizes.TotalDebugRanges << "\n"; - OS << " .debug_loc \t\t " << Sizes.TotalDebugLoc << "\n"; - OS << " .debug_frame \t\t " << Sizes.TotalDebugFrame << "\n"; - OS << " .debug_macinfo \t " << Sizes.TotalDebugMacInfo << "\n"; - OS << " .debug_pubnames \t " << Sizes.TotalDebugPubnames << "\n"; - OS << " .debug_pubtypes \t " << Sizes.TotalDebugPubtypes << "\n"; - OS << " .debug_types \t\t " << Sizes.TotalDebugTypes << "\n\n"; - OS << " .debug_*: \t\t " << Sizes.TotalDebugSectionsSize << "\n"; + OS << " SECTION \t\t\t SIZE\n"; + OS << "------------ \t\t -----------------------\n"; + + OS << " .debug_info \t\t " << Sizes.TotalDebugInfo << " (" + << format("%0.2f", + Sizes.TotalDebugInfo / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_str \t\t " << Sizes.TotalDebugStr << " (" + << format("%0.2f", + Sizes.TotalDebugStr / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_abbrev \t\t " << Sizes.TotalDebugAbbrev << " (" + << format("%0.2f", + Sizes.TotalDebugAbbrev / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_line \t\t " << Sizes.TotalDebugLine << " (" + << format("%0.2f", + Sizes.TotalDebugLine / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_ranges \t\t " << Sizes.TotalDebugRanges << " (" + << format("%0.2f", + Sizes.TotalDebugRanges / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_loc \t\t " << Sizes.TotalDebugLoc << " (" + << format("%0.2f", + Sizes.TotalDebugLoc / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_frame \t\t " << Sizes.TotalDebugFrame << " (" + << format("%0.2f", + Sizes.TotalDebugFrame / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_macinfo \t " << Sizes.TotalDebugMacInfo << " (" + << format("%0.2f", + Sizes.TotalDebugMacInfo / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_pubnames \t " << Sizes.TotalDebugPubnames << " (" + << format("%0.2f", + Sizes.TotalDebugPubnames / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_pubtypes \t " << Sizes.TotalDebugPubtypes << " (" + << format("%0.2f", + Sizes.TotalDebugPubtypes / (double)Sizes.TotalObjectSize * 100) + << "%)\n"; + OS << " .debug_types \t\t " << Sizes.TotalDebugTypes << " (" + << format("%0.2f", + Sizes.TotalDebugTypes / (double)Sizes.TotalObjectSize * 100) + << "%)\n\n"; + OS << " .debug_*: \t\t " << Sizes.TotalDebugSectionsSize << " (" + << format("%0.2f", Sizes.TotalDebugSectionsSize / + (double)Sizes.TotalObjectSize * 100) + << "%)\n"; OS << "----------------------------------------------------" << "\n"; OS << " TOTAL FILE SIZE: " << Sizes.TotalObjectSize << "\n";