2010-08-29 5 views
11

Tôi đang viết một trình biên dịch với LLVM. Mỗi tệp nguồn được biên dịch thành tệp bitcode LLVM. Cuối cùng, trình liên kết liên kết và tối ưu hóa tất cả các tệp bitcode thành một nhị phân cuối cùng.Có thể đọc tệp bitcoin LLVM vào mô-đun llvm :: Mô-đun không?

Tôi cần một cách để đọc các tệp bitcode trong trình biên dịch để truy cập thông tin loại. Các tài liệu LLVM cho thấy một lớp học được gọi là BitcodeReader, nhưng điều đó dường như là nội bộ để LLVM.

Có cách nào có thể truy cập công khai để đọc tệp bitcode vào llvm::Module không?

+0

Từ kinh nghiệm ngắn của tôi với LLVM tôi đã có ấn tượng rằng bitcode là nội bộ cho LLVM: không có gì khác ngoài đó những gì có thể đọc các tập tin bitcode. – Dummy00001

Trả lời

13

Tôi nhìn qua nguồn đến công cụ llvm-dis và thấy chức năng tôi đang tìm kiếm:

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

từ llvm/Bitcode/ReaderWriter.h.

+0

Đó chính xác là những gì bạn cần. –