SectionMemoryManager shouldn't be a JITMemoryManager. Previously, the
authorFilip Pizlo <fpizlo@apple.com>
Tue, 14 May 2013 19:29:00 +0000 (19:29 +0000)
committerFilip Pizlo <fpizlo@apple.com>
Tue, 14 May 2013 19:29:00 +0000 (19:29 +0000)
commit13a3cf192887233fb9452ec5b7f841e4652c33c7
tree68b95b8ef313e2cc3e179c9966a920afa855932b
parenta29a8965e206e689d292d7f2e42f2548770e30d3
SectionMemoryManager shouldn't be a JITMemoryManager. Previously, the
EngineBuilder interface required a JITMemoryManager even if it was being used
to construct an MCJIT. But the MCJIT actually wants a RTDyldMemoryManager.
Consequently, the SectionMemoryManager, which is meant for MCJIT, derived
from the JITMemoryManager and then stubbed out a bunch of JITMemoryManager
methods that weren't relevant to the MCJIT.

This patch fixes the situation: it teaches the EngineBuilder that
RTDyldMemoryManager is a supertype of JITMemoryManager, and that it's
appropriate to pass a RTDyldMemoryManager instead of a JITMemoryManager if
we're using the MCJIT. This allows us to remove the stub methods from
SectionMemoryManager, and make SectionMemoryManager a direct subtype of
RTDyldMemoryManager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181820 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ExecutionEngine/ExecutionEngine.h
include/llvm/ExecutionEngine/SectionMemoryManager.h
lib/ExecutionEngine/ExecutionEngine.cpp
lib/ExecutionEngine/MCJIT/MCJIT.cpp
lib/ExecutionEngine/MCJIT/MCJIT.h
tools/lli/lli.cpp
unittests/ExecutionEngine/MCJIT/MCJITTestBase.h