Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory.
Declared in <llvm/CodeGen/TargetLowering.h>
void
GetReturnInfo(
CallingConv::ID CC,
Type* ReturnType,
AttributeList attr,
SmallVectorImpl<ISD::OutputArg>& Outs,
TargetLowering const& TLI,
DataLayout const& DL);
| Name | Description |
|---|---|
| CC | LLVM IR allows to use arbitrary numbers as calling convention identifiers. |
| ReturnType | The instances of the Type class are immutable: once they are created, they are never changed. Also note that only one instance of a particular type is ever created. Thus seeing if two types are equal is a matter of doing a trivial pointer comparison. To enforce that no two equal instances are created, Type instances can only be created via static factory methods in class Type and in derived classes. Once allocated, Types are never free'd. |
| attr | This class holds the attributes for a function, its return value, and its parameters. You access the attributes for each of them via an index into the AttributeList object. The function attributes are at index `AttributeList::FunctionIndex', the return value is at index `AttributeList::ReturnIndex', and the attributes for the parameters start at index `AttributeList::FirstArgIndex'. |
| Outs | This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. |
| TLI | This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. |
| DL | A parsed version of the target data layout string in and methods for querying it. |