LLVM  8.0.1
Public Member Functions | Static Public Member Functions | List of all members
llvm::AMDGPUUnmangledLibFunc Class Reference

#include "Target/AMDGPU/AMDGPULibFunc.h"

Inheritance diagram for llvm::AMDGPUUnmangledLibFunc:
Inheritance graph
[legend]
Collaboration diagram for llvm::AMDGPUUnmangledLibFunc:
Collaboration graph
[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. More...
 
unsigned getNumArgs () const override
 
FunctionTypegetFunctionType (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 ()
 
virtual ~AMDGPULibFuncImpl ()
 
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
 

Detailed Description

Definition at line 436 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPUUnmangledLibFunc() [1/2]

AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc ( )
explicit

Definition at line 531 of file AMDGPULibFunc.cpp.

References FuncId.

◆ AMDGPUUnmangledLibFunc() [2/2]

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

Definition at line 441 of file AMDGPULibFunc.h.

References Name.

Member Function Documentation

◆ classof()

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

Definition at line 452 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::isMangled().

◆ getFunctionType()

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

Implements llvm::AMDGPULibFuncImpl.

Definition at line 447 of file AMDGPULibFunc.h.

References Name.

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

References Name.

◆ getNumArgs()

unsigned AMDGPUUnmangledLibFunc::getNumArgs ( ) const
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 939 of file AMDGPULibFunc.cpp.

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

References Name.

◆ parseFuncName()

bool AMDGPUUnmangledLibFunc::parseFuncName ( StringRef Name)
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 679 of file AMDGPULibFunc.cpp.

References FuncId, and lookup().

◆ setFunctionType()

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

Definition at line 456 of file AMDGPULibFunc.h.


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