Revert r278065 while I investigate some build-bot breakage.
authorLang Hames <lhames@gmail.com>
Mon, 8 Aug 2016 22:57:30 +0000 (22:57 +0000)
committerLang Hames <lhames@gmail.com>
Mon, 8 Aug 2016 22:57:30 +0000 (22:57 +0000)
llvm-svn: 278069

llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
llvm/test/ExecutionEngine/MCJIT/Inputs/weak-function-2.ll [deleted file]
llvm/test/ExecutionEngine/MCJIT/weak-function.ll [deleted file]
llvm/test/ExecutionEngine/OrcMCJIT/Inputs/weak-function-2.ll [deleted file]
llvm/test/ExecutionEngine/OrcMCJIT/weak-function.ll [deleted file]

index db9c519..805852b 100644 (file)
@@ -116,13 +116,11 @@ class OrcMCJITReplacement : public ExecutionEngine {
     LinkingResolver(OrcMCJITReplacement &M) : M(M) {}
 
     JITSymbol findSymbol(const std::string &Name) override {
-      return M.ClientResolver->findSymbol(Name);
+      return M.findMangledSymbol(Name);
     }
 
     JITSymbol findSymbolInLogicalDylib(const std::string &Name) override {
-      if (auto Sym = M.findMangledSymbol(Name))
-        return Sym;
-      return M.ClientResolver->findSymbolInLogicalDylib(Name);
+      return M.ClientResolver->findSymbol(Name);
     }
 
   private:
index 0c69b1a..1770525 100644 (file)
@@ -226,24 +226,6 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
       // Compute JIT symbol flags.
       JITSymbolFlags JITSymFlags = JITSymbolFlags::fromObjectSymbol(*I);
 
-      // If this is a weak definition, check to see if there's a strong one.
-      // If there is, skip this symbol (we won't be providing it: the strong
-      // definition will). If there's no strong definition, make this definition
-      // strong.
-      if (JITSymFlags.isWeak()) {
-        // First check whether there's already a definition in this instance.
-        // FIXME: Override existing weak definitions with strong ones.
-        if (GlobalSymbolTable.count(Name))
-          continue;
-        // Then check the symbol resolver to see if there's a definition
-        // elsewhere in this logical dylib.
-        if (auto Sym = Resolver.findSymbolInLogicalDylib(Name))
-          if (Sym.getFlags().isStrongDefinition())
-            continue;
-        // else
-        JITSymFlags &= ~JITSymbolFlags::Weak;
-      }
-
       if (Flags & SymbolRef::SF_Absolute &&
           SymType != object::SymbolRef::ST_File) {
         uint64_t Addr = 0;
diff --git a/llvm/test/ExecutionEngine/MCJIT/Inputs/weak-function-2.ll b/llvm/test/ExecutionEngine/MCJIT/Inputs/weak-function-2.ll
deleted file mode 100644 (file)
index a7ff83d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-define linkonce_odr i32 @baz() #0 {
-entry:
-  ret i32 0
-}
-
-define i8* @bar() {
-entry:
-  ret i8* bitcast (i32 ()* @baz to i8*)
-}
diff --git a/llvm/test/ExecutionEngine/MCJIT/weak-function.ll b/llvm/test/ExecutionEngine/MCJIT/weak-function.ll
deleted file mode 100644 (file)
index 562d6ad..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: lli -jit-kind=mcjit -extra-module %p/Inputs/weak-function-2.ll %s
-;
-; Check that functions in two different modules agree on the address of weak
-; function 'baz'
-
-define linkonce_odr i32 @baz() {
-entry:
-  ret i32 0
-}
-
-define i8* @foo() {
-entry:
-  ret i8* bitcast (i32 ()* @baz to i8*)
-}
-
-declare i8* @bar()
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-  %call = tail call i8* @foo()
-  %call1 = tail call i8* @bar()
-  %cmp = icmp ne i8* %call, %call1
-  %conv = zext i1 %cmp to i32
-  ret i32 %conv
-}
-
diff --git a/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/weak-function-2.ll b/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/weak-function-2.ll
deleted file mode 100644 (file)
index a7ff83d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-define linkonce_odr i32 @baz() #0 {
-entry:
-  ret i32 0
-}
-
-define i8* @bar() {
-entry:
-  ret i8* bitcast (i32 ()* @baz to i8*)
-}
diff --git a/llvm/test/ExecutionEngine/OrcMCJIT/weak-function.ll b/llvm/test/ExecutionEngine/OrcMCJIT/weak-function.ll
deleted file mode 100644 (file)
index db255cd..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: lli -jit-kind=orc-mcjit -extra-module %p/Inputs/weak-function-2.ll %s
-;
-; Check that functions in two different modules agree on the address of weak
-; function 'baz'
-
-define linkonce_odr i32 @baz() {
-entry:
-  ret i32 0
-}
-
-define i8* @foo() {
-entry:
-  ret i8* bitcast (i32 ()* @baz to i8*)
-}
-
-declare i8* @bar()
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-  %call = tail call i8* @foo()
-  %call1 = tail call i8* @bar()
-  %cmp = icmp ne i8* %call, %call1
-  %conv = zext i1 %cmp to i32
-  ret i32 %conv
-}
-