LLVM: Как получить доступ к JIT API во время выполнения и редактировать себя? - PullRequest
0 голосов
/ 14 марта 2011

не могли бы вы предложить, если возможно получить доступ к LLVM JIT API из выполняемой программы?Моя цель - иметь возможность манипулировать (добавлять / обновлять / удалять) классами, методами и данными на лету.

Желательно, чтобы я остался с Clang.Любые идеи приветствуются.

1 Ответ

3 голосов
/ 15 марта 2011

Это кажется довольно простым делом.В JIT вы можете обеспечить сопоставление между любой внешней функцией и произвольным адресом.Итак, в основном вы просто определите какую-то функцию в вашем IR, будучи JITed, привяжите ее к адресу во внешнем мире, и это поможет вам.

В частности, http://llvm.org/doxygen/classllvm_1_1ExecutionEngine.html#a805704b52a327cc6b37aebf9cba14169 - этофункция, которую вы должны использовать здесь.

...