Излучение одного ИК-файла битового кода с LLVM LLD с использованием CMake

Я использую Ubuntu 16.04 x86_64 и LLVM 5.0 и хотел бы скомпилировать проект в один файл битового кода IR LLVM с помощью CMake. Я знаю, что есть способ сделать это, используя GOLD Linker с плагином LLVM и добавить флаги компоновщика CMake " -fuse-ld = gold -Wl, -plugin-opt = emit-llvm " и флаг CXX " -flto ",

Но когда я пытаюсь скомпилировать проект с помощью компоновщика LLD LLVM и флага " -fuse-ld = lld -Wl, -plugin-opt = emit-llvm " соответственно " -flto ", компоновщик генерирует собственный исполняемый файл, и нет LLVM IR файл. Я искал другие варианты LLD, чтобы испустить файл LLVM IR, но ничего не нашел.

Есть ли способ (или вариант) для создания одного файла IR LLVM с использованием LLD?

1 ответ

Решение

Вы можете использовать -save-temps вариант.

clang -flto -fuse-ld=lld -Wl,-save-temps a.o b.o -o myprogram

Это сгенерирует myprogramXYZ.precodegen.bc среди других файлов. Вы можете использовать llvm-dis чтобы получить его в читаемом формате IR.

Другие вопросы по тегам