LLVM 17.0.0git
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.
 
 AMDGPULibFunc (StringRef FName, FunctionType *FT)
 Construct an unmangled library function on the fly.
 
AMDGPULibFuncoperator= (const AMDGPULibFunc &F)
 
std::string getName () const
 Get unmangled name for mangled library function and name for unmangled library function.
 
unsigned getNumArgs () const
 
EFuncId getId () const
 
ENamePrefix getPrefix () const
 
ParamgetLeads ()
 Get leading parameters for mangled lib functions.
 
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 FunctionCallee getOrInsertFunction (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)
 
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 }
 

Detailed Description

Wrapper class for AMDGPULIbFuncImpl.

Definition at line 358 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPULibFunc() [1/4]

llvm::AMDGPULibFunc::AMDGPULibFunc ( )
inlineexplicit

Definition at line 360 of file AMDGPULibFunc.h.

Referenced by operator=().

◆ AMDGPULibFunc() [2/4]

AMDGPULibFunc::AMDGPULibFunc ( const AMDGPULibFunc F)

Definition at line 1023 of file AMDGPULibFunc.cpp.

References F.

◆ 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 1039 of file AMDGPULibFunc.cpp.

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

◆ AMDGPULibFunc() [4/4]

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

Construct an unmangled library function on the fly.

Definition at line 1046 of file AMDGPULibFunc.cpp.

References Name.

Member Function Documentation

◆ getFunction()

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

Definition at line 948 of file AMDGPULibFunc.cpp.

References F, getNumArgs(), and mangle().

◆ getFunctionType()

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

Definition at line 393 of file AMDGPULibFunc.h.

Referenced by getOrInsertFunction().

◆ getId()

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

Definition at line 374 of file AMDGPULibFunc.h.

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

◆ getLeads() [1/2]

AMDGPULibFunc::Param * AMDGPULibFunc::getLeads ( )

Get leading parameters for mangled lib functions.

Definition at line 1052 of file AMDGPULibFunc.cpp.

Referenced by getArgType(), and getVecSize().

◆ getLeads() [2/2]

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

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

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

◆ getNumArgs()

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

Definition at line 373 of file AMDGPULibFunc.h.

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

◆ getOrInsertFunction()

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

◆ getPrefix()

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

Definition at line 375 of file AMDGPULibFunc.h.

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

◆ isMangled()

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

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

Referenced by getFunction(), and getOrInsertFunction().

◆ operator=()

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

Definition at line 1032 of file AMDGPULibFunc.cpp.

References AMDGPULibFunc(), and F.

◆ parse()

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

Definition at line 682 of file AMDGPULibFunc.cpp.

References llvm::StringRef::empty(), and F.

◆ parseFuncName()

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

Definition at line 382 of file AMDGPULibFunc.h.

◆ setId()

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

Definition at line 381 of file AMDGPULibFunc.h.

◆ setName()

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

Definition at line 390 of file AMDGPULibFunc.h.

References N.

◆ setPrefix()

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

Definition at line 391 of file AMDGPULibFunc.h.

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


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