available_externall linkage is not local, this was confusing the codegenerator,

and it wasn't generating calls through @PLT for these functions.
hasLocalLinkage() is now false for available_externally,
I attempted to fix the inliner and dce to handle available_externally properly.
It passed make check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72328 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Torok Edwin
2009-05-23 14:06:57 +00:00
parent d14ce2f1fc
commit f5ff1d335b
6 changed files with 28 additions and 7 deletions
+2 -1
View File
@@ -130,7 +130,8 @@ void BasicInlinerImpl::inlineFunctions() {
// Inline
if (InlineFunction(CS, NULL, TD)) {
if (Callee->use_empty() && Callee->hasLocalLinkage())
if (Callee->use_empty() && (Callee->hasLocalLinkage() ||
Callee->hasAvailableExternallyLinkage()))
DeadFunctions.insert(Callee);
Changed = true;
CallSites.erase(CallSites.begin() + index);