当从现有的AST构建IR时,我的AST有一些字符串值(在编译时它们是从std::string
构建的),我想将它们安全地设置为llvm::Value
以用作表达式的一部分。LLVM字符串值对象:如何从值中检索字符串?
在这种情况下,我不需要在运行时绑定字符串,因为字符串值仅用于在编译时将其作为变量,函数或类来解析(该语言不支持本机字符串类型)。
请告诉我让我的字符串内容llvm::Value
和最好的办法还是可以在编译的后期阶段(当嵌套表达式建)以获取它?
更具体地说,如果我设置llvm::Value
有:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
如何安全地获取字符串值?是llvm::ConstantArray
合适的方式来包装字符串?