Я работаю с LLVM и хочу воссоздать часть IR с помощью API:
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 )
Как мне заставить его работать правильно?