Hello,
This is probably a bit of a beginner's question but I am new to LLVM
I have been examining the possibility of constructing something similar to the JnJVM for a language which supports dynamic class loading. The problem I am having is determining how the JIT system allows for dynamic loading of functions into the JIT. The paper indicates the JnJVM use some sort of callback when the JIT hits a call it cannot yet resolve. How do I install such a handler?
Thanks in advance,
Carter.
lib/System/DynamicLibrary.cpp is a good place to look.
Evan
Hi Carter,
Carter Cheng wrote:
Hello,
This is probably a bit of a beginner's question but I am new to LLVM
I have been examining the possibility of constructing something similar to the JnJVM for a language which supports dynamic class loading. The problem I am having is determining how the JIT system allows for dynamic loading of functions into the JIT. The paper indicates the JnJVM use some sort of callback when the JIT hits a call it cannot yet resolve. How do I install such a handler?
You need to implement your own ModuleProvider and specialize the materialzeFunction function to do the dynamic loading. In vmkit, you can take a look at lib/JnJVM/VMCore/JnjvmModuleProvider.cpp file.
Nicolas
Thanks. I didnt realize that this particular function was a virtual inherited from the Module Provider interface. Out of curiousity what applications does the materializeModule function have and when does it get invoked?
Regards,
Carter.