llvm - 在LLVM IR中,如何获取指针类型的指针值?

标签 llvm

我正在写一个通行证来做不断的折叠。 像这样的 C 代码:

int a = 4;
int b = a + 5;

我想将其转换为:

int b = 4 + 5;

但是第一段代码会为int a生成一条指令:

store i32 4, i32* %a, align 4

如何从我的 Pass 中的指针“i32* %a”获取值“%a”? 这样我就可以将 Value %a 的所有使用替换为 ConstantInt ?

最佳答案

使用 load说明:

%1 = load i32* %a, align 4

关于llvm - 在LLVM IR中,如何获取指针类型的指针值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35040311/

相关文章:

c++ - LLVM中如何获取GetElementInst、AllocaInst或LoadInst的左值?

x86 - 如何使用 LLVM 在某些指令后插入调用?

c++ - 我如何从 Clang 获取 LLVM 类型?

clang - 如何在 HTML 中构建 LLVM doxygen?我试过但失败了

c++ - 如何从 LLVM 的中间表示中获取在程序的每个函数中执行的函数调用列表?

iphone - iPhone 3G 上的坐标全错了?这可能是你的编译器

c++ - llvm 可以发出跳转到函数内给定地址的代码吗?

c++ - 有没有什么办法可以告诉 clang 在没有其他优化的情况下生成 TBAA 元数据?

c++ - 如何使用 IRBuilder 更新 LLVM IR 中的全局变量值?

linux - 在配置脚本中安装依赖项