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

Jonas Hahnfeld via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 3 01:05:30 PST 2023


Author: Jonas Hahnfeld
Date: 2023-02-03T10:04:38+01:00
New Revision: e5dd58e3a6deacfaaf67fde790f86b8410b18c51

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

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

Failure on Windows:
LLVM ERROR: Associative COMDAT symbol 'c' does not exist.

This reverts commit 76b3f0b4d5a0b8c54147c4c73a30892bbca76467 while
I investigate the problem and a solution that still triggers the
original problem.

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 9c308a3c9a1a5..0000000000000
--- a/llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-$c = comdat any
-
-define i32 @f() comdat($c) {
-entry:
-  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 d11e46246f6a4..0000000000000
--- a/llvm/test/ExecutionEngine/Orc/weak-comdat.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: lli -extra-module %p/Inputs/weak-comdat-def.ll %s
-
-$c = comdat any
-
-define weak i32 @f() comdat($c) {
-entry:
-  ret i32 0
-}
-
-define i32 @main() {
-entry:
-  %0 = call i32 @f()
-  ret i32 %0
-}


        


More information about the llvm-commits mailing list