aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorRahman Lavaee <rahmanl@google.com>2022-02-22 14:39:08 -0800
committerRahman Lavaee <rahmanl@google.com>2022-02-22 15:46:46 -0800
commit029283c1c0d8d06fbf000f5682c56b8595a1101f (patch)
tree5e4bc055bd5bbc96ac8cb769543870331bcfe4a4 /llvm/lib/Object/MachOObjectFile.cpp
parent774b571546915d34a7254b38833001c77745e760 (diff)
downloadllvm-029283c1c0d8d06fbf000f5682c56b8595a1101f.zip
llvm-029283c1c0d8d06fbf000f5682c56b8595a1101f.tar.gz
llvm-029283c1c0d8d06fbf000f5682c56b8595a1101f.tar.bz2
Encode address offsets of basic blocks relative to the end of the previous basic blocks.
Conceptually, the new encoding emits the offsets and sizes as label differences between each two consecutive basic block begin and end label. When decoding, the offsets must be aggregated along with basic block sizes to calculate the final relative-to-function offsets of basic blocks. This encoding uses smaller values compared to the existing one (offsets relative to function symbol). Smaller values tend to occupy fewer bytes in ULEB128 encoding. As a result, we get about 25% reduction in the size of the bb-address-map section (reduction from about 9MB to 7MB). Reviewed By: tmsriram, jhenderson Differential Revision: https://reviews.llvm.org/D106421
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions