llvm - 将 std::string 转换为 llvm::MemoryBuffer

标签 llvm llvm-ir

我希望从现有的 LLVM IR 代码创建 LLVM 模块。

我发现的两种方法如下:

  • ParseIRFile - 接受文件名并生成模块
  • ParseIR - 它接受 MemoryBuffer 并生成一个模块

当 LLVM IR 已作为 std::stringconst char * 读取为字符串时,我想创建一个模块。

有没有办法将 IR 字符串转换为 llvm::MemoryBuffer

最佳答案

我在同事的帮助下解决了这个问题。

您将这样做:

std::string IRString = readfile("add.ll");
MemoryBuffer *mem = MemoryBuffer::getMemBuffer(IRString);

关于llvm - 将 std::string 转换为 llvm::MemoryBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273509/

相关文章:

cuda - 内核参数数据存放在哪里?

c++ - LLVM 检索 AllocaInst 的名称

c++ - 如何使用 call 和 alloca 指令在 llvm 字节码中定位类名?

c++ - LLVM如何无一异常(exception)地使用C++的标准容器?

LLVM IR getelementptr LLVM C API 等效项

llvm - 通过 llvm 的死代码消除过程删除指令

c++ - LLVM - 如何将 ConstantExpr 转换为 ConstantDataArray 以便打印全局变量 char* 的值?

debugging - 为 clang 的优化过程启用调试输出

c++ - LLVM StoreInst 和 AllocaInst

objective-c - 对象由 "0 key/value pairs"表示,而不是 LLVM 中的内存地址