DebugInfo: Support for compressed debug info sections
authorDavid Blaikie <dblaikie@gmail.com>
Thu, 27 Mar 2014 20:45:58 +0000 (20:45 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Thu, 27 Mar 2014 20:45:58 +0000 (20:45 +0000)
commit0a0c4cc56f8bb143443894cb5053c418002587b9
tree41769f23203d9fd0ed0895b2809b709887ef7b9a
parent8040d49d85fd0a7c26fdbc2676afe4556d12f15a
DebugInfo: Support for compressed debug info sections

1) When creating a .debug_* section and instead create a .zdebug_
   section.
2) When creating a fragment in a .zdebug_* section, make it a compressed
   fragment.
3) When computing the size of a compressed section, compress the data
   and use the size of the compressed data.
4) Emit the compressed bytes.

Also, check that only if a section has a compressed fragment, then that
is the only fragment in the section.

Assert-fail if the fragment's data is modified after it is compressed.

Initial review on llvm-commits by Eric Christopher and Rafael Espindola.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204958 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCAssembler.h
lib/MC/MCAsmInfo.cpp
lib/MC/MCAssembler.cpp
lib/MC/MCContext.cpp
lib/MC/MCObjectStreamer.cpp
test/MC/ELF/compression.s [new file with mode: 0644]
tools/llvm-mc/llvm-mc.cpp