LLVM 20.0.0git
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]

Public Member Functions

 AMDGPUMangledLibFunc ()
 
 AMDGPUMangledLibFunc (EFuncId id, const AMDGPUMangledLibFunc &copyFrom)
 
 AMDGPUMangledLibFunc (EFuncId id, FunctionType *FT, bool SignedInts=true)
 
std::string getName () const override
 Get unmangled name for mangled library function and name for unmangled library function.
 
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 ()=default
 
virtual ~AMDGPULibFuncImpl ()=default
 
virtual std::string getName () const =0
 Get unmangled name for mangled library function and name for unmangled library function.
 
virtual unsigned getNumArgs () const =0
 
EFuncId getId () const
 
ENamePrefix getPrefix () const
 
bool isMangled () const
 
void setId (EFuncId id)
 
virtual bool parseFuncName (StringRef &mangledName)=0
 
virtual std::string mangle () const =0
 
void setName (StringRef N)
 
void setPrefix (ENamePrefix pfx)
 
virtual FunctionTypegetFunctionType (Module &M) const =0
 

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)
 
static unsigned getEPtrKindFromAddrSpace (unsigned AS)
 
static unsigned getAddrSpaceFromEPtrKind (unsigned Kind)
 

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 , ADDR_SPACE = 0xF , CONST = 0x10 , VOLATILE = 0x20 }
 
- Protected Attributes inherited from llvm::AMDGPULibFuncImpl
EFuncId FuncId
 
std::string Name
 
ENamePrefix FKind = NOPFX
 

Detailed Description

Definition at line 419 of file AMDGPULibFunc.h.

Constructor & Destructor Documentation

◆ AMDGPUMangledLibFunc() [1/3]

AMDGPUMangledLibFunc::AMDGPUMangledLibFunc ( )
explicit

◆ AMDGPUMangledLibFunc() [2/3]

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

◆ AMDGPUMangledLibFunc() [3/3]

AMDGPUMangledLibFunc::AMDGPUMangledLibFunc ( EFuncId  id,
FunctionType FT,
bool  SignedInts = true 
)
explicit

Member Function Documentation

◆ classof()

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

Definition at line 437 of file AMDGPULibFunc.h.

References F.

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

References OS.

◆ getNumArgs()

unsigned AMDGPUMangledLibFunc::getNumArgs ( ) const
overridevirtual

Implements llvm::AMDGPULibFuncImpl.

Definition at line 987 of file AMDGPULibFunc.cpp.

References FuncId.

◆ getUnmangledName()

StringRef AMDGPUMangledLibFunc::getUnmangledName ( StringRef  MangledName)
static

Definition at line 709 of file AMDGPULibFunc.cpp.

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

◆ parseFuncName()

bool AMDGPUMangledLibFunc::parseFuncName ( StringRef mangledName)
overridevirtual

Member Data Documentation

◆ Leads

Param llvm::AMDGPUMangledLibFunc::Leads[2]

Definition at line 421 of file AMDGPULibFunc.h.

Referenced by AMDGPUMangledLibFunc(), and parseFuncName().


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