Сделайте LLVM встроенной функцией из библиотеки - PullRequest
10 голосов
/ 24 апреля 2010

Я пытаюсь сделать LLVM встроенную функцию из библиотеки.

У меня есть файлы битового кода LLVM (сгенерированные вручную), которые я связал вместе с llvm-link, и у меня также есть библиотека (написанная на C), скомпилированная в битовый код с помощью clang и заархивированная с помощью llvm-ar. Мне удается связать все вместе и выполнить, но мне не удается заставить LLVM встроить функцию из библиотеки. Любая подсказка о том, как это должно быть сделано?

1 Ответ

8 голосов
/ 25 апреля 2010

После того, как вы связали файлы битовых кодов с библиотекой, вы выполняете проход Internalize для связанного битового кода? Этап интернализации делает все функции (кроме main()) статическими и сообщает оптимизатору / генератору кода, что функции можно безопасно встроить без сохранения копии для некоторой (несуществующей) внешней ссылки.

Я вручную связываю свои файлы битовых кодов и библиотеки битовых кодов, используя код, заимствованный из llvm-ld, и выполняю этап интернализации, но я не уверен, что llvm-link проходит этап интернализации или нет.

...