[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