17 std::optional<unsigned> NumRequired) {
19 assert(!NumRequired || *NumRequired <= ArgTypes.
size());
24 new (Buffer) FunctionInfo(CC, ReturnType, ArgTypes.
size(), NumRequired);
26 ArgEntry *Args = FI->getTrailingObjects();
27 for (
unsigned I = 0;
I < ArgTypes.
size(); ++
I)
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
size_t size() const
size - Get the array size.
static constexpr std::enable_if_t< std::is_same_v< Foo< TrailingTys... >, Foo< Tys... > >, size_t > totalSizeToAlloc(typename trailing_objects_internal::ExtractSecondType< TrailingTys, size_t >::type... Counts)
static FunctionInfo * create(CallingConv::ID CC, const Type *ReturnType, ArrayRef< const Type * > ArgTypes, std::optional< unsigned > NumRequired=std::nullopt)
Represents the ABI-specific view of a type in LLVM.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.