[Orc] Fix local-linkage handling in the CompileOnDemand layer.
[oota-llvm.git] / lib / ExecutionEngine / Orc / IndirectionUtils.cpp
index 57616a5484077c0ef651073a3c39c5dbd758d739..74766450e8c416633b7b0ecac1501ee253dd8897 100644 (file)
@@ -1,3 +1,13 @@
+//===---- IndirectionUtils.cpp - Utilities for call indirection in Orc ----===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/ExecutionEngine/Orc/CloneSubModule.h"
 #include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
@@ -5,9 +15,8 @@
 #include "llvm/IR/IRBuilder.h"
 #include <set>
 
-using namespace llvm;
-
 namespace llvm {
+namespace orc {
 
 GlobalVariable* createImplPointer(Function &F, const Twine &Name,
                                   Constant *Initializer) {
@@ -45,7 +54,7 @@ void partition(Module &M, const ModulePartitionMap &PMap) {
         if (KVPair.second.count(&Orig)) {
           copyGVInitializer(New, Orig, VMap);
         }
-        if (New.getLinkage() == GlobalValue::PrivateLinkage) {
+        if (New.hasLocalLinkage()) {
           New.setLinkage(GlobalValue::ExternalLinkage);
           New.setVisibility(GlobalValue::HiddenVisibility);
         }
@@ -55,7 +64,7 @@ void partition(Module &M, const ModulePartitionMap &PMap) {
       [&](Function &New, const Function &Orig, ValueToValueMapTy &VMap) {
         if (KVPair.second.count(&Orig))
           copyFunctionBody(New, Orig, VMap);
-        if (New.getLinkage() == GlobalValue::InternalLinkage) {
+        if (New.hasLocalLinkage()) {
           New.setLinkage(GlobalValue::ExternalLinkage);
           New.setVisibility(GlobalValue::HiddenVisibility);
         }
@@ -106,4 +115,5 @@ FullyPartitionedModule fullyPartition(Module &M) {
   return MP;
 }
 
-}
+} // End namespace orc.
+} // End namespace llvm.