summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2016-05-27 12:27:32 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2016-05-27 12:27:32 +0000
commitc91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45 (patch)
treea14a16e1dc028011b7948857c023e27cb000c7c6 /llvm/tools
parent6af546188f56211feef79a77c74206118549c8d6 (diff)
downloadbcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.tar.gz
bcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.zip
Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
Fix: updated clang code which was not updated by mistake. Original commit message: [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections. This patch is strongly based on previously reverted D20331. (because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style) Difference that this patch supports both zlib and zlib-gnu styles. -compress-debug-sections option now supports next values: -compress-debug-sections=zlib-gnu -compress-debug-sections=zlib -compress-debug-sections=none Previously specifying -compress-debug-sections enabled zlib-gnu compression, so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior that was before this patch for case when compression was enabled. Differential revision: http://reviews.llvm.org/D20676 llvm-svn: 270987
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-mc/llvm-mc.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/llvm/tools/llvm-mc/llvm-mc.cpp b/llvm/tools/llvm-mc/llvm-mc.cpp
index 9ea8f2ef433..d9e3798ee88 100644
--- a/llvm/tools/llvm-mc/llvm-mc.cpp
+++ b/llvm/tools/llvm-mc/llvm-mc.cpp
@@ -52,9 +52,18 @@ OutputFilename("o", cl::desc("Output filename"),
static cl::opt<bool>
ShowEncoding("show-encoding", cl::desc("Show instruction encodings"));
-static cl::opt<bool>
-CompressDebugSections("compress-debug-sections",
- cl::desc("Compress DWARF debug sections"));
+static cl::opt<DebugCompressionType>
+CompressDebugSections("compress-debug-sections", cl::ValueOptional,
+ cl::init(DebugCompressionType::DCT_None),
+ cl::desc("Choose DWARF debug sections compression:"),
+ cl::values(
+ clEnumValN(DebugCompressionType::DCT_None, "none",
+ "No compression"),
+ clEnumValN(DebugCompressionType::DCT_Zlib, "zlib",
+ "Use zlib compression"),
+ clEnumValN(DebugCompressionType::DCT_ZlibGnu, "zlib-gnu",
+ "Use zlib-gnu compression (depricated)"),
+ clEnumValEnd));
static cl::opt<bool>
ShowInst("show-inst", cl::desc("Show internal instruction representation"));
@@ -407,13 +416,13 @@ int main(int argc, char **argv) {
std::unique_ptr<MCAsmInfo> MAI(TheTarget->createMCAsmInfo(*MRI, TripleName));
assert(MAI && "Unable to create target asm info!");
- if (CompressDebugSections) {
+ if (CompressDebugSections != DebugCompressionType::DCT_None) {
if (!zlib::isAvailable()) {
errs() << ProgName
<< ": build tools with zlib to enable -compress-debug-sections";
return 1;
}
- MAI->setCompressDebugSections(true);
+ MAI->setCompressDebugSections(CompressDebugSections);
}
// FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and
OpenPOWER on IntegriCloud