This is an archive of the discontinued LLVM Phabricator instance.

[BOLT][DWARF] Change rangelists to use DW_RLE_offset_pair
ClosedPublic

Authored by ayermolo on Dec 20 2022, 3:31 PM.

Details

Summary

Before we always used DW_RLE_startx_length. This is not very efficient and leads
to bigger .debug_addr section. Changed it to use
DW_RLE_base_addressx/DW_RLE_offset_pair.

clang-16 build in debug mode
llvm-bolt ran on it with --update-debug-sections

sectionbeforeafterdiff% decrease
.debug_rnglists3273229231986051-7462412.3%
.debug_addr1441580814184128-2316801.6%

Diff Detail

Event Timeline

ayermolo created this revision.Dec 20 2022, 3:31 PM
Herald added a reviewer: Amir. · View Herald Transcript
Herald added a reviewer: maksfb. · View Herald Transcript
Herald added a project: Restricted Project. · View Herald Transcript
ayermolo requested review of this revision.Dec 20 2022, 3:31 PM
Herald added a project: Restricted Project. · View Herald TranscriptDec 20 2022, 3:31 PM
ayermolo updated this revision to Diff 484411.Dec 20 2022, 3:55 PM

clang-format

maksfb accepted this revision.Jan 3 2023, 2:06 PM

Could you add to the summary the decrease in binary/DWARF size you see with this change?

bolt/lib/Core/DebugData.cpp
215
238
This revision is now accepted and ready to land.Jan 3 2023, 2:06 PM
ayermolo marked 2 inline comments as done.Jan 5 2023, 5:42 PM
ayermolo edited the summary of this revision. (Show Details)Jan 5 2023, 6:18 PM
ayermolo edited the summary of this revision. (Show Details)
ayermolo edited the summary of this revision. (Show Details)Jan 6 2023, 10:41 AM
ayermolo edited the summary of this revision. (Show Details)Jan 6 2023, 11:37 AM
This revision was automatically updated to reflect the committed changes.