[llvm] [DirectX] Add GlobalDCE pass after finalize linkage pass in DirectX backend (PR #151071)
Chris B via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 4 10:42:43 PDT 2025
================
@@ -20,13 +20,13 @@ 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()) {
+ // Convert private globals and external globals with no usage to internal
+ // linkage.
+ for (GlobalVariable &GV : M.globals())
+ if (GV.hasPrivateLinkage() || (GV.hasExternalLinkage() && GV.use_empty())) {
----------------
llvm-beanz wrote:
We need to special case global constructors for library shaders. That's not optional.
https://github.com/llvm/llvm-project/pull/151071
More information about the llvm-commits
mailing list