diff options
author | Lang Hames <lhames@gmail.com> | 2015-03-31 20:31:14 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2015-03-31 20:31:14 +0000 |
commit | 3dac3f7fe6e541980fdd4d3fb9575107cbc74c19 (patch) | |
tree | 99ccf7b4ab37da4053f610ab2483e034fc4ff2ef /llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp | |
parent | b99d9a0a816bf8a9e3cce1c6ccba099669ac1e62 (diff) | |
download | bcm5719-llvm-3dac3f7fe6e541980fdd4d3fb9575107cbc74c19.tar.gz bcm5719-llvm-3dac3f7fe6e541980fdd4d3fb9575107cbc74c19.zip |
[ExecutionEngine] Fix MCJIT::addGlobalMapping.
This patch fixes MCJIT::addGlobalMapping by changing the implementation of the
ExecutionEngineState class. The new implementation maintains a bidirectional
mapping between symbol names (std::strings) and addresses (uint64_ts), rather
than a mapping between Value*s and void*s.
This has fix has been made for backwards compatibility, however the strongly
preferred way to resolve unknown symbols is by writing a custom
RuntimeDyld::SymbolResolver (formerly RTDyldMemoryManager) and overriding the
findSymbol method. The addGlobalMapping method is a hangover from the legacy JIT
(which has was removed in 3.6), and may be deprecated in a future release as
part of a clean-up of the ExecutionEngine interface.
Patch by Murat Bolat. Thanks Murat!
llvm-svn: 233747
Diffstat (limited to 'llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp')
-rw-r--r-- | llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp b/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp index 8ffc1c8f2c6..80d4ea2db45 100644 --- a/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp +++ b/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp @@ -54,6 +54,7 @@ TEST_F(ExecutionEngineTest, ForwardGlobalMapping) { int32_t Mem1 = 3; Engine->addGlobalMapping(G1, &Mem1); EXPECT_EQ(&Mem1, Engine->getPointerToGlobalIfAvailable(G1)); + EXPECT_EQ(&Mem1, Engine->getPointerToGlobalIfAvailable("Global1")); int32_t Mem2 = 4; Engine->updateGlobalMapping(G1, &Mem2); EXPECT_EQ(&Mem2, Engine->getPointerToGlobalIfAvailable(G1)); |