[llvm-commits] [llvm] r91209 - in /llvm/trunk: lib/ExecutionEngine/JIT/JIT.cpp unittests/ExecutionEngine/JIT/JITTest.cpp

Jeffrey Yasskin jyasskin at google.com
Sun Dec 13 12:33:12 PST 2009


Thanks for the patch! I've reapplied the whole thing in r91250.

On Fri, Dec 11, 2009 at 11:20 PM, Nick Lewycky <nlewycky at google.com> wrote:
> It was just missing -rdynamic. Patch attached.
>
> Nick
>
> 2009/12/11 Jeffrey Yasskin <jyasskin at google.com>
>>
>> Author: jyasskin
>> Date: Sat Dec 12 00:18:46 2009
>> New Revision: 91209
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=91209&view=rev
>> Log:
>> Revert r91208.  Something on Linux prevents the JIT from looking up a
>> symbol
>> defined in the test, and I don't have time tonight to figure it out.
>>
>> Modified:
>>    llvm/trunk/lib/ExecutionEngine/JIT/JIT.cpp
>>    llvm/trunk/unittests/ExecutionEngine/JIT/JITTest.cpp
>>
>> Modified: llvm/trunk/lib/ExecutionEngine/JIT/JIT.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/JIT/JIT.cpp?rev=91209&r1=91208&r2=91209&view=diff
>>
>>
>> ==============================================================================
>> --- llvm/trunk/lib/ExecutionEngine/JIT/JIT.cpp (original)
>> +++ llvm/trunk/lib/ExecutionEngine/JIT/JIT.cpp Sat Dec 12 00:18:46 2009
>> @@ -681,7 +681,7 @@
>>   if (Ptr) return Ptr;
>>
>>   // If the global is external, just remember the address.
>> -  if (GV->isDeclaration() || GV->hasAvailableExternallyLinkage()) {
>> +  if (GV->isDeclaration()) {
>>  #if HAVE___DSO_HANDLE
>>     if (GV->getName() == "__dso_handle")
>>       return (void*)&__dso_handle;
>>
>> Modified: llvm/trunk/unittests/ExecutionEngine/JIT/JITTest.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/JIT/JITTest.cpp?rev=91209&r1=91208&r2=91209&view=diff
>>
>>
>> ==============================================================================
>> --- llvm/trunk/unittests/ExecutionEngine/JIT/JITTest.cpp (original)
>> +++ llvm/trunk/unittests/ExecutionEngine/JIT/JITTest.cpp Sat Dec 12
>> 00:18:46 2009
>> @@ -534,31 +534,6 @@
>>  #endif
>>  }
>>
>> -}  // anonymous namespace
>> -// This variable is intentionally defined differently in the
>> statically-compiled
>> -// program from the IR input to the JIT to assert that the JIT doesn't
>> use its
>> -// definition.
>> -extern "C" int32_t JITTest_AvailableExternallyGlobal;
>> -int32_t JITTest_AvailableExternallyGlobal = 42;
>> -namespace {
>> -
>> -TEST_F(JITTest, AvailableExternallyGlobalIsntEmitted) {
>> -  TheJIT->DisableLazyCompilation(true);
>> -  LoadAssembly("@JITTest_AvailableExternallyGlobal = "
>> -               "  available_externally global i32 7 "
>> -               " "
>> -               "define i32 @loader() { "
>> -               "  %result = load i32* @JITTest_AvailableExternallyGlobal
>> "
>> -               "  ret i32 %result "
>> -               "} ");
>> -  Function *loaderIR = M->getFunction("loader");
>> -
>> -  int32_t (*loader)() = reinterpret_cast<int32_t(*)()>(
>> -    (intptr_t)TheJIT->getPointerToFunction(loaderIR));
>> -  EXPECT_EQ(42, loader()) << "func should return 42 from the external
>> global,"
>> -                          << " not 7 from the IR version.";
>> -}
>> -
>>  // This code is copied from JITEventListenerTest, but it only runs once
>> for all
>>  // the tests in this directory.  Everything seems fine, but that's
>> strange
>>  // behavior.
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>




More information about the llvm-commits mailing list