[LLVMdev] LLVM{Add,Remove}FunctionAttr totally broken
James Y Knight
foom at fuhm.net
Tue Dec 29 15:16:06 PST 2009
The LLVMAddFunctionAttr and LLVMRemoveFunctionAttr are busted: they
actually set the return value's attributes, not the function's
attributes. There seems to be no C API for actually setting the
function attributes.
LLVMGetFunctionAttr, however, does correctly return the function
attributes, not the return value's attributes. There is no C API for
getting the return value attributes. (And if the above functions are
fixed, there would also be no way to set return value attributes).
I'd like to propose that LLVM{Add,Remove}FunctionAttr be fixed to
actually set the function attributes. And that a new API, LLVM
{Add,Remove,Get}RetAttr be added, like:
void LLVMAddRetAttr(LLVMValueRef Fn, LLVMAttribute PA);
void LLVMRemoveRetAttr(LLVMValueRef Fn, LLVMAttribute PA);
LLVMAttribute LLVMGetRetAttr(LLVMValueRef Fn);
which will do the associated actions on the return value.
If this is acceptable, I can submit a trivial patch that implements it.
James
PS: no comments on my last patch, not sure if it was overlooked or
just everyone's busy over the holidays:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091221/092943.html
More information about the llvm-dev
mailing list