14std::unique_ptr<FunctionInfo>
18 assert((!Required.allowsOptionalArgs() ||
19 Required.getNumRequiredArgs() <= ArgTypes.
size()) &&
20 "declared parameters cannot outnumber the arguments");
26 std::unique_ptr<FunctionInfo> FI(
27 new (Buffer) FunctionInfo(CC, ReturnType, ArgTypes.
size(), Required));
29 ArgEntry *Args = FI->getTrailingObjects();
30 for (
unsigned I = 0;
I < ArgTypes.
size(); ++
I)
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Represent a constant reference to an array (0 or more elements consecutively in memory),...
size_t size() const
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 LLVM_ABI std::unique_ptr< FunctionInfo > create(CallingConv::ID CC, const Type *ReturnType, ArrayRef< const Type * > ArgTypes, RequiredArgs Required=RequiredArgs::All)
Whether a signature accepts arguments beyond its declared parameters, and where the declared ones end...
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.