Unbreak the JIT
authorChris Lattner <sabre@nondot.org>
Fri, 15 Sep 2006 04:56:11 +0000 (04:56 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 15 Sep 2006 04:56:11 +0000 (04:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30384 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/JIT/JITEmitter.cpp

index 264caae2c9b394c3ca6fb6720f597c483ea06a19..4e556320ae9c66ae36dd09377af9bda79f8da224 100644 (file)
@@ -542,7 +542,7 @@ void *JITResolver::getFunctionStub(Function *F) {
   // Call the lazy resolver function unless we already KNOW it is an external
   // function, in which case we just skip the lazy resolution step.
   void *Actual = (void*)(intptr_t)LazyResolverFn;
-  if (F->isExternal())
+  if (F->isExternal() && !F->hasNotBeenReadFromBytecode())
     Actual = TheJIT->getPointerToFunction(F);
 
   // Otherwise, codegen a new stub.  For now, the stub will call the lazy
@@ -738,7 +738,7 @@ void *JITEmitter::getPointerToGlobal(GlobalValue *V, void *Reference,
   void *ResultPtr = TheJIT->getPointerToGlobalIfAvailable(F);
   if (ResultPtr) return ResultPtr;
 
-  if (F->isExternal()) {
+  if (F->isExternal() && !F->hasNotBeenReadFromBytecode()) {
     // If this is an external function pointer, we can force the JIT to
     // 'compile' it, which really just adds it to the map.
     if (DoesntNeedStub)