1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[gn build] Support building with ThinLTO

Differential Revision: https://reviews.llvm.org/D88584
This commit is contained in:
Arthur Eubanks 2020-09-29 16:06:32 -07:00
parent c0c56e8bad
commit f70b28627d
2 changed files with 33 additions and 6 deletions

View File

@ -256,6 +256,27 @@ config("compiler_defaults") {
cflags += [ "-fsanitize=thread" ]
ldflags += [ "-fsanitize=thread" ]
}
if (use_thinlto) {
assert(is_clang, "ThinLTO only supported on Clang")
lto_opt_level = 2
cflags += [ "-flto=thin" ]
if (host_os == "win") {
ldflags += [
"/opt:lldlto=" + lto_opt_level,
"/opt:lldltojobs=" + max_jobs_per_lto_link,
]
} else {
ldflags += [
"-flto=thin",
"-Wl,--thinlto-jobs=" + max_jobs_per_lto_link,
"-Wl,--lto-O" + lto_opt_level,
]
}
}
}
config("no_exceptions") {

View File

@ -10,16 +10,22 @@ declare_args() {
# Whether to build with asan.
use_asan = 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
# Whether to enable expensive checks.
llvm_enable_expensive_checks = false
# Whether to build with ThinLTO.
use_thinlto = false
# Max jobs per ThinLTO link.
max_jobs_per_lto_link = 8
}
# 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
}