Возможно ли прочитать файл бит-кода LLVM в llvm:: Module?

Я пишу компилятор с LLVM. Каждый исходный файл скомпилирован в файл битового кода LLVM. В конечном итоге компоновщик связывает и оптимизирует все файлы битового кода в один окончательный двоичный файл.

Мне нужен способ прочитать файлы биткода в компиляторе, чтобы получить доступ к информации о типе. В документации LLVM показан класс с именем BitcodeReader, но он кажется внутренним для LLVM.

Есть ли общедоступный способ чтения файла с битами в llvm::Module?

Ответ 1

Я просмотрел источник с помощью инструмента llvm-dis и нашел функцию, которую я искал:

Module *ParseBitcodeFile(MemoryBuffer *Buffer, LLVMContext& Context,
                         std::string *ErrMsg = 0);

из llvm/Bitcode/ReaderWriter.h.