При построении IR из существующего AST, у моего AST есть некоторые строковые значения (во время компиляции они построены из std::string
), и я хочу, чтобы они безопасно устанавливали их как llvm::Value
для использования в качестве части выражения,
В этом случае мне не нужно связывать строку во время выполнения, потому что строковые значения предназначены только для разрешения файлов как переменных, функций или классов во время компиляции (язык не поддерживает собственную строку тип).
Каков наилучший способ сохранить мое строковое содержимое как llvm::Value
и все еще иметь возможность получить его на более поздних этапах компиляции (когда выстраиваются выражения вложенности)?
Более конкретно, если я установил llvm::Value
с помощью:
llvm::Value* v = llvm::ConstantArray::get(llvmContext, myString.c_str());
Как безопасно получить строковое значение? Является ли llvm::ConstantArray
подходящим способом для переноса строк?