c++ - 将常量整数转换为值* LLVM

标签 c++ performance optimization compiler-construction llvm

我正在尝试创建一个 IR 指令

store i32 0, i32* %3, align 4

我正在使用的方法

StoreInst *CreateAlignedStore(Value *Val, Value *Ptr, unsigned Align, bool isVolatile = false)

创建指令。由于第一个参数采用 Value*,因此我需要以某种方式将 0 转换为 Value*

你能帮我吗?

最佳答案

您可以对 *val 使用 llvm::Constant,llvm Constant 继承自 Value。为 0 创建常量的一种方法是

llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), 0)

其中 Ctx 是您要插入 StoreInst 的函数的上下文

关于c++ - 将常量整数转换为值* LLVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51753888/

相关文章:

c++ - 如何优化间接基数排序? (又名如何优化不可预测的内存访问模式)

matlab - 使用一组开始和结束索引索引数组

c++ - 使用 epoll 边缘触发时套接字上的数据过多

c++ - 在 vector 中使用现有对象,如果 C++ 中不存在则创建新对象

PHP XMPP 机器人性能

performance - 哪个英特尔微体系结构引入了ADC reg,0单uop特殊情况?

mysql - 我该如何优化这个 MySQL 查询?

c++ - 如何通过流插入运算符调用成员函数?

c++ - void(**rptr)() 和 main() 中的调用如何在这个解决方案中工作,在 C++ 中无循环地打印 1-100?

javascript - 通过 CSS 或 JS 缩放 Canvas 是否更高效?