LLVM  8.0.1
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]
Collaboration diagram for llvm::AMDGPULibFuncImpl:
Collaboration graph
[legend]

Public Member Functions

 AMDGPULibFuncImpl ()
 
virtual ~AMDGPULibFuncImpl ()
 
virtual std::string getName () const =0
 Get unmangled name for mangled library function and name for unmangled library function. More...
 
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
 

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 324 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPULibFuncImpl()

llvm::AMDGPULibFuncImpl::AMDGPULibFuncImpl ( )
inline

Definition at line 326 of file AMDGPULibFunc.h.

◆ ~AMDGPULibFuncImpl()

virtual llvm::AMDGPULibFuncImpl::~AMDGPULibFuncImpl ( )
inlinevirtual

Definition at line 327 of file AMDGPULibFunc.h.

References getName().

Member Function Documentation

◆ getFunctionType()

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

◆ getId()

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

Definition at line 333 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::AMDGPUUnmangledLibFunc, and llvm::AMDGPUMangledLibFunc.

◆ getNumArgs()

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

◆ getPrefix()

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

Definition at line 334 of file AMDGPULibFunc.h.

◆ isMangled()

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

◆ 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::AMDGPUUnmangledLibFunc, and llvm::AMDGPUMangledLibFunc.

◆ parseFuncName()

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

◆ setId()

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

Definition at line 338 of file AMDGPULibFunc.h.

References FuncId.

◆ setName()

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

Definition at line 345 of file AMDGPULibFunc.h.

References N, and Name.

◆ setPrefix()

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

Definition at line 346 of file AMDGPULibFunc.h.

Member Data Documentation

◆ FKind

ENamePrefix llvm::AMDGPULibFuncImpl::FKind
protected

Definition at line 353 of file AMDGPULibFunc.h.

Referenced by llvm::AMDGPUMangledLibFunc::AMDGPUMangledLibFunc().

◆ FuncId

EFuncId llvm::AMDGPULibFuncImpl::FuncId
protected

Definition at line 351 of file AMDGPULibFunc.h.

◆ Name

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

Definition at line 352 of file AMDGPULibFunc.h.


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