diff options
-rw-r--r-- | include/llvm-c/Core.h | 8 | ||||
-rw-r--r-- | lib/IR/Core.cpp | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h index 89ddf41..30b1d82 100644 --- a/include/llvm-c/Core.h +++ b/include/llvm-c/Core.h @@ -1212,6 +1212,14 @@ void LLVMSetValueName(LLVMValueRef Val, const char *Name); void LLVMDumpValue(LLVMValueRef Val); /** + * Return a string representation of the value. Use + * LLVMDisposeMessage to free the string. + * + * @see llvm::Value::print() + */ +char *LLVMPrintValueToString(LLVMValueRef Val); + +/** * Replace all uses of a value with another one. * * @see llvm::Value::replaceAllUsesWith() diff --git a/lib/IR/Core.cpp b/lib/IR/Core.cpp index 40db69b..63cc2f6 100644 --- a/lib/IR/Core.cpp +++ b/lib/IR/Core.cpp @@ -474,6 +474,16 @@ void LLVMDumpValue(LLVMValueRef Val) { unwrap(Val)->dump(); } +char* LLVMPrintValueToString(LLVMValueRef Val) { + std::string buf; + raw_string_ostream os(buf); + + unwrap(Val)->print(os); + os.flush(); + + return strdup(buf.c_str()); +} + void LLVMReplaceAllUsesWith(LLVMValueRef OldVal, LLVMValueRef NewVal) { unwrap(OldVal)->replaceAllUsesWith(unwrap(NewVal)); } |