【发布时间】:2018-11-11 14:59:48
【问题描述】:
我有一个简单的添加程序。
int main() {
int x=10,y=10,result=0;
result=x+y;
return 0;
}
我创建了一个可以遍历整个模块的 LLVM 前端模块通道。
所以我的 pass 遍历基本块并获取我的指令。
FORE(iter, (*bb)) {
if(isa<AllocaInst>(iter)) {
errs()<<"The address of allocated variable is "<<&(*iter);
}
}
它的输出将是 alloca 指令的地址,而不是局部变量的实际堆栈地址。
有什么方法可以通过pass获取局部变量的栈地址吗?
【问题讨论】: