LLVM: llvm::AMDGPULibFunc Class Reference (original) (raw)

Wrapper class for AMDGPULIbFuncImpl. More...

#include "[Target/AMDGPU/AMDGPULibFunc.h](AMDGPULibFunc%5F8h%5Fsource.html)"

Public Member Functions
AMDGPULibFunc ()
AMDGPULibFunc (const AMDGPULibFunc &F)
AMDGPULibFunc (EFuncId Id, const AMDGPULibFunc &CopyFrom)
Clone a mangled library func with the Id Id and argument info from CopyFrom.
AMDGPULibFunc (EFuncId Id, FunctionType *FT, bool SignedInts)
AMDGPULibFunc (StringRef FName, FunctionType *FT)
Construct an unmangled library function on the fly.
AMDGPULibFunc & operator= (const AMDGPULibFunc &F)
std::string getName () const
Get unmangled name for mangled library function and name for unmangled library function.
unsigned getNumArgs () const
EFuncId getId () const
ENamePrefix getPrefix () const
Param * getLeads ()
Get leading parameters for mangled lib functions.
const Param * getLeads () const
bool isMangled () const
void setId (EFuncId Id)
bool parseFuncName (StringRef &MangledName)
bool allowsImplicitVectorSplat (int ArgIdx) const
Return true if it's legal to splat a scalar value passed in parameter ArgIdx to a vector argument.
bool isCompatibleSignature (const Module &M, const FunctionType *FuncTy) const
std::string mangle () const
void setName (StringRef N)
void setPrefix (ENamePrefix PFX)
FunctionType * getFunctionType (const Module &M) const
Static Public Member Functions
static Function * getFunction (llvm::Module *M, const AMDGPULibFunc &fInfo)
static FunctionCallee getOrInsertFunction (llvm::Module *M, const AMDGPULibFunc &fInfo)
static bool parse (StringRef MangledName, AMDGPULibFunc &Ptr)
Static Public Member Functions inherited from llvm::AMDGPULibFuncBase
static bool isMangled (EFuncId Id)
static unsigned getEPtrKindFromAddrSpace (unsigned AS)
static unsigned getAddrSpaceFromEPtrKind (unsigned Kind)
Additional Inherited Members
Public Types inherited from llvm::AMDGPULibFuncBase
enum EFuncId { EI_NONE, EI_ABS, EI_ABS_DIFF, EI_ACOS, EI_ACOSH, EI_ACOSPI, EI_ADD_SAT, EI_ALL, EI_ANY, EI_ASIN, EI_ASINH, EI_ASINPI, EI_ASYNC_WORK_GROUP_COPY, EI_ASYNC_WORK_GROUP_STRIDED_COPY, EI_ATAN, EI_ATAN2, EI_ATAN2PI, EI_ATANH, EI_ATANPI, EI_ATOMIC_ADD, EI_ATOMIC_AND, EI_ATOMIC_CMPXCHG, EI_ATOMIC_DEC, EI_ATOMIC_INC, EI_ATOMIC_MAX, EI_ATOMIC_MIN, EI_ATOMIC_OR, EI_ATOMIC_SUB, EI_ATOMIC_XCHG, EI_ATOMIC_XOR, EI_BITSELECT, EI_CBRT, EI_CEIL, EI_CLAMP, EI_CLZ, EI_COMMIT_READ_PIPE, EI_COMMIT_WRITE_PIPE, EI_COPYSIGN, EI_COS, EI_COSH, EI_COSPI, EI_CROSS, EI_CTZ, EI_DEGREES, EI_DISTANCE, EI_DIVIDE, EI_DOT, EI_ERF, EI_ERFC, EI_EXP, EI_EXP10, EI_EXP2, EI_EXPM1, EI_FABS, EI_FAST_DISTANCE, EI_FAST_LENGTH, EI_FAST_NORMALIZE, EI_FDIM, EI_FLOOR, EI_FMA, EI_FMAX, EI_FMIN, EI_FMOD, EI_FRACT, EI_FREXP, EI_GET_IMAGE_ARRAY_SIZE, EI_GET_IMAGE_CHANNEL_DATA_TYPE, EI_GET_IMAGE_CHANNEL_ORDER, EI_GET_IMAGE_DIM, EI_GET_IMAGE_HEIGHT, EI_GET_IMAGE_WIDTH, EI_GET_PIPE_MAX_PACKETS, EI_GET_PIPE_NUM_PACKETS, EI_HADD, EI_HYPOT, EI_ILOGB, EI_ISEQUAL, EI_ISFINITE, EI_ISGREATER, EI_ISGREATEREQUAL, EI_ISINF, EI_ISLESS, EI_ISLESSEQUAL, EI_ISLESSGREATER, EI_ISNAN, EI_ISNORMAL, EI_ISNOTEQUAL, EI_ISORDERED, EI_ISUNORDERED, EI_LDEXP, EI_LENGTH, EI_LGAMMA, EI_LGAMMA_R, EI_LOG, EI_LOG10, EI_LOG1P, EI_LOG2, EI_LOGB, EI_MAD, EI_MAD24, EI_MAD_HI, EI_MAD_SAT, EI_MAX, EI_MAXMAG, EI_MIN, EI_MINMAG, EI_MIX, EI_MODF, EI_MUL24, EI_MUL_HI, EI_NAN, EI_NEXTAFTER, EI_NORMALIZE, EI_POPCOUNT, EI_POW, EI_POWN, EI_POWR, EI_PREFETCH, EI_RADIANS, EI_RECIP, EI_REMAINDER, EI_REMQUO, EI_RESERVE_READ_PIPE, EI_RESERVE_WRITE_PIPE, EI_RHADD, EI_RINT, EI_ROOTN, EI_ROTATE, EI_ROUND, EI_RSQRT, EI_SELECT, EI_SHUFFLE, EI_SHUFFLE2, EI_SIGN, EI_SIGNBIT, EI_SIN, EI_SINCOS, EI_SINH, EI_SINPI, EI_SMOOTHSTEP, EI_SQRT, EI_STEP, EI_SUB_GROUP_BROADCAST, EI_SUB_GROUP_COMMIT_READ_PIPE, EI_SUB_GROUP_COMMIT_WRITE_PIPE, EI_SUB_GROUP_REDUCE_ADD, EI_SUB_GROUP_REDUCE_MAX, EI_SUB_GROUP_REDUCE_MIN, EI_SUB_GROUP_RESERVE_READ_PIPE, EI_SUB_GROUP_RESERVE_WRITE_PIPE, EI_SUB_GROUP_SCAN_EXCLUSIVE_ADD, EI_SUB_GROUP_SCAN_EXCLUSIVE_MAX, EI_SUB_GROUP_SCAN_EXCLUSIVE_MIN, EI_SUB_GROUP_SCAN_INCLUSIVE_ADD, EI_SUB_GROUP_SCAN_INCLUSIVE_MAX, EI_SUB_GROUP_SCAN_INCLUSIVE_MIN, EI_SUB_SAT, EI_TAN, EI_TANH, EI_TANPI, EI_TGAMMA, EI_TRUNC, EI_UPSAMPLE, EI_VEC_STEP, EI_VSTORE, EI_VSTORE16, EI_VSTORE2, EI_VSTORE3, EI_VSTORE4, EI_VSTORE8, EI_WORK_GROUP_COMMIT_READ_PIPE, EI_WORK_GROUP_COMMIT_WRITE_PIPE, EI_WORK_GROUP_REDUCE_ADD, EI_WORK_GROUP_REDUCE_MAX, EI_WORK_GROUP_REDUCE_MIN, EI_WORK_GROUP_RESERVE_READ_PIPE, EI_WORK_GROUP_RESERVE_WRITE_PIPE, EI_WORK_GROUP_SCAN_EXCLUSIVE_ADD, EI_WORK_GROUP_SCAN_EXCLUSIVE_MAX, EI_WORK_GROUP_SCAN_EXCLUSIVE_MIN, EI_WORK_GROUP_SCAN_INCLUSIVE_ADD, EI_WORK_GROUP_SCAN_INCLUSIVE_MAX, EI_WORK_GROUP_SCAN_INCLUSIVE_MIN, EI_WRITE_IMAGEF, EI_WRITE_IMAGEI, EI_WRITE_IMAGEUI, EI_NCOS, EI_NEXP2, EI_NFMA, EI_NLOG2, EI_NRCP, EI_NRSQRT, EI_NSIN, EI_NSQRT, EI_FTZ, EI_FLDEXP, EI_CLASS, EI_RCBRT, EI_LAST_MANGLED, EI_READ_PIPE_2, EI_READ_PIPE_4, EI_WRITE_PIPE_2, EI_WRITE_PIPE_4, EX_INTRINSICS_COUNT }
enum ENamePrefix { NOPFX, NATIVE, HALF }
enum EType { B8 = 1 , B16 = 2 , B32 = 3 , B64 = 4 , SIZE_MASK = 7 , FLOAT = 0x10 , INT = 0x20 , UINT = 0x30 , BASE_TYPE_MASK = 0x30 , U8 = UINT | B8 , U16 = UINT B16 , U32 = UINT B32 , U64 = UINT B64 , I8 = INT B8 , I16 = INT B16 , I32 = INT B32 , I64 = INT B64 , F16 = FLOAT B16 , F32 = FLOAT B32 , F64 = FLOAT B64 , IMG1DA = 0x80 , IMG1DB, IMG2DA, IMG1D, IMG2D, IMG3D, SAMPLER, EVENT, DUMMY }
enum EPtrKind { BYVALUE = 0 , ADDR_SPACE = 0xF , CONST = 0x10 , VOLATILE = 0x20 }

Wrapper class for AMDGPULIbFuncImpl.

Definition at line 364 of file AMDGPULibFunc.h.

llvm::AMDGPULibFunc::AMDGPULibFunc ( ) inlineexplicit

AMDGPULibFunc() [2/5]

AMDGPULibFunc() [3/5]

AMDGPULibFunc() [4/5]

AMDGPULibFunc() [5/5]

allowsImplicitVectorSplat()

bool llvm::AMDGPULibFunc::allowsImplicitVectorSplat ( int ArgIdx) const inline

getFunction()

getFunctionType()

getId()

EFuncId llvm::AMDGPULibFunc::getId ( ) const inline

getLeads() [1/2]

getLeads() [2/2]

getName()

std::string llvm::AMDGPULibFunc::getName ( ) const inline

getNumArgs()

unsigned llvm::AMDGPULibFunc::getNumArgs ( ) const inline

getOrInsertFunction()

Definition at line 1085 of file AMDGPULibFunc.cpp.

References AMDGPULibFunc(), assert(), llvm::CallingConv::C, llvm::dyn_cast_or_null(), F, getFunctionType(), llvm::Attribute::getWithMemoryEffects(), isCompatibleSignature(), llvm::Type::isPointerTy(), mangle(), and llvm::MemoryEffectsBase< IRMemLocation >::readOnly().

getPrefix()

ENamePrefix llvm::AMDGPULibFunc::getPrefix ( ) const inline

isCompatibleSignature()

Definition at line 1029 of file AMDGPULibFunc.cpp.

References allowsImplicitVectorSplat(), llvm::dyn_cast(), getFunctionType(), getId(), getNumArgs(), llvm::FunctionType::getNumParams(), llvm::FunctionType::getParamType(), I, and llvm::AMDGPULibFuncBase::isMangled().

Referenced by llvm::AMDGPULibCalls::fold(), getFunction(), and getOrInsertFunction().

isMangled()

bool llvm::AMDGPULibFunc::isMangled ( ) const inline

mangle()

std::string llvm::AMDGPULibFunc::mangle ( ) const inline

operator=()

parse()

parseFuncName()

bool llvm::AMDGPULibFunc::parseFuncName ( StringRef & MangledName) inline

setId()

void llvm::AMDGPULibFunc::setId ( EFuncId Id) inline

setName()

void llvm::AMDGPULibFunc::setName ( StringRef N) inline

setPrefix()

void llvm::AMDGPULibFunc::setPrefix ( ENamePrefix PFX) inline

The documentation for this class was generated from the following files: