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

Wrapper class for AMDGPULIbFuncImpl. More...

#include "Target/AMDGPU/AMDGPULibFunc.h"

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

Public Member Functions

 AMDGPULibFunc ()
 
 AMDGPULibFunc (const AMDGPULibFunc &F)
 
 AMDGPULibFunc (EFuncId Id, const AMDGPULibFunc &CopyFrom)
 Clone a mangled library func with the Id Id and argument info from CopyFrom. More...
 
 AMDGPULibFunc (StringRef FName, FunctionType *FT)
 Construct an unmangled library function on the fly. More...
 
AMDGPULibFuncoperator= (const AMDGPULibFunc &F)
 
std::string getName () const
 Get unmangled name for mangled library function and name for unmangled library function. More...
 
unsigned getNumArgs () const
 
EFuncId getId () const
 
ENamePrefix getPrefix () const
 
ParamgetLeads ()
 Get leading parameters for mangled lib functions. More...
 
const ParamgetLeads () const
 
bool isMangled () const
 
void setId (EFuncId Id)
 
bool parseFuncName (StringRef &MangledName)
 
std::string mangle () const
 
void setName (StringRef N)
 
void setPrefix (ENamePrefix PFX)
 
FunctionTypegetFunctionType (Module &M) const
 

Static Public Member Functions

static FunctiongetFunction (llvm::Module *M, const AMDGPULibFunc &fInfo)
 
static FunctiongetOrInsertFunction (llvm::Module *M, const AMDGPULibFunc &fInfo)
 
static bool parse (StringRef MangledName, AMDGPULibFunc &Ptr)
 
- 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
}
 

Detailed Description

Wrapper class for AMDGPULIbFuncImpl.

Definition at line 353 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPULibFunc() [1/4]

llvm::AMDGPULibFunc::AMDGPULibFunc ( )
inlineexplicit

Definition at line 355 of file AMDGPULibFunc.h.

References F().

◆ AMDGPULibFunc() [2/4]

AMDGPULibFunc::AMDGPULibFunc ( const AMDGPULibFunc F)

Definition at line 1016 of file AMDGPULibFunc.cpp.

◆ AMDGPULibFunc() [3/4]

AMDGPULibFunc::AMDGPULibFunc ( EFuncId  Id,
const AMDGPULibFunc CopyFrom 
)
explicit

Clone a mangled library func with the Id Id and argument info from CopyFrom.

Definition at line 1032 of file AMDGPULibFunc.cpp.

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

◆ AMDGPULibFunc() [4/4]

AMDGPULibFunc::AMDGPULibFunc ( StringRef  FName,
FunctionType FT 
)
explicit

Construct an unmangled library function on the fly.

Definition at line 1039 of file AMDGPULibFunc.cpp.

Member Function Documentation

◆ getFunction()

Function * AMDGPULibFunc::getFunction ( llvm::Module M,
const AMDGPULibFunc fInfo 
)
static

◆ getFunctionType()

FunctionType* llvm::AMDGPULibFunc::getFunctionType ( Module M) const
inline

Definition at line 388 of file AMDGPULibFunc.h.

Referenced by getOrInsertFunction().

◆ getId()

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

◆ getLeads() [1/2]

AMDGPULibFunc::Param * AMDGPULibFunc::getLeads ( )

Get leading parameters for mangled lib functions.

Definition at line 1045 of file AMDGPULibFunc.cpp.

Referenced by getArgType(), getVecSize(), llvm::AMDGPULibCalls::initNativeFuncs(), and llvm::log2().

◆ getLeads() [2/2]

const AMDGPULibFunc::Param * AMDGPULibFunc::getLeads ( ) const

Definition at line 1051 of file AMDGPULibFunc.cpp.

◆ getName()

std::string llvm::AMDGPULibFunc::getName ( ) const
inline

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

Definition at line 367 of file AMDGPULibFunc.h.

Referenced by llvm::AMDGPULibCalls::useNative().

◆ getNumArgs()

unsigned llvm::AMDGPULibFunc::getNumArgs ( ) const
inline

Definition at line 368 of file AMDGPULibFunc.h.

Referenced by llvm::AMDGPULibCalls::fold(), getFunction(), and getOrInsertFunction().

◆ getOrInsertFunction()

Function * AMDGPULibFunc::getOrInsertFunction ( llvm::Module M,
const AMDGPULibFunc fInfo 
)
static

◆ getPrefix()

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

Definition at line 370 of file AMDGPULibFunc.h.

Referenced by llvm::AMDGPULibCalls::fold(), and llvm::AMDGPULibCalls::useNative().

◆ isMangled()

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

Definition at line 375 of file AMDGPULibFunc.h.

Referenced by AMDGPULibFunc(), and llvm::AMDGPULibCalls::useNative().

◆ mangle()

std::string llvm::AMDGPULibFunc::mangle ( ) const
inline
Returns
The mangled function name for mangled library functions and unmangled function name for unmangled library functions.

Definition at line 383 of file AMDGPULibFunc.h.

Referenced by getFunction(), getOrInsertFunction(), and llvm::log2().

◆ operator=()

AMDGPULibFunc & AMDGPULibFunc::operator= ( const AMDGPULibFunc F)

Definition at line 1025 of file AMDGPULibFunc.cpp.

◆ parse()

bool AMDGPULibFunc::parse ( StringRef  MangledName,
AMDGPULibFunc Ptr 
)
static

Definition at line 688 of file AMDGPULibFunc.cpp.

References llvm::StringRef::empty().

Referenced by getArgType(), and llvm::log2().

◆ parseFuncName()

bool llvm::AMDGPULibFunc::parseFuncName ( StringRef MangledName)
inline

Definition at line 377 of file AMDGPULibFunc.h.

◆ setId()

void llvm::AMDGPULibFunc::setId ( EFuncId  Id)
inline

Definition at line 376 of file AMDGPULibFunc.h.

Referenced by llvm::AMDGPULibCalls::initNativeFuncs(), and llvm::log2().

◆ setName()

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

Definition at line 385 of file AMDGPULibFunc.h.

◆ setPrefix()

void llvm::AMDGPULibFunc::setPrefix ( ENamePrefix  PFX)
inline

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