2010-08-29 94 views
11

我正在用LLVM编写一个编译器。每个源文件都被编译成一个LLVM位码文件。最终链接器将所有位代码文件链接并优化为一个最终的二进制文件。是否有可能将LLVM位代码文件读入到llvm :: Module中?

我需要一种方法来读取编译器中的位码文件以访问类型信息。 LLVM文档显示名为BitcodeReader的类,但似乎是LLVM的内部。

有没有公开的方法可以将位代码文件读入llvm::Module

+0

根据我在LLVM方面的经验,我对LLVM的内部代码有印象:没有其他东西可以读取位码文件。 – Dummy00001 2010-08-29 22:47:58

回答

13

我通过源看向llvm-dis工具,并发现我一直在寻找的功能:

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

llvm/Bitcode/ReaderWriter.h

+0

这正是你需要的。 – 2010-09-04 11:49:40