diff options
author | Lang Hames <lhames@gmail.com> | 2013-12-07 03:05:51 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2013-12-07 03:05:51 +0000 |
commit | a6913580781b62c2e9b79f9da4a30a1ee84b90b7 (patch) | |
tree | dd9b3e27838bd453bb43ec7231f87856377d2f6a /llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h | |
parent | bbf18c69580e19e260ffeb7c6e7872905c606e9c (diff) | |
download | bcm5719-llvm-a6913580781b62c2e9b79f9da4a30a1ee84b90b7.tar.gz bcm5719-llvm-a6913580781b62c2e9b79f9da4a30a1ee84b90b7.zip |
Add support for archives and object file caching under MCJIT.
Patch by Andy Kaylor, with minor edits to resolve merge conflicts.
llvm-svn: 196639
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h')
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h index 3014b30773a..183cf6cf365 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h @@ -311,12 +311,18 @@ protected: virtual void updateGOTEntries(StringRef Name, uint64_t Addr) {} virtual ObjectImage *createObjectImage(ObjectBuffer *InputBuffer); + virtual ObjectImage *createObjectImageFromFile(object::ObjectFile *InputObject); + + // This is the implementation for the two public overloads + ObjectImage *loadObject(ObjectImage *InputObject); + public: RuntimeDyldImpl(RTDyldMemoryManager *mm) : MemMgr(mm), HasError(false) {} virtual ~RuntimeDyldImpl(); ObjectImage *loadObject(ObjectBuffer *InputBuffer); + ObjectImage *loadObject(object::ObjectFile *InputObject); void *getSymbolAddress(StringRef Name) { // FIXME: Just look up as a function for now. Overly simple of course. @@ -354,6 +360,7 @@ public: StringRef getErrorString() { return ErrorStr; } virtual bool isCompatibleFormat(const ObjectBuffer *Buffer) const = 0; + virtual bool isCompatibleFile(const ObjectFile *Obj) const = 0; virtual void registerEHFrames(); |