2010-08-29 16 views
11

Sto scrivendo un compilatore con LLVM. Ogni file sorgente è compilato in un file di codice bit LLVM. Alla fine il linker collega e ottimizza tutti i file di bitcode in un binario finale.È possibile leggere un file di codice bit LLVM in un llvm :: Module?

Ho bisogno di un modo per leggere i file di codice bit nel compilatore per accedere alle informazioni sul tipo. La documentazione LLVM mostra una classe chiamata BitcodeReader, ma sembra essere interna a LLVM.

Esiste un modo pubblicamente accessibile per leggere un file di bitcode in un llvm::Module?

+0

Dalla mia breve esperienza con LLVM ho avuto l'impressione che il codice di bit sia interno a LLVM: non c'è nient'altro che cosa può leggere i file di codice bit. – Dummy00001

risposta

13

ho guardato attraverso la sorgente allo strumento llvm-dis e hanno trovato la funzione che cercavo:

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

da llvm/Bitcode/ReaderWriter.h.

+0

Questo è esattamente ciò di cui hai bisogno. –