Introduce llvm-c function LLVMPrintModuleToFile.

This lets you save the textual representation of the LLVM IR to a file.
Before this patch it could only be printed to STDERR from llvm-c.

Patch by Carlo Kok!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156479 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg
2012-05-09 16:54:17 +00:00
parent 30759542aa
commit 5c87b4958d
2 changed files with 28 additions and 0 deletions

View File

@@ -115,6 +115,25 @@ void LLVMDumpModule(LLVMModuleRef M) {
unwrap(M)->dump();
}
LLVMBool LLVMPrintModuleToFile(LLVMModuleRef M, const char *Filename,
char **ErrorMessage) {
std::string error;
raw_fd_ostream dest(Filename, error);
if (!error.empty()) {
*ErrorMessage = strdup(error.c_str());
return true;
}
unwrap(M)->print(dest, NULL);
if (!error.empty()) {
*ErrorMessage = strdup(error.c_str());
return true;
}
dest.flush();
return false;
}
/*--.. Operations on inline assembler ......................................--*/
void LLVMSetModuleInlineAsm(LLVMModuleRef M, const char *Asm) {
unwrap(M)->setModuleInlineAsm(StringRef(Asm));