OSDN Git Service

Allow suppressing host and target info in VersionPrinter
authorXin Tong <trent.xin.tong@gmail.com>
Wed, 19 Apr 2017 00:03:36 +0000 (00:03 +0000)
committerXin Tong <trent.xin.tong@gmail.com>
Wed, 19 Apr 2017 00:03:36 +0000 (00:03 +0000)
commit35e5e58dc5002b68821aaf336fd9e5df8d15a976
tree5997754107022c4a141d3ea4e0e2b987e231fb72
parent18daf4ef22525de16106b741f54865e8f7c4e270
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300630 91177308-0d34-0410-b5e6-96231b3b80d8
CMakeLists.txt
include/llvm/Config/config.h.cmake
lib/Support/CommandLine.cpp