diff options
Diffstat (limited to 'lib/ExecutionEngine/JIT/JIT.cpp')
| -rw-r--r-- | lib/ExecutionEngine/JIT/JIT.cpp | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp index f8ae8844616dc..43995cb0ecd61 100644 --- a/lib/ExecutionEngine/JIT/JIT.cpp +++ b/lib/ExecutionEngine/JIT/JIT.cpp @@ -563,6 +563,11 @@ void *JIT::getPointerToFunction(Function *F) {      return Addr;   // Check if function already code gen'd    MutexGuard locked(lock); +   +  // Now that this thread owns the lock, check if another thread has already +  // code gen'd the function. +  if (void *Addr = getPointerToGlobalIfAvailable(F)) +    return Addr;      // Make sure we read in the function if it exists in this Module.    if (F->hasNotBeenReadFromBitcode()) {  | 
