2010-08-29 13 views
11

Estoy escribiendo un compilador con LLVM. Cada archivo fuente se compila en un archivo de código de bits LLVM. Finalmente, el vinculador vincula y optimiza todos los archivos de código de bits en un binario final.¿Es posible leer un archivo de código de bits LLVM en un módulo llvm ::?

Necesito una forma de leer los archivos de código de bits en el compilador para acceder a la información de tipo. La documentación de LLVM muestra una clase llamada BitcodeReader, pero que parece ser interna a LLVM.

¿Hay alguna manera públicamente accesible para leer un archivo de código de bits en llvm::Module?

+0

De mi corta experiencia con LLVM tuve la impresión de que el código de bits es interno al LLVM: no hay nada más que pueda leer los archivos de código de bits. – Dummy00001

Respuesta

13

Miré a través de la fuente de la herramienta llvm-dis y encontró la función que estaba buscando:

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

de llvm/Bitcode/ReaderWriter.h.

+0

Eso es exactamente lo que necesita. –