15 if (Ty->isInteger() || Ty->isFloat() || Ty->isPointer() || Ty->isVector())
25 unsigned BitWidth =
IT->getSizeInBits().getFixedValue();
static cl::opt< ITMode > IT(cl::desc("IT block support"), cl::Hidden, cl::init(DefaultIT), cl::values(clEnumValN(DefaultIT, "arm-default-it", "Generate any type of IT block"), clEnumValN(RestrictedIT, "arm-restrict-it", "Disallow complex IT blocks")))
Target-specific ABI information and factory functions.
Helper class to encapsulate information about how a specific type should be passed to or returned fro...
static ArgInfo getIndirect(Align Align, bool ByVal, unsigned AddrSpace=0, bool Realign=false)
Realign: the caller couldn't guarantee sufficient alignment - the callee must copy the argument to a ...
bool canPassInRegisters() const
ArgInfo getNaturalAlignIndirect(const Type *Ty, bool ByVal=true) const
bool isPromotableInteger(const IntegerType *IT) const
bool isAggregateTypeForABI(const Type *Ty) const
RecordArgABI getRecordArgABI(const RecordType *RT) const
Represents the ABI-specific view of a type in LLVM.
@ RAA_Indirect
Pass it as a pointer to temporary memory.
@ RAA_Default
Pass it using the normal C aggregate rules for the ABI, potentially introducing extra copies and pass...
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
constexpr unsigned BitWidth