[llvm-commits] [llvm] r100269 - /llvm/trunk/lib/Transforms/IPO/Internalize.cpp

Chris Lattner sabre at nondot.org
Fri Apr 2 22:24:50 PDT 2010


Author: lattner
Date: Sat Apr  3 00:24:50 2010
New Revision: 100269

URL: http://llvm.org/viewvc/llvm-project?rev=100269&view=rev
Log:
don't internalize available_externally functions, they are
really just declarations.  This is related to PR6524

Modified:
    llvm/trunk/lib/Transforms/IPO/Internalize.cpp

Modified: llvm/trunk/lib/Transforms/IPO/Internalize.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Internalize.cpp?rev=100269&r1=100268&r2=100269&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/Internalize.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/Internalize.cpp Sat Apr  3 00:24:50 2010
@@ -156,6 +156,8 @@
   for (Module::global_iterator I = M.global_begin(), E = M.global_end();
        I != E; ++I)
     if (!I->isDeclaration() && !I->hasLocalLinkage() &&
+        // Available externally is really just a "declaration with a body".
+        !I->hasAvailableExternallyLinkage() &&
         !ExternalNames.count(I->getName())) {
       I->setLinkage(GlobalValue::InternalLinkage);
       Changed = true;
@@ -167,6 +169,8 @@
   for (Module::alias_iterator I = M.alias_begin(), E = M.alias_end();
        I != E; ++I)
     if (!I->isDeclaration() && !I->hasInternalLinkage() &&
+        // Available externally is really just a "declaration with a body".
+        !I->hasAvailableExternallyLinkage() &&
         !ExternalNames.count(I->getName())) {
       I->setLinkage(GlobalValue::InternalLinkage);
       Changed = true;





More information about the llvm-commits mailing list