aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/CommandLine.cpp
diff options
context:
space:
mode:
authorXin Tong <trent.xin.tong@gmail.com>2017-04-19 00:03:36 +0000
committerXin Tong <trent.xin.tong@gmail.com>2017-04-19 00:03:36 +0000
commit59cb7782cb5afa594b2dd3ed37ffc5e8264a7f4c (patch)
tree4fe9db85ce0092cbf662f2708ad5d5891aa5ece5 /llvm/lib/Support/CommandLine.cpp
parenteb24b850c5c994e8ec86dd920ef1c4a3e636d8ed (diff)
downloadllvm-59cb7782cb5afa594b2dd3ed37ffc5e8264a7f4c.zip
llvm-59cb7782cb5afa594b2dd3ed37ffc5e8264a7f4c.tar.gz
llvm-59cb7782cb5afa594b2dd3ed37ffc5e8264a7f4c.tar.bz2
Allow suppressing host and target info in VersionPrinter
Summary: VersionPrinter by default outputs information about the Host CPU and Default target. Printing this information requires linking in a large amount of data, such as supported target triples as C strings, which in turn bloats the binary size. Enable a new CMake option LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO which controls printing of the host and target info. This allows the target triple names to be dead-code stripped. This is a nice win for LLVM clients that wish to minimize their binary size, such as graphics drivers. By default this is ON, so there is no change in the default behavior. Clients who wish to suppress this printing can do so by setting this option to off via CMake. A test app on Linux that uses ParseCommandLineOptions() shows a binary size reduction of 23KB (from 149K to 126K) for a Release build, and 24KB (from 135K to 111K) in a MinSizeRel build. Reviewers: klimek, beanz, bogner, chandlerc, compnerd Reviewed By: compnerd Patch by pammon (Peter Ammon) ! Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30904 llvm-svn: 300630
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
-rw-r--r--llvm/lib/Support/CommandLine.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp
index f4a9108..3434590 100644
--- a/llvm/lib/Support/CommandLine.cpp
+++ b/llvm/lib/Support/CommandLine.cpp
@@ -2069,12 +2069,15 @@ public:
#ifndef NDEBUG
OS << " with assertions";
#endif
+#if LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO
std::string CPU = sys::getHostCPUName();
if (CPU == "generic")
CPU = "(unknown)";
OS << ".\n"
<< " Default target: " << sys::getDefaultTargetTriple() << '\n'
- << " Host CPU: " << CPU << '\n';
+ << " Host CPU: " << CPU;
+#endif
+ OS << '\n';
}
void operator=(bool OptionWasSpecified) {
if (!OptionWasSpecified)