Add param attributes to a call
As best I can tell looking at the source code for CallInstr, there is no equivalent for the call CallBase::addParamAttr (doxygen) in LLVM. This currently makes it impossible to code generate calls that C APIs that take certain structs by value.
I'm relatively new to this project; are there guidelines for adding this support? Should we try to take advantage of ArgumentAttributes to avoid code duplication or should we build a separate ParamAttributes (or whatever it would be called on the CallInstr side), etc.?
Thanks for looking into this, and your interest in contributing to llvmlite!
I agree, there appears to be no equivalent for CallBase::addParamAttr. Having looked at the existing code of ArgumentAttributes, it appears that there would be a lot of symmetry between the ArgumentAttributes class and a ParamAttributes class, so I'd be inclined to try re-using ArgumentAttributes first - IIUC, argument and parameter attributes are going to work in almost exactly the same ways, but argument attributes will be applied on the declaration of a function, and parameter attributes on function calls, so the differences between them would mostly be outside the ArgumentAttributes class anyway.
I hope this is helpful - do let me know if this is unclear or if you have further questions.