[llvm] [DirectX] Convert private global variables to internal linkage during Finalize Linkage pass (PR #146406)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 7 06:10:44 PDT 2025


================
@@ -18,6 +18,16 @@
 using namespace llvm;
 
 static bool finalizeLinkage(Module &M) {
+  bool MadeChange = false;
+
+  // Convert private global variables to internal linkage.
+  for (GlobalVariable &GV : M.globals()) {
+    if (GV.hasPrivateLinkage()) {
+      GV.setLinkage(GlobalValue::InternalLinkage);
+      MadeChange = true;
+    }
----------------
farzonl wrote:

Thats the solution we worked for this ticket https://github.com/llvm/llvm-project/issues/139023. My understanding was though we didn't want to blanket do this because of external linkage.  so, I suppose we could do something like 

```cpp
if(GV.use_empty() && !GV.hasExtenalLinkage())
    ToErase.push_back(&G);
```

https://github.com/llvm/llvm-project/pull/146406


More information about the llvm-commits mailing list