[LLVMdev] What is on the LLVM horizon for truly relocatable JITted code?

Christian Schafmeister chris.schaf at verizon.net
Mon Feb 16 11:47:27 PST 2015


Hello everyone,


Is fully relocatable/position-independent JITted code on the horizon or currently possible with LLVM?

I’ve written a Common Lisp compiler (currently called Clasp:  https://github.com/drmeister/clasp) in C++ that uses LLVM as the backend and interoperates with C++.  It uses copying garbage collection via the Memory Pool System (MPS) garbage collector by Ravenbrook.  This garbage collector is precise on the heap and conservative on the stack.

Currently I JIT code to wherever LLVM drops the code and it remains fixed in memory.  This causes some problems for implementing a dynamic language like Common Lisp because CL considers data and code to be equivalent.

I’d like to move the code into the MPS managed memory and be able to apply copying garbage collection to it.  Is this possible?   Will it ever be possible?

Best,

Christian Schafmeister
Professor
Chemistry Department
Temple University



More information about the llvm-dev mailing list