[llvm] r324711 - LTO: Include live bit in ThinLTO cache key.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 8 21:58:55 PST 2018


Author: pcc
Date: Thu Feb  8 21:58:55 2018
New Revision: 324711

URL: http://llvm.org/viewvc/llvm-project?rev=324711&view=rev
Log:
LTO: Include live bit in ThinLTO cache key.

As of r323633, this bit started controlling whether symbol definitions
appear in object files, and it also became sensitive to the prevailing
bit, so it needs to be included in the key.

Differential Revision: https://reviews.llvm.org/D43109

Added:
    llvm/trunk/test/LTO/Resolution/X86/cache-prevailing.ll
Modified:
    llvm/trunk/lib/LTO/LTO.cpp

Modified: llvm/trunk/lib/LTO/LTO.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTO.cpp?rev=324711&r1=324710&r2=324711&view=diff
==============================================================================
--- llvm/trunk/lib/LTO/LTO.cpp (original)
+++ llvm/trunk/lib/LTO/LTO.cpp Thu Feb  8 21:58:55 2018
@@ -177,6 +177,7 @@ static void computeCacheKey(
 
   auto AddUsedThings = [&](GlobalValueSummary *GS) {
     if (!GS) return;
+    AddUnsigned(GS->isLive());
     for (const ValueInfo &VI : GS->refs()) {
       AddUnsigned(VI.isDSOLocal());
       AddUsedCfiGlobal(VI.getGUID());

Added: llvm/trunk/test/LTO/Resolution/X86/cache-prevailing.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/LTO/Resolution/X86/cache-prevailing.ll?rev=324711&view=auto
==============================================================================
--- llvm/trunk/test/LTO/Resolution/X86/cache-prevailing.ll (added)
+++ llvm/trunk/test/LTO/Resolution/X86/cache-prevailing.ll Thu Feb  8 21:58:55 2018
@@ -0,0 +1,18 @@
+; Tests whether the cache is sensitive to the prevailing bit.
+; RUN: rm -rf %t.cache
+; RUN: opt -module-hash -module-summary -o %t.bc %s
+; RUN: llvm-lto2 run -o %t.o %t.bc -cache-dir %t.cache \
+; RUN:   -r %t.bc,foo,p -r %t.bc,bar,px
+; RUN: llvm-lto2 run -o %t.o %t.bc -cache-dir %t.cache \
+; RUN:   -r %t.bc,foo, -r %t.bc,bar,px
+; RUN: ls %t.cache | count 2
+
+target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-pc-windows-msvc19.11.0"
+
+ at foo = linkonce_odr constant i32 1, comdat
+$foo = comdat any
+
+define i32* @bar() {
+  ret i32* @foo
+}




More information about the llvm-commits mailing list