LLVM 20.0.0git
Public Member Functions | Protected Attributes | List of all members
llvm::AMDGPULibFuncImpl Class Referenceabstract

#include "Target/AMDGPU/AMDGPULibFunc.h"

Inheritance diagram for llvm::AMDGPULibFuncImpl:
Inheritance graph
[legend]

Public Member Functions

 AMDGPULibFuncImpl ()=default
 
virtual ~AMDGPULibFuncImpl ()=default
 
virtual std::string getName () const =0
 Get unmangled name for mangled library function and name for unmangled library function.
 
virtual unsigned getNumArgs () const =0
 
EFuncId getId () const
 
ENamePrefix getPrefix () const
 
bool isMangled () const
 
void setId (EFuncId id)
 
virtual bool parseFuncName (StringRef &mangledName)=0
 
virtual std::string mangle () const =0
 
void setName (StringRef N)
 
void setPrefix (ENamePrefix pfx)
 
virtual FunctionTypegetFunctionType (Module &M) const =0
 

Protected Attributes

EFuncId FuncId
 
std::string Name
 
ENamePrefix FKind = NOPFX
 

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 }
 
- Static Public Member Functions inherited from llvm::AMDGPULibFuncBase
static bool isMangled (EFuncId Id)
 
static unsigned getEPtrKindFromAddrSpace (unsigned AS)
 
static unsigned getAddrSpaceFromEPtrKind (unsigned Kind)
 

Detailed Description

Definition at line 331 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPULibFuncImpl()

llvm::AMDGPULibFuncImpl::AMDGPULibFuncImpl ( )
default

◆ ~AMDGPULibFuncImpl()

virtual llvm::AMDGPULibFuncImpl::~AMDGPULibFuncImpl ( )
virtualdefault

Member Function Documentation

◆ getFunctionType()

virtual FunctionType * llvm::AMDGPULibFuncImpl::getFunctionType ( Module M) const
pure virtual

◆ getId()

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

Definition at line 340 of file AMDGPULibFunc.h.

References FuncId.

◆ getName()

virtual std::string llvm::AMDGPULibFuncImpl::getName ( ) const
pure virtual

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

Implemented in llvm::AMDGPUMangledLibFunc, and llvm::AMDGPUUnmangledLibFunc.

◆ getNumArgs()

virtual unsigned llvm::AMDGPULibFuncImpl::getNumArgs ( ) const
pure virtual

◆ getPrefix()

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

Definition at line 341 of file AMDGPULibFunc.h.

References FKind.

◆ isMangled()

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

Definition at line 343 of file AMDGPULibFunc.h.

References FuncId, and llvm::AMDGPULibFuncBase::isMangled().

◆ mangle()

virtual std::string llvm::AMDGPULibFuncImpl::mangle ( ) const
pure virtual
Returns
The mangled function name for mangled library functions and unmangled function name for unmangled library functions.

Implemented in llvm::AMDGPUMangledLibFunc, and llvm::AMDGPUUnmangledLibFunc.

◆ parseFuncName()

virtual bool llvm::AMDGPULibFuncImpl::parseFuncName ( StringRef mangledName)
pure virtual

◆ setId()

void llvm::AMDGPULibFuncImpl::setId ( EFuncId  id)
inline

Definition at line 345 of file AMDGPULibFunc.h.

References FuncId.

◆ setName()

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

Definition at line 352 of file AMDGPULibFunc.h.

References N, and Name.

Referenced by llvm::AMDGPUUnmangledLibFunc::parseFuncName().

◆ setPrefix()

void llvm::AMDGPULibFuncImpl::setPrefix ( ENamePrefix  pfx)
inline

Definition at line 353 of file AMDGPULibFunc.h.

References FKind.

Member Data Documentation

◆ FKind

ENamePrefix llvm::AMDGPULibFuncImpl::FKind = NOPFX
protected

◆ FuncId

EFuncId llvm::AMDGPULibFuncImpl::FuncId
protected

◆ Name

std::string llvm::AMDGPULibFuncImpl::Name
protected

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