#include #include "llvm/IR/IntrinsicEnums.inc"">

LLVM: include/llvm/IR/Intrinsics.h File Reference (original) (raw)

#include "[llvm/ADT/ArrayRef.h](ArrayRef%5F8h%5Fsource.html)"
#include "[llvm/Support/Compiler.h](Compiler%5F8h%5Fsource.html)"
#include "[llvm/Support/TypeSize.h](TypeSize%5F8h%5Fsource.html)"
#include <optional>
#include <string>
#include "llvm/IR/IntrinsicEnums.inc"

Functions

LLVM_ABI StringRef

llvm::Intrinsic::getName (ID id)

Return the LLVM name for an intrinsic, such as "llvm.ppc.altivec.lvx".

LLVM_ABI StringRef

llvm::Intrinsic::getBaseName (ID id)

Return the LLVM name for an intrinsic, without encoded types for overloading, such as "llvm.ssa.copy".

LLVM_ABI std::string

llvm::Intrinsic::getName (ID Id, ArrayRef< Type * > Tys, Module *M, FunctionType *FT=nullptr)

Return the LLVM name for an intrinsic, such as "llvm.ppc.altivec.lvx" or "llvm.ssa.copy.p0s_s.1".

LLVM_ABI std::string

llvm::Intrinsic::getNameNoUnnamedTypes (ID Id, ArrayRef< Type * > Tys)

Return the LLVM name for an intrinsic.

LLVM_ABI FunctionType *

llvm::Intrinsic::getType (LLVMContext &Context, ID id, ArrayRef< Type * > Tys={})

Return the function type for an intrinsic.

LLVM_ABI bool

llvm::Intrinsic::isOverloaded (ID id)

Returns true if the intrinsic can be overloaded.

LLVM_ABI bool

llvm::Intrinsic::hasPrettyPrintedArgs (ID id)

Returns true if the intrinsic has pretty printed immediate arguments.

LLVM_ABI bool

llvm::Intrinsic::isTargetIntrinsic (ID IID)

isTargetIntrinsic - Returns true if IID is an intrinsic specific to a certain target.

LLVM_ABI ID

llvm::Intrinsic::lookupIntrinsicID (StringRef Name)

This does the actual lookup of an intrinsic ID which matches the given function name.

LLVM_ABI AttributeList

llvm::Intrinsic::getAttributes (LLVMContext &C, ID id, FunctionType *FT)

Return the attributes for an intrinsic.

LLVM_ABI AttributeSet

llvm::Intrinsic::getFnAttributes (LLVMContext &C, ID id)

Return the function attributes for an intrinsic.

LLVM_ABI Function *

llvm::Intrinsic::getOrInsertDeclaration (Module *M, ID id, ArrayRef< Type * > Tys={})

Look up the Function declaration of the intrinsic id in the Module M.

LLVM_ABI Function *

llvm::Intrinsic::getOrInsertDeclaration (Module *M, ID IID, Type *RetTy, ArrayRef< Type * > ArgTys)

Look up the Function declaration of the intrinsic IID in the Module M.

LLVM_ABI Function *

llvm::Intrinsic::getDeclarationIfExists (const Module *M, ID id)

Look up the Function declaration of the intrinsic id in the Module M and return it if it exists.

LLVM_ABI Function *

llvm::Intrinsic::getDeclarationIfExists (Module *M, ID id, ArrayRef< Type * > Tys, FunctionType *FT=nullptr)

This version supports overloaded intrinsics.

LLVM_ABI ID

llvm::Intrinsic::getIntrinsicForClangBuiltin (StringRef TargetPrefix, StringRef BuiltinName)

Map a Clang builtin name to an intrinsic ID.

LLVM_ABI ID

llvm::Intrinsic::getIntrinsicForMSBuiltin (StringRef TargetPrefix, StringRef BuiltinName)

Map a MS builtin name to an intrinsic ID.

LLVM_ABI bool

llvm::Intrinsic::isConstrainedFPIntrinsic (ID QID)

Returns true if the intrinsic ID is for one of the "Constrained Floating-Point Intrinsics".

LLVM_ABI bool

llvm::Intrinsic::hasConstrainedFPRoundingModeOperand (ID QID)

Returns true if the intrinsic ID is for one of the "Constrained Floating-Point Intrinsics" that take rounding mode metadata.

LLVM_ABI void

llvm::Intrinsic::getIntrinsicInfoTableEntries (ID id, SmallVectorImpl< IITDescriptor > &T)

Return the IIT table descriptor for the specified intrinsic into an array of IITDescriptors.

LLVM_ABI MatchIntrinsicTypesResult

llvm::Intrinsic::matchIntrinsicSignature (FunctionType *FTy, ArrayRef< IITDescriptor > &Infos, SmallVectorImpl< Type * > &ArgTys)

Match the specified function type with the type constraints specified by the .td file.

LLVM_ABI bool

llvm::Intrinsic::matchIntrinsicVarArg (bool isVarArg, ArrayRef< IITDescriptor > &Infos)

Verify if the intrinsic has variable arguments.

LLVM_ABI bool

llvm::Intrinsic::getIntrinsicSignature (Intrinsic::ID, FunctionType *FT, SmallVectorImpl< Type * > &ArgTys)

Gets the type arguments of an intrinsic call by matching type contraints specified by the .td file.

LLVM_ABI bool

llvm::Intrinsic::getIntrinsicSignature (Function *F, SmallVectorImpl< Type * > &ArgTys)

Same as previous, but accepts a Function instead of ID and FunctionType.

LLVM_ABI std::optional< Function * >

llvm::Intrinsic::remangleIntrinsicFunction (Function *F)

LLVM_ABI Intrinsic::ID

llvm::Intrinsic::getInterleaveIntrinsicID (unsigned Factor)

Returns the corresponding llvm.vector.interleaveN intrinsic for factor N.

LLVM_ABI Intrinsic::ID

llvm::Intrinsic::getDeinterleaveIntrinsicID (unsigned Factor)

Returns the corresponding llvm.vector.deinterleaveN intrinsic for factor N.

LLVM_ABI void

llvm::Intrinsic::printImmArg (ID IID, unsigned ArgIdx, raw_ostream &OS, const Constant *ImmArgVal)

Print the argument info for the arguments with ArgInfo.