mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-30 23:21:04 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91209 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5cc966a6c1
commit
9b8ff28870
@ -681,7 +681,7 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) {
|
|||||||
if (Ptr) return Ptr;
|
if (Ptr) return Ptr;
|
||||||
|
|
||||||
// If the global is external, just remember the address.
|
// If the global is external, just remember the address.
|
||||||
if (GV->isDeclaration() || GV->hasAvailableExternallyLinkage()) {
|
if (GV->isDeclaration()) {
|
||||||
#if HAVE___DSO_HANDLE
|
#if HAVE___DSO_HANDLE
|
||||||
if (GV->getName() == "__dso_handle")
|
if (GV->getName() == "__dso_handle")
|
||||||
return (void*)&__dso_handle;
|
return (void*)&__dso_handle;
|
||||||
|
@ -534,31 +534,6 @@ TEST_F(JITTest, FunctionPointersOutliveTheirCreator) {
|
|||||||
#endif
|
#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
|
// 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
|
// the tests in this directory. Everything seems fine, but that's strange
|
||||||
// behavior.
|
// behavior.
|
||||||
|
Loading…
Reference in New Issue
Block a user