[PATCH] D58075: [gn build] Separate debug and optimization settings
David Major via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 11 14:17:18 PST 2019
dmajor created this revision.
dmajor added a reviewer: thakis.
Herald added a project: LLVM.
This patch adds an `is_optimized` variable, orthogonal to `is_debug`, to allow for a gn analogue to `RelWithDebInfo` builds.
As part of this we'll want to explicitly enable GC+ICF, for the sake of `is_debug && is_optimized` builds. The flags normally default to true except that if you pass `/DEBUG` they default to false.
Repository:
rL LLVM
https://reviews.llvm.org/D58075
Files:
llvm/utils/gn/build/BUILD.gn
llvm/utils/gn/build/buildflags.gni
Index: llvm/utils/gn/build/buildflags.gni
===================================================================
--- llvm/utils/gn/build/buildflags.gni
+++ llvm/utils/gn/build/buildflags.gni
@@ -1,10 +1,13 @@
declare_args() {
- # Whether to build with debug information and without optimizations.
+ # Whether to build with debug information.
is_debug = false
}
# args that depend on other args must live in a later declare_args() block.
declare_args() {
+ # Whether to build with optimizations.
+ is_optimized = !is_debug
+
# Whether to enable assertions.
llvm_enable_assertions = true
}
Index: llvm/utils/gn/build/BUILD.gn
===================================================================
--- llvm/utils/gn/build/BUILD.gn
+++ llvm/utils/gn/build/BUILD.gn
@@ -23,7 +23,8 @@
if (host_os != "win") {
if (is_debug) {
cflags += [ "-g" ]
- } else {
+ }
+ if (is_optimized) {
cflags += [ "-O3" ]
}
cflags += [ "-fdiagnostics-color" ]
@@ -39,11 +40,16 @@
"/FS",
]
ldflags += [ "/DEBUG" ]
- } else {
+ }
+ if (is_optimized) {
cflags += [
"/O2",
"/Zc:inline",
]
+ ldflags += [
+ "/OPT:REF",
+ "/OPT:ICF",
+ ]
}
defines += [
"_CRT_SECURE_NO_DEPRECATE",
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58075.186331.patch
Type: text/x-patch
Size: 1308 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190211/32bc7ed9/attachment.bin>
More information about the llvm-commits
mailing list