LLVM  6.0.0svn
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)
 

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, PRIVATE, GLOBAL, READONLY,
  LOCAL, GENERIC, OTHER, 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 432 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPUUnmangledLibFunc() [1/2]

AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc ( )
explicit

Definition at line 528 of file AMDGPULibFunc.cpp.

◆ AMDGPUUnmangledLibFunc() [2/2]

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

Definition at line 437 of file AMDGPULibFunc.h.

Member Function Documentation

◆ classof()

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

Definition at line 448 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::isMangled().

◆ getFunctionType()

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

Implements llvm::AMDGPULibFuncImpl.

Definition at line 443 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 441 of file AMDGPULibFunc.h.

◆ getNumArgs()

unsigned AMDGPUUnmangledLibFunc::getNumArgs ( ) const
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 939 of file AMDGPULibFunc.cpp.

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

◆ parseFuncName()

bool AMDGPUUnmangledLibFunc::parseFuncName ( StringRef Name)
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 681 of file AMDGPULibFunc.cpp.

References lookup().

◆ setFunctionType()

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

Definition at line 452 of file AMDGPULibFunc.h.


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