[llvm] 76d94d3 - Revert "[ORC] Drop Comdat when discarding IR symbol"

Jonas Hahnfeld via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 4 12:26:47 PST 2023


Author: Jonas Hahnfeld
Date: 2023-02-04T21:26:36+01:00
New Revision: 76d94d3eedf058644a101510597b90d1f441b710

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

LOG: Revert "[ORC] Drop Comdat when discarding IR symbol"

A number of AArch64 bots report errors in clang-repl, for example
https://lab.llvm.org/buildbot/#/builders/197/builds/3920

This reverts commit 87d7838202267a011639fcbf97263556ccf091dc.

Added: 
    

Modified: 
    llvm/lib/ExecutionEngine/Orc/Layer.cpp

Removed: 
    llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll
    llvm/test/ExecutionEngine/Orc/weak-comdat.ll


################################################################################
diff  --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp
index 3368d3276cb37..95380d912392e 100644
--- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp
@@ -125,10 +125,6 @@ void IRMaterializationUnit::discard(const JITDylib &JD,
   assert(!I->second->isDeclaration() &&
          "Discard should only apply to definitions");
   I->second->setLinkage(GlobalValue::AvailableExternallyLinkage);
-  // According to the IR verifier, "Declaration[s] may not be in a Comdat!"
-  // Remove it, if this is a GlobalObject.
-  if (auto *GO = dyn_cast<GlobalObject>(I->second))
-    GO->setComdat(nullptr);
   SymbolToDefinition.erase(I);
 }
 

diff  --git a/llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll b/llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll
deleted file mode 100644
index d35ead08ff1e7..0000000000000
--- a/llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-define i32 @g() {
-entry:
-  ret i32 0
-}
-
-$f = comdat nodeduplicate
-
-define i32 @f() comdat {
-entry:
-  %0 = call i32 @g()
-  ret i32 %0
-}

diff  --git a/llvm/test/ExecutionEngine/Orc/weak-comdat.ll b/llvm/test/ExecutionEngine/Orc/weak-comdat.ll
deleted file mode 100644
index e1e1ab02e2981..0000000000000
--- a/llvm/test/ExecutionEngine/Orc/weak-comdat.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: lli -extra-module %p/Inputs/weak-comdat-def.ll %s
-; UNSUPPORTED: target={{.*}}-darwin{{.*}}
-
-declare i32 @g()
-
-$f = comdat nodeduplicate
-
-define weak i32 @f() comdat {
-entry:
-  %0 = call i32 @g()
-  ret i32 %0
-}
-
-define i32 @main() {
-entry:
-  %0 = call i32 @f()
-  ret i32 %0
-}


        


More information about the llvm-commits mailing list