LLVM  6.0.0svn
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::AMDGPUMangledLibFunc Class Reference

#include "Target/AMDGPU/AMDGPULibFunc.h"

Inheritance diagram for llvm::AMDGPUMangledLibFunc:
Inheritance graph
[legend]
Collaboration diagram for llvm::AMDGPUMangledLibFunc:
Collaboration graph
[legend]

Public Member Functions

 AMDGPUMangledLibFunc ()
 
 AMDGPUMangledLibFunc (EFuncId id, const AMDGPUMangledLibFunc &copyFrom)
 
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 &mangledName) override
 
std::string mangle () const override
 
- 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 StringRef getUnmangledName (StringRef MangledName)
 
static bool classof (const AMDGPULibFuncImpl *F)
 
- Static Public Member Functions inherited from llvm::AMDGPULibFuncBase
static bool isMangled (EFuncId Id)
 

Public Attributes

Param Leads [2]
 

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

Constructor & Destructor Documentation

◆ AMDGPUMangledLibFunc() [1/2]

AMDGPUMangledLibFunc::AMDGPUMangledLibFunc ( )
explicit

Definition at line 520 of file AMDGPULibFunc.cpp.

◆ AMDGPUMangledLibFunc() [2/2]

AMDGPUMangledLibFunc::AMDGPUMangledLibFunc ( EFuncId  id,
const AMDGPUMangledLibFunc copyFrom 
)
explicit

Definition at line 533 of file AMDGPULibFunc.cpp.

References llvm::AMDGPULibFuncImpl::FKind, and Leads.

Member Function Documentation

◆ classof()

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

Definition at line 419 of file AMDGPULibFunc.h.

References llvm::AMDGPULibFuncImpl::isMangled().

◆ getFunctionType()

FunctionType * AMDGPUMangledLibFunc::getFunctionType ( Module M) const
overridevirtual

◆ getName()

std::string AMDGPUMangledLibFunc::getName ( ) const
overridevirtual

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

Implements llvm::AMDGPULibFuncImpl.

Definition at line 943 of file AMDGPULibFunc.cpp.

References llvm::raw_svector_ostream::str().

◆ getNumArgs()

unsigned AMDGPUMangledLibFunc::getNumArgs ( ) const
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 935 of file AMDGPULibFunc.cpp.

◆ getUnmangledName()

StringRef AMDGPUMangledLibFunc::getUnmangledName ( StringRef  MangledName)
static

Definition at line 705 of file AMDGPULibFunc.cpp.

References llvm::StringRef::data(), and llvm::StringRef::size().

◆ mangle()

std::string AMDGPUMangledLibFunc::mangle ( ) const
overridevirtual
Returns
The mangled function name for mangled library functions and unmangled function name for unmangled library functions.

Implements llvm::AMDGPULibFuncImpl.

Definition at line 732 of file AMDGPULibFunc.cpp.

◆ parseFuncName()

bool AMDGPUMangledLibFunc::parseFuncName ( StringRef mangledName)
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 662 of file AMDGPULibFunc.cpp.

References I, P, and parseNamePrefix().

Member Data Documentation

◆ Leads

Param llvm::AMDGPUMangledLibFunc::Leads[2]

Definition at line 405 of file AMDGPULibFunc.h.

Referenced by AMDGPUMangledLibFunc().


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