[llvm] d39d1a2 - Revert "[LLD][ThinLTO] Handle GUID collision in import global processing"

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 1 10:03:20 PDT 2019


Author: Teresa Johnson
Date: 2019-11-01T10:02:58-07:00
New Revision: d39d1a2f87aca3cfabe58ecfa5146879baa70096

URL: https://github.com/llvm/llvm-project/commit/d39d1a2f87aca3cfabe58ecfa5146879baa70096
DIFF: https://github.com/llvm/llvm-project/commit/d39d1a2f87aca3cfabe58ecfa5146879baa70096.diff

LOG: Revert "[LLD][ThinLTO] Handle GUID collision in import global processing"

This reverts commit cc0b9647b76178bc3869bbfff80535ad86366472.

The commit is causing a failure in internal testing. Will recommit with
a fix later.

Added: 
    

Modified: 
    llvm/lib/Transforms/Utils/FunctionImportUtils.cpp

Removed: 
    llvm/test/ThinLTO/X86/Inputs/guid_collision.ll
    llvm/test/ThinLTO/X86/guid_collision.ll


################################################################################
diff  --git a/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp b/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
index 3109224dc2ce..76b4635ad501 100644
--- a/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
+++ b/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
@@ -239,17 +239,11 @@ void FunctionImportGlobalProcessing::processGlobalForThinLTO(GlobalValue &GV) {
   // propagateConstants hasn't been run. We can't internalize GV
   // in such case.
   if (!GV.isDeclaration() && VI && ImportIndex.withGlobalValueDeadStripping()) {
-    if (GlobalVariable *V = dyn_cast<GlobalVariable>(&GV)) {
-      // We can have more than one local with the same GUID, in the case of
-      // same-named locals in 
diff erent but same-named source files that were
-      // compiled in their respective directories (so the source file name
-      // and resulting GUID is the same). Find the one in this module.
-      auto* GVS = dyn_cast<GlobalVarSummary>(
-          ImportIndex.findSummaryInModule(VI, M.getModuleIdentifier()));
-      // At this stage "maybe" is "definitely"
-      if (GVS && (GVS->maybeReadOnly() || GVS->maybeWriteOnly()))
-        V->addAttribute("thinlto-internalize");
-    }
+    const auto &SL = VI.getSummaryList();
+    auto *GVS = SL.empty() ? nullptr : dyn_cast<GlobalVarSummary>(SL[0].get());
+    // At this stage "maybe" is "definitely"
+    if (GVS && (GVS->maybeReadOnly() || GVS->maybeWriteOnly()))
+      cast<GlobalVariable>(&GV)->addAttribute("thinlto-internalize");
   }
 
   bool DoPromote = false;

diff  --git a/llvm/test/ThinLTO/X86/Inputs/guid_collision.ll b/llvm/test/ThinLTO/X86/Inputs/guid_collision.ll
deleted file mode 100644
index 885761cc494a..000000000000
--- a/llvm/test/ThinLTO/X86/Inputs/guid_collision.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-; The source for the GUID for this symbol will be -:F
-source_filename = "-"
-define internal fastcc i64 @F() {
-  ret i64 0
-}
-
-; Needed to give llvm-lto2 something to do
- at dummy2 = global i32 0
-

diff  --git a/llvm/test/ThinLTO/X86/guid_collision.ll b/llvm/test/ThinLTO/X86/guid_collision.ll
deleted file mode 100644
index 4d1add861b6e..000000000000
--- a/llvm/test/ThinLTO/X86/guid_collision.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Make sure LTO succeeds even if %t.bc contains a GlobalVariable F and
-; %t2.bc cointains a Function F with the same GUID.
-;
-; RUN: opt -module-summary %s -o %t.bc
-; RUN: opt -module-summary %p/Inputs/guid_collision.ll -o %t2.bc
-; RUN: llvm-lto2 run %t.bc %t2.bc -o %t.out \
-; RUN: -r=%t.bc,dummy,px -r=%t2.bc,dummy2,px
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-; The source for the GUID for this symbol will be -:F
-source_filename = "-"
- at F = internal constant i8 0
-
-; Needed to give llvm-lto2 something to do
- at dummy = global i32 0


        


More information about the llvm-commits mailing list