Don't try to check all uses if lazy loading.
This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set
in a few cases.
This should have no impact in ld64 since it doesn't use lazy loading
when merging modules and that is when it checks
LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN.
llvm-svn: 257915
diff --git a/llvm/lib/CodeGen/Analysis.cpp b/llvm/lib/CodeGen/Analysis.cpp
index 75579a2..97b692f 100644
--- a/llvm/lib/CodeGen/Analysis.cpp
+++ b/llvm/lib/CodeGen/Analysis.cpp
@@ -639,6 +639,11 @@
if (isa<GlobalAlias>(GV))
return false;
+ // If we don't see every use, we have to be conservative and assume the value
+ // address is significant.
+ if (GV->getParent()->getMaterializer())
+ return false;
+
GlobalStatus GS;
if (GlobalStatus::analyzeGlobal(GV, GS))
return false;