From 630b960fb5750583fd77b58ffeb7db32f3ba212f Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Fri, 22 Mar 2019 21:28:39 -0700 Subject: [PATCH] Support LLD ThinLTO cache/threshold option LLD has different option syntax for specifying ThinLTO cache. Change it to LLD syntax and drop the support for GOLD, since there aren't many projects that are linked with it. Test: USE_THINLTO_CACHE=true m Change-Id: I5c6c5281a05793414a6387d52ae48d9b43822ee9 --- cc/lto.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cc/lto.go b/cc/lto.go index 0d7a24631..108486911 100644 --- a/cc/lto.go +++ b/cc/lto.go @@ -91,22 +91,22 @@ func (lto *lto) flags(ctx BaseModuleContext, flags Flags) Flags { flags.CFlags = append(flags.CFlags, ltoFlag) flags.LdFlags = append(flags.LdFlags, ltoFlag) - if ctx.Config().IsEnvTrue("USE_THINLTO_CACHE") && Bool(lto.Properties.Lto.Thin) && !lto.useClangLld(ctx) { + if ctx.Config().IsEnvTrue("USE_THINLTO_CACHE") && Bool(lto.Properties.Lto.Thin) && lto.useClangLld(ctx) { // Set appropriate ThinLTO cache policy - cacheDirFormat := "-Wl,-plugin-opt,cache-dir=" + cacheDirFormat := "-Wl,--thinlto-cache-dir=" cacheDir := android.PathForOutput(ctx, "thinlto-cache").String() flags.LdFlags = append(flags.LdFlags, cacheDirFormat+cacheDir) // Limit the size of the ThinLTO cache to the lesser of 10% of available // disk space and 10GB. - cachePolicyFormat := "-Wl,-plugin-opt,cache-policy=" + cachePolicyFormat := "-Wl,--thinlto-cache-policy=" policy := "cache_size=10%:cache_size_bytes=10g" flags.LdFlags = append(flags.LdFlags, cachePolicyFormat+policy) } // If the module does not have a profile, be conservative and do not inline // or unroll loops during LTO, in order to prevent significant size bloat. - if !ctx.isPgoCompile() && !lto.useClangLld(ctx) { + if !ctx.isPgoCompile() { flags.LdFlags = append(flags.LdFlags, "-Wl,-plugin-opt,-inline-threshold=0") flags.LdFlags = append(flags.LdFlags, "-Wl,-plugin-opt,-unroll-threshold=0") }