【发布时间】:2016-02-07 20:31:35
【问题描述】:
我正在使用 LLVM,我想使用 API 重新创建一段 IR:
declare void @fun(i32* inreg, i32 inreg)
但我似乎无法让它真正做到。
我目前的尝试是:
Function* fun = cast<Function>(M.getOrInsertFunction("fun",type));
((fun -> getAttributes()).getParamAttributes(0)).addAttribute(c,0,Attribute::InReg);
((fun -> getAttributes()).getParamAttributes(1)).addAttribute(c,0,Attribute::InReg);
这段代码在第 1 行之后实际上没有做任何事情,第 2 行和第 3 行被完全忽略,我在 IR 输出中得到的只是:
declare void @fun(i32* , i32 )
如何让它正常工作?
【问题讨论】:
标签: compiler-construction llvm llvm-ir llvm-c++-api