LLVM 22.0.0git
llvm::AMDGPUUnmangledLibFunc Class Reference

#include "Target/AMDGPU/AMDGPULibFunc.h"

Inheritance diagram for llvm::AMDGPUUnmangledLibFunc:
[legend]

Public Member Functions

 AMDGPUUnmangledLibFunc ()
 AMDGPUUnmangledLibFunc (StringRef FName, FunctionType *FT)
std::string getName () const override
 Get unmangled name for mangled library function and name for unmangled library function.
unsigned getNumArgs () const override
FunctionTypegetFunctionType (const Module &M) const override
bool parseFuncName (StringRef &Name) override
std::string mangle () const override
void setFunctionType (FunctionType *FT)
Public Member Functions inherited from llvm::AMDGPULibFuncImpl
 AMDGPULibFuncImpl ()=default
virtual ~AMDGPULibFuncImpl ()=default
EFuncId getId () const
ENamePrefix getPrefix () const
bool isMangled () const
void setId (EFuncId id)
void setName (StringRef N)
void setPrefix (ENamePrefix pfx)

Static Public Member Functions

static bool classof (const AMDGPULibFuncImpl *F)
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 }
Protected Attributes inherited from llvm::AMDGPULibFuncImpl
EFuncId FuncId
std::string Name
ENamePrefix FKind = NOPFX

Detailed Description

Definition at line 464 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPUUnmangledLibFunc() [1/2]

AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc ( )
explicit

◆ AMDGPUUnmangledLibFunc() [2/2]

llvm::AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc ( StringRef FName,
FunctionType * FT )
inlineexplicit

Definition at line 469 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::Name.

Member Function Documentation

◆ classof()

bool llvm::AMDGPUUnmangledLibFunc::classof ( const AMDGPULibFuncImpl * F)
inlinestatic

Definition at line 482 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::AMDGPULibFuncImpl(), and F.

◆ getFunctionType()

FunctionType * llvm::AMDGPUUnmangledLibFunc::getFunctionType ( const Module & M) const
inlineoverridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 475 of file AMDGPULibFunc.h.

◆ getName()

std::string llvm::AMDGPUUnmangledLibFunc::getName ( ) const
inlineoverridevirtual

Get unmangled name for mangled library function and name for unmangled library function.

Implements llvm::AMDGPULibFuncImpl.

Definition at line 473 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::Name.

◆ getNumArgs()

unsigned AMDGPUUnmangledLibFunc::getNumArgs ( ) const
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 1018 of file AMDGPULibFunc.cpp.

References llvm::AMDGPULibFuncImpl::FuncId.

◆ mangle()

std::string llvm::AMDGPUUnmangledLibFunc::mangle ( ) const
inlineoverridevirtual
Returns
The mangled function name for mangled library functions and unmangled function name for unmangled library functions.

Implements llvm::AMDGPULibFuncImpl.

Definition at line 484 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::Name.

◆ parseFuncName()

bool AMDGPUUnmangledLibFunc::parseFuncName ( StringRef & Name)
overridevirtual

◆ setFunctionType()

void llvm::AMDGPUUnmangledLibFunc::setFunctionType ( FunctionType * FT)
inline

Definition at line 486 of file AMDGPULibFunc.h.


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