LLVM 20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
Intrinsics.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/TypeSize.h"
#include <optional>
#include <string>
#include "llvm/IR/IntrinsicEnums.inc"

Go to the source code of this file.

Classes

struct  llvm::Intrinsic::IITDescriptor
 This is a type descriptor which explains the type requirements of an intrinsic. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::Intrinsic
 This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
 

Macros

#define GET_INTRINSIC_ENUM_VALUES
 
#define GET_INTRINSIC_ARGKIND
 

Enumerations

enum  llvm::Intrinsic::IndependentIntrinsics : unsigned { llvm::Intrinsic::not_intrinsic = 0 }
 
enum  llvm::Intrinsic::MatchIntrinsicTypesResult { llvm::Intrinsic::MatchIntrinsicTypes_Match = 0 , llvm::Intrinsic::MatchIntrinsicTypes_NoMatchRet = 1 , llvm::Intrinsic::MatchIntrinsicTypes_NoMatchArg = 2 }
 

Functions

StringRef llvm::Intrinsic::getName (ID id)
 Return the LLVM name for an intrinsic, such as "llvm.ppc.altivec.lvx".
 
StringRef llvm::Intrinsic::getBaseName (ID id)
 Return the LLVM name for an intrinsic, without encoded types for overloading, such as "llvm.ssa.copy".
 
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".
 
std::string llvm::Intrinsic::getNameNoUnnamedTypes (ID Id, ArrayRef< Type * > Tys)
 Return the LLVM name for an intrinsic.
 
FunctionTypellvm::Intrinsic::getType (LLVMContext &Context, ID id, ArrayRef< Type * > Tys=std::nullopt)
 Return the function type for an intrinsic.
 
bool llvm::Intrinsic::isOverloaded (ID id)
 Returns true if the intrinsic can be overloaded.
 
AttributeList llvm::Intrinsic::getAttributes (LLVMContext &C, ID id)
 Return the attributes for an intrinsic.
 
Functionllvm::Intrinsic::getDeclaration (Module *M, ID id, ArrayRef< Type * > Tys=std::nullopt)
 Create or insert an LLVM Function declaration for an intrinsic, and return it.
 
int llvm::Intrinsic::lookupLLVMIntrinsicByName (ArrayRef< const char * > NameTable, StringRef Name)
 Looks up Name in NameTable via binary search.
 
ID llvm::Intrinsic::getIntrinsicForClangBuiltin (const char *Prefix, StringRef BuiltinName)
 Map a Clang builtin name to an intrinsic ID.
 
ID llvm::Intrinsic::getIntrinsicForMSBuiltin (const char *Prefix, StringRef BuiltinName)
 Map a MS builtin name to an intrinsic ID.
 
bool llvm::Intrinsic::isConstrainedFPIntrinsic (ID QID)
 Returns true if the intrinsic ID is for one of the "Constrained Floating-Point Intrinsics".
 
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.
 
void llvm::Intrinsic::getIntrinsicInfoTableEntries (ID id, SmallVectorImpl< IITDescriptor > &T)
 Return the IIT table descriptor for the specified intrinsic into an array of IITDescriptors.
 
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.
 
bool llvm::Intrinsic::matchIntrinsicVarArg (bool isVarArg, ArrayRef< IITDescriptor > &Infos)
 Verify if the intrinsic has variable arguments.
 
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.
 
bool llvm::Intrinsic::getIntrinsicSignature (Function *F, SmallVectorImpl< Type * > &ArgTys)
 Same as previous, but accepts a Function instead of ID and FunctionType.
 
std::optional< Function * > llvm::Intrinsic::remangleIntrinsicFunction (Function *F)
 

Variables

static const int llvm::Intrinsic::NoAliasScopeDeclScopeArg = 0
 

Macro Definition Documentation

◆ GET_INTRINSIC_ARGKIND

#define GET_INTRINSIC_ARGKIND

Definition at line 160 of file Intrinsics.h.

◆ GET_INTRINSIC_ENUM_VALUES

#define GET_INTRINSIC_ENUM_VALUES

Definition at line 47 of file Intrinsics.h.