Я играю с LLVM С++ API. Я хотел бы JIT компилировать код и запускать его.
Однако мне нужно вызвать метод С++ из указанного JIT-скомпилированного кода. Обычно LLVM обрабатывает вызовы методов как вызовы функций с указателем объекта, переданным как первый аргумент, поэтому вызов не должен быть проблемой. Реальная проблема заключается в том, чтобы получить эту функцию в LLVM.
Насколько я вижу, можно использовать внешнюю связь для функций и получить ее по ее имени. Проблема в том, что, поскольку это метод C++, его имя будет искалечено, поэтому я не думаю, что это хорошая идея пойти таким образом.
Создание объекта FunctionType
достаточно просто. Но оттуда, как я могу сообщить LLVM моего метода и получить для него объект Function
?