2010-08-29 6 views
11

Ich schreibe einen Compiler mit LLVM. Jede Quelldatei wird in eine LLVM-Bitcodedatei kompiliert. Schließlich verknüpft und optimiert der Linker alle Bitcodedateien zu einer endgültigen Binärdatei.Kann eine LLVM-Bitcode-Datei in ein llvm :: Module gelesen werden?

Ich brauche eine Möglichkeit, die Bitcode-Dateien im Compiler zu lesen, um auf die Typinformationen zuzugreifen. Die LLVM-Dokumentation zeigt eine Klasse mit dem Namen BitcodeReader, die jedoch für LLVM intern zu sein scheint.

Gibt es eine öffentlich zugängliche Möglichkeit, eine Bitcode-Datei in eine llvm::Module zu lesen?

+0

Von meiner kurzen Erfahrung mit LLVM hatte ich den Eindruck, dass der Bitcode im LLVM intern ist: Es gibt nichts anderes da draußen, was die Bitcodedateien lesen kann. – Dummy00001

Antwort

13

Ich sah durch die Quelle an das llvm-dis Werkzeug und fand die Funktion, die ich suchte:

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

von llvm/Bitcode/ReaderWriter.h.

+0

Genau das brauchen Sie. –

Verwandte Themen