LLVM: lib/Target/AMDGPU/AMDGPULibFunc.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef _AMDGPU_LIBFUNC_H_

10#define _AMDGPU_LIBFUNC_H_

11

13#include

14

15namespace llvm {

16

22

24public:

27

28

29

30

31

32

33

34

35

36

37

38

237 EI_RCBRT,

238

239

244

246 };

247

253

285

292

297

299

305

307 return Param{I32, NumElts, 0, 0};

308 }

309

311

312 template

314 };

316 return static_cast<unsigned>(Id) <= static_cast<unsigned>(EI_LAST_MANGLED);

317 }

318

323

327 return Kind - 1;

328 }

329};

330

332public:

335

336

337

338 virtual std::string getName() const = 0;

342

344

347

348

349

350 virtual std::string mangle() const = 0;

351

354

356

357protected:

361};

362

363

365public:

368

369

372

373

375

377

378

379

380 std::string getName() const { return Impl->getName(); }

381 unsigned getNumArgs() const { return Impl->getNumArgs(); }

384

386 const Param *getLeads() const;

387

388 bool isMangled() const { return Impl->isMangled(); }

391 return Impl->parseFuncName(MangledName);

392 }

393

394

395

397 switch (getId()) {

399 return ArgIdx == 1;

402 return true;

403 default:

404 return false;

405 }

406 }

407

408

410

411

412

413 std::string mangle() const { return Impl->mangle(); }

414

417

419 return Impl->getFunctionType(M);

420 }

422

426

427private:

428

429 void initMangled();

430 std::unique_ptr Impl;

431};

432

434public:

436

441 bool SignedInts = true);

442

443 std::string getName() const override;

444 unsigned getNumArgs() const override;

447

449

450

452

453 std::string mangle() const override;

454

455private:

456 std::string mangleNameItanium() const;

457

459 bool parseUnmangledName(StringRef MangledName);

460

461 template void writeName(Stream &OS) const;

462};

463

466

467public:

470 Name = std::string(FName);

471 FuncTy = FT;

472 }

473 std::string getName() const override { return Name; }

474 unsigned getNumArgs() const override;

478

480

481

483

484 std::string mangle() const override { return Name; }

485

487};

488}

489#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

Definition AMDGPULibFunc.h:23

EFuncId

Definition AMDGPULibFunc.h:25

@ EI_ILOGB

Definition AMDGPULibFunc.h:113

@ EI_WORK_GROUP_SCAN_EXCLUSIVE_MIN

Definition AMDGPULibFunc.h:217

@ EI_FDIM

Definition AMDGPULibFunc.h:95

@ EI_ATAN

Definition AMDGPULibFunc.h:52

@ EI_FLOOR

Definition AMDGPULibFunc.h:96

@ EI_LOGB

Definition AMDGPULibFunc.h:135

@ EI_ABS

Definition AMDGPULibFunc.h:39

@ EI_SUB_GROUP_BROADCAST

Definition AMDGPULibFunc.h:180

@ EI_COMMIT_WRITE_PIPE

Definition AMDGPULibFunc.h:74

@ EI_LGAMMA

Definition AMDGPULibFunc.h:129

@ EI_ISLESSGREATER

Definition AMDGPULibFunc.h:121

@ EI_ISNORMAL

Definition AMDGPULibFunc.h:123

@ EI_CEIL

Definition AMDGPULibFunc.h:70

@ EI_SUB_GROUP_SCAN_EXCLUSIVE_MIN

Definition AMDGPULibFunc.h:190

@ EI_LDEXP

Definition AMDGPULibFunc.h:127

@ EI_SUB_SAT

Definition AMDGPULibFunc.h:194

@ EI_FAST_DISTANCE

Definition AMDGPULibFunc.h:92

@ EI_MIN

Definition AMDGPULibFunc.h:142

@ EI_GET_IMAGE_HEIGHT

Definition AMDGPULibFunc.h:107

@ EI_SUB_GROUP_COMMIT_READ_PIPE

Definition AMDGPULibFunc.h:181

@ EI_REMQUO

Definition AMDGPULibFunc.h:159

@ EI_WRITE_PIPE_4

Definition AMDGPULibFunc.h:243

@ EI_VSTORE2

Definition AMDGPULibFunc.h:204

@ EI_ATOMIC_MIN

Definition AMDGPULibFunc.h:63

@ EI_SINCOS

Definition AMDGPULibFunc.h:174

@ EI_ISGREATEREQUAL

Definition AMDGPULibFunc.h:117

@ EI_ASYNC_WORK_GROUP_COPY

Definition AMDGPULibFunc.h:50

@ EI_ANY

Definition AMDGPULibFunc.h:46

@ EI_ATOMIC_MAX

Definition AMDGPULibFunc.h:62

@ EI_ACOSH

Definition AMDGPULibFunc.h:42

@ EI_CBRT

Definition AMDGPULibFunc.h:69

@ EI_MODF

Definition AMDGPULibFunc.h:145

@ EI_ATAN2

Definition AMDGPULibFunc.h:53

@ EI_ATOMIC_ADD

Definition AMDGPULibFunc.h:57

@ EI_WORK_GROUP_COMMIT_WRITE_PIPE

Definition AMDGPULibFunc.h:209

@ EI_FMOD

Definition AMDGPULibFunc.h:100

@ EI_SUB_GROUP_REDUCE_ADD

Definition AMDGPULibFunc.h:183

@ EI_POPCOUNT

Definition AMDGPULibFunc.h:151

@ EI_MUL_HI

Definition AMDGPULibFunc.h:147

@ EI_VSTORE16

Definition AMDGPULibFunc.h:203

@ EI_COSPI

Definition AMDGPULibFunc.h:78

@ EI_SQRT

Definition AMDGPULibFunc.h:178

@ EI_READ_PIPE_4

Definition AMDGPULibFunc.h:241

@ EI_SUB_GROUP_SCAN_INCLUSIVE_MAX

Definition AMDGPULibFunc.h:192

@ EI_EXP

Definition AMDGPULibFunc.h:87

@ EI_DISTANCE

Definition AMDGPULibFunc.h:82

@ EI_NFMA

Definition AMDGPULibFunc.h:226

@ EI_SUB_GROUP_SCAN_INCLUSIVE_MIN

Definition AMDGPULibFunc.h:193

@ EI_LAST_MANGLED

Definition AMDGPULibFunc.h:236

@ EI_LGAMMA_R

Definition AMDGPULibFunc.h:130

@ EI_BITSELECT

Definition AMDGPULibFunc.h:68

@ EI_GET_IMAGE_DIM

Definition AMDGPULibFunc.h:106

@ EI_RHADD

Definition AMDGPULibFunc.h:162

@ EI_SUB_GROUP_SCAN_EXCLUSIVE_MAX

Definition AMDGPULibFunc.h:189

@ EI_POWN

Definition AMDGPULibFunc.h:153

@ EI_NEXP2

Definition AMDGPULibFunc.h:225

@ EI_VSTORE8

Definition AMDGPULibFunc.h:207

@ EI_VEC_STEP

Definition AMDGPULibFunc.h:201

@ EI_RSQRT

Definition AMDGPULibFunc.h:167

@ EI_ERFC

Definition AMDGPULibFunc.h:86

@ EI_DEGREES

Definition AMDGPULibFunc.h:81

@ EI_NCOS

Definition AMDGPULibFunc.h:224

@ EI_FMA

Definition AMDGPULibFunc.h:97

@ EI_EXP2

Definition AMDGPULibFunc.h:89

@ EI_SUB_GROUP_RESERVE_WRITE_PIPE

Definition AMDGPULibFunc.h:187

@ EI_ABS_DIFF

Definition AMDGPULibFunc.h:40

@ EI_FRACT

Definition AMDGPULibFunc.h:101

@ EI_MAXMAG

Definition AMDGPULibFunc.h:141

@ EI_GET_IMAGE_ARRAY_SIZE

Definition AMDGPULibFunc.h:103

@ EI_WORK_GROUP_RESERVE_READ_PIPE

Definition AMDGPULibFunc.h:213

@ EI_RCBRT

Definition AMDGPULibFunc.h:235

@ EI_LOG10

Definition AMDGPULibFunc.h:132

@ EI_ATANH

Definition AMDGPULibFunc.h:55

@ EI_WORK_GROUP_REDUCE_MAX

Definition AMDGPULibFunc.h:211

@ EI_ATOMIC_SUB

Definition AMDGPULibFunc.h:65

@ EI_ISNOTEQUAL

Definition AMDGPULibFunc.h:124

@ EI_ATOMIC_XCHG

Definition AMDGPULibFunc.h:66

@ EI_SHUFFLE2

Definition AMDGPULibFunc.h:170

@ EI_SHUFFLE

Definition AMDGPULibFunc.h:169

@ EI_SIGNBIT

Definition AMDGPULibFunc.h:172

@ EI_WORK_GROUP_SCAN_EXCLUSIVE_ADD

Definition AMDGPULibFunc.h:215

@ EI_TGAMMA

Definition AMDGPULibFunc.h:198

@ EI_MINMAG

Definition AMDGPULibFunc.h:143

@ EI_ROTATE

Definition AMDGPULibFunc.h:165

@ EI_ATOMIC_XOR

Definition AMDGPULibFunc.h:67

@ EI_ACOS

Definition AMDGPULibFunc.h:41

@ EI_SUB_GROUP_COMMIT_WRITE_PIPE

Definition AMDGPULibFunc.h:182

@ EI_SUB_GROUP_SCAN_EXCLUSIVE_ADD

Definition AMDGPULibFunc.h:188

@ EI_UPSAMPLE

Definition AMDGPULibFunc.h:200

@ EI_TRUNC

Definition AMDGPULibFunc.h:199

@ EI_NRSQRT

Definition AMDGPULibFunc.h:229

@ EI_CLZ

Definition AMDGPULibFunc.h:72

@ EI_TANPI

Definition AMDGPULibFunc.h:197

@ EI_WORK_GROUP_SCAN_INCLUSIVE_MAX

Definition AMDGPULibFunc.h:219

@ EI_ISORDERED

Definition AMDGPULibFunc.h:125

@ EI_WORK_GROUP_RESERVE_WRITE_PIPE

Definition AMDGPULibFunc.h:214

@ EI_MAX

Definition AMDGPULibFunc.h:140

@ EI_VSTORE3

Definition AMDGPULibFunc.h:205

@ EI_SUB_GROUP_SCAN_INCLUSIVE_ADD

Definition AMDGPULibFunc.h:191

@ EI_REMAINDER

Definition AMDGPULibFunc.h:158

@ EI_ERF

Definition AMDGPULibFunc.h:85

@ EI_VSTORE4

Definition AMDGPULibFunc.h:206

@ EX_INTRINSICS_COUNT

Definition AMDGPULibFunc.h:245

@ EI_ATANPI

Definition AMDGPULibFunc.h:56

@ EI_WORK_GROUP_SCAN_EXCLUSIVE_MAX

Definition AMDGPULibFunc.h:216

@ EI_SMOOTHSTEP

Definition AMDGPULibFunc.h:177

@ EI_SINPI

Definition AMDGPULibFunc.h:176

@ EI_STEP

Definition AMDGPULibFunc.h:179

@ EI_WORK_GROUP_SCAN_INCLUSIVE_ADD

Definition AMDGPULibFunc.h:218

@ EI_NAN

Definition AMDGPULibFunc.h:148

@ EI_ROUND

Definition AMDGPULibFunc.h:166

@ EI_MAD

Definition AMDGPULibFunc.h:136

@ EI_FMIN

Definition AMDGPULibFunc.h:99

@ EI_READ_PIPE_2

Definition AMDGPULibFunc.h:240

@ EI_WORK_GROUP_REDUCE_MIN

Definition AMDGPULibFunc.h:212

@ EI_CTZ

Definition AMDGPULibFunc.h:80

@ EI_POWR

Definition AMDGPULibFunc.h:154

@ EI_ISINF

Definition AMDGPULibFunc.h:118

@ EI_FAST_NORMALIZE

Definition AMDGPULibFunc.h:94

@ EI_COMMIT_READ_PIPE

Definition AMDGPULibFunc.h:73

@ EI_NRCP

Definition AMDGPULibFunc.h:228

@ EI_FMAX

Definition AMDGPULibFunc.h:98

@ EI_HYPOT

Definition AMDGPULibFunc.h:112

@ EI_ATOMIC_AND

Definition AMDGPULibFunc.h:58

@ EI_PREFETCH

Definition AMDGPULibFunc.h:155

@ EI_ISLESS

Definition AMDGPULibFunc.h:119

@ EI_NSIN

Definition AMDGPULibFunc.h:230

@ EI_MAD_SAT

Definition AMDGPULibFunc.h:139

@ EI_ROOTN

Definition AMDGPULibFunc.h:164

@ EI_SIN

Definition AMDGPULibFunc.h:173

@ EI_FLDEXP

Definition AMDGPULibFunc.h:233

@ EI_ISEQUAL

Definition AMDGPULibFunc.h:114

@ EI_SELECT

Definition AMDGPULibFunc.h:168

@ EI_CROSS

Definition AMDGPULibFunc.h:79

@ EI_TAN

Definition AMDGPULibFunc.h:195

@ EI_WORK_GROUP_COMMIT_READ_PIPE

Definition AMDGPULibFunc.h:208

@ EI_GET_PIPE_NUM_PACKETS

Definition AMDGPULibFunc.h:110

@ EI_WRITE_IMAGEUI

Definition AMDGPULibFunc.h:223

@ EI_MAD24

Definition AMDGPULibFunc.h:137

@ EI_MIX

Definition AMDGPULibFunc.h:144

@ EI_FABS

Definition AMDGPULibFunc.h:91

@ EI_SIGN

Definition AMDGPULibFunc.h:171

@ EI_WRITE_IMAGEI

Definition AMDGPULibFunc.h:222

@ EI_NONE

Definition AMDGPULibFunc.h:26

@ EI_RADIANS

Definition AMDGPULibFunc.h:156

@ EI_ATOMIC_DEC

Definition AMDGPULibFunc.h:60

@ EI_GET_PIPE_MAX_PACKETS

Definition AMDGPULibFunc.h:109

@ EI_MAD_HI

Definition AMDGPULibFunc.h:138

@ EI_RESERVE_READ_PIPE

Definition AMDGPULibFunc.h:160

@ EI_COSH

Definition AMDGPULibFunc.h:77

@ EI_SINH

Definition AMDGPULibFunc.h:175

@ EI_ATAN2PI

Definition AMDGPULibFunc.h:54

@ EI_DIVIDE

Definition AMDGPULibFunc.h:83

@ EI_LOG

Definition AMDGPULibFunc.h:131

@ EI_CLAMP

Definition AMDGPULibFunc.h:71

@ EI_SUB_GROUP_RESERVE_READ_PIPE

Definition AMDGPULibFunc.h:186

@ EI_ASIN

Definition AMDGPULibFunc.h:47

@ EI_FTZ

Definition AMDGPULibFunc.h:232

@ EI_HADD

Definition AMDGPULibFunc.h:111

@ EI_ISGREATER

Definition AMDGPULibFunc.h:116

@ EI_RINT

Definition AMDGPULibFunc.h:163

@ EI_RESERVE_WRITE_PIPE

Definition AMDGPULibFunc.h:161

@ EI_ASINH

Definition AMDGPULibFunc.h:48

@ EI_ADD_SAT

Definition AMDGPULibFunc.h:44

@ EI_DOT

Definition AMDGPULibFunc.h:84

@ EI_FAST_LENGTH

Definition AMDGPULibFunc.h:93

@ EI_NSQRT

Definition AMDGPULibFunc.h:231

@ EI_WRITE_IMAGEF

Definition AMDGPULibFunc.h:221

@ EI_EXP10

Definition AMDGPULibFunc.h:88

@ EI_ATOMIC_CMPXCHG

Definition AMDGPULibFunc.h:59

@ EI_COPYSIGN

Definition AMDGPULibFunc.h:75

@ EI_MUL24

Definition AMDGPULibFunc.h:146

@ EI_ACOSPI

Definition AMDGPULibFunc.h:43

@ EI_ASYNC_WORK_GROUP_STRIDED_COPY

Definition AMDGPULibFunc.h:51

@ EI_ISFINITE

Definition AMDGPULibFunc.h:115

@ EI_TANH

Definition AMDGPULibFunc.h:196

@ EI_ISNAN

Definition AMDGPULibFunc.h:122

@ EI_GET_IMAGE_CHANNEL_ORDER

Definition AMDGPULibFunc.h:105

@ EI_COS

Definition AMDGPULibFunc.h:76

@ EI_ASINPI

Definition AMDGPULibFunc.h:49

@ EI_EXPM1

Definition AMDGPULibFunc.h:90

@ EI_VSTORE

Definition AMDGPULibFunc.h:202

@ EI_GET_IMAGE_WIDTH

Definition AMDGPULibFunc.h:108

@ EI_NLOG2

Definition AMDGPULibFunc.h:227

@ EI_ISLESSEQUAL

Definition AMDGPULibFunc.h:120

@ EI_SUB_GROUP_REDUCE_MIN

Definition AMDGPULibFunc.h:185

@ EI_ALL

Definition AMDGPULibFunc.h:45

@ EI_NEXTAFTER

Definition AMDGPULibFunc.h:149

@ EI_FREXP

Definition AMDGPULibFunc.h:102

@ EI_LENGTH

Definition AMDGPULibFunc.h:128

@ EI_WORK_GROUP_REDUCE_ADD

Definition AMDGPULibFunc.h:210

@ EI_SUB_GROUP_REDUCE_MAX

Definition AMDGPULibFunc.h:184

@ EI_LOG1P

Definition AMDGPULibFunc.h:133

@ EI_NORMALIZE

Definition AMDGPULibFunc.h:150

@ EI_ATOMIC_OR

Definition AMDGPULibFunc.h:64

@ EI_ISUNORDERED

Definition AMDGPULibFunc.h:126

@ EI_RECIP

Definition AMDGPULibFunc.h:157

@ EI_POW

Definition AMDGPULibFunc.h:152

@ EI_GET_IMAGE_CHANNEL_DATA_TYPE

Definition AMDGPULibFunc.h:104

@ EI_WORK_GROUP_SCAN_INCLUSIVE_MIN

Definition AMDGPULibFunc.h:220

@ EI_WRITE_PIPE_2

Definition AMDGPULibFunc.h:242

@ EI_CLASS

Definition AMDGPULibFunc.h:234

@ EI_LOG2

Definition AMDGPULibFunc.h:134

@ EI_ATOMIC_INC

Definition AMDGPULibFunc.h:61

static unsigned getEPtrKindFromAddrSpace(unsigned AS)

Definition AMDGPULibFunc.h:319

static unsigned getAddrSpaceFromEPtrKind(unsigned Kind)

Definition AMDGPULibFunc.h:324

ENamePrefix

Definition AMDGPULibFunc.h:248

@ NATIVE

Definition AMDGPULibFunc.h:250

@ NOPFX

Definition AMDGPULibFunc.h:249

@ HALF

Definition AMDGPULibFunc.h:251

static bool isMangled(EFuncId Id)

Definition AMDGPULibFunc.h:315

EType

Definition AMDGPULibFunc.h:254

@ F64

Definition AMDGPULibFunc.h:274

@ B32

Definition AMDGPULibFunc.h:257

@ SIZE_MASK

Definition AMDGPULibFunc.h:259

@ IMG1D

Definition AMDGPULibFunc.h:278

@ I16

Definition AMDGPULibFunc.h:269

@ EVENT

Definition AMDGPULibFunc.h:282

@ DUMMY

Definition AMDGPULibFunc.h:283

@ U32

Definition AMDGPULibFunc.h:266

@ B16

Definition AMDGPULibFunc.h:256

@ INT

Definition AMDGPULibFunc.h:261

@ IMG2D

Definition AMDGPULibFunc.h:279

@ BASE_TYPE_MASK

Definition AMDGPULibFunc.h:263

@ U16

Definition AMDGPULibFunc.h:265

@ I32

Definition AMDGPULibFunc.h:270

@ U64

Definition AMDGPULibFunc.h:267

@ B64

Definition AMDGPULibFunc.h:258

@ IMG1DA

Definition AMDGPULibFunc.h:275

@ UINT

Definition AMDGPULibFunc.h:262

@ I64

Definition AMDGPULibFunc.h:271

@ FLOAT

Definition AMDGPULibFunc.h:260

@ IMG2DA

Definition AMDGPULibFunc.h:277

@ IMG1DB

Definition AMDGPULibFunc.h:276

@ I8

Definition AMDGPULibFunc.h:268

@ IMG3D

Definition AMDGPULibFunc.h:280

@ U8

Definition AMDGPULibFunc.h:264

@ SAMPLER

Definition AMDGPULibFunc.h:281

@ B8

Definition AMDGPULibFunc.h:255

@ F32

Definition AMDGPULibFunc.h:273

@ F16

Definition AMDGPULibFunc.h:272

EPtrKind

Definition AMDGPULibFunc.h:286

@ VOLATILE

Definition AMDGPULibFunc.h:290

@ CONST

Definition AMDGPULibFunc.h:289

@ ADDR_SPACE

Definition AMDGPULibFunc.h:288

@ BYVALUE

Definition AMDGPULibFunc.h:287

Definition AMDGPULibFunc.h:331

EFuncId FuncId

Definition AMDGPULibFunc.h:358

virtual std::string mangle() const =0

virtual FunctionType * getFunctionType(const Module &M) const =0

AMDGPULibFuncImpl()=default

ENamePrefix FKind

Definition AMDGPULibFunc.h:360

EFuncId getId() const

Definition AMDGPULibFunc.h:340

virtual bool parseFuncName(StringRef &mangledName)=0

virtual unsigned getNumArgs() const =0

ENamePrefix getPrefix() const

Definition AMDGPULibFunc.h:341

virtual ~AMDGPULibFuncImpl()=default

void setPrefix(ENamePrefix pfx)

Definition AMDGPULibFunc.h:353

void setName(StringRef N)

Definition AMDGPULibFunc.h:352

bool isMangled() const

Definition AMDGPULibFunc.h:343

virtual std::string getName() const =0

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

std::string Name

Definition AMDGPULibFunc.h:359

void setId(EFuncId id)

Definition AMDGPULibFunc.h:345

Wrapper class for AMDGPULIbFuncImpl.

Definition AMDGPULibFunc.h:364

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

static bool parse(StringRef MangledName, AMDGPULibFunc &Ptr)

bool parseFuncName(StringRef &MangledName)

Definition AMDGPULibFunc.h:390

std::string getName() const

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

Definition AMDGPULibFunc.h:380

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

void setPrefix(ENamePrefix PFX)

Definition AMDGPULibFunc.h:416

FunctionType * getFunctionType(const Module &M) const

Definition AMDGPULibFunc.h:418

AMDGPULibFunc()

Definition AMDGPULibFunc.h:366

void setName(StringRef N)

Definition AMDGPULibFunc.h:415

bool isCompatibleSignature(const Module &M, const FunctionType *FuncTy) const

EFuncId getId() const

Definition AMDGPULibFunc.h:382

bool allowsImplicitVectorSplat(int ArgIdx) const

Return true if it's legal to splat a scalar value passed in parameter ArgIdx to a vector argument.

Definition AMDGPULibFunc.h:396

bool isMangled() const

Definition AMDGPULibFunc.h:388

std::string mangle() const

Definition AMDGPULibFunc.h:413

AMDGPULibFunc & operator=(const AMDGPULibFunc &F)

Param * getLeads()

Get leading parameters for mangled lib functions.

void setId(EFuncId Id)

Definition AMDGPULibFunc.h:389

ENamePrefix getPrefix() const

Definition AMDGPULibFunc.h:383

unsigned getNumArgs() const

Definition AMDGPULibFunc.h:381

static StringRef getUnmangledName(StringRef MangledName)

unsigned getNumArgs() const override

Param Leads[2]

Definition AMDGPULibFunc.h:435

bool parseFuncName(StringRef &mangledName) override

std::string getName() const override

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

static bool classof(const AMDGPULibFuncImpl *F)

Definition AMDGPULibFunc.h:451

FunctionType * getFunctionType(const Module &M) const override

std::string mangle() const override

static bool classof(const AMDGPULibFuncImpl *F)

Definition AMDGPULibFunc.h:482

unsigned getNumArgs() const override

std::string mangle() const override

Definition AMDGPULibFunc.h:484

FunctionType * getFunctionType(const Module &M) const override

Definition AMDGPULibFunc.h:475

void setFunctionType(FunctionType *FT)

Definition AMDGPULibFunc.h:486

bool parseFuncName(StringRef &Name) override

std::string getName() const override

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

Definition AMDGPULibFunc.h:473

AMDGPUUnmangledLibFunc(StringRef FName, FunctionType *FT)

Definition AMDGPULibFunc.h:469

A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single enti...

Class to represent function types.

A Module instance is used to store all the information related to an LLVM module.

StringRef - Represent a constant reference to a string, i.e.

The instances of the Type class are immutable: once they are created, they are never changed.

This is an optimization pass for GlobalISel generic memory operations.

Implement std::hash so that hash_code can be used in STL containers.

Definition AMDGPULibFunc.h:293

void reset()

Definition AMDGPULibFunc.h:300

void mangleItanium(Stream &os)

unsigned char VectorSize

Definition AMDGPULibFunc.h:295

unsigned char PtrKind

Definition AMDGPULibFunc.h:296

static Param getIntN(unsigned char NumElts)

Definition AMDGPULibFunc.h:306

unsigned char Reserved

Definition AMDGPULibFunc.h:298

static Param getFromTy(Type *Ty, bool Signed)

unsigned char ArgType

Definition AMDGPULibFunc.h:294