LLVM  14.0.0git
AMDGPULibFunc.h
Go to the documentation of this file.
1 //===-- AMDGPULibFunc.h ----------------------------------------*- C++ -*--===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef _AMDGPU_LIBFUNC_H_
10 #define _AMDGPU_LIBFUNC_H_
11 
12 #include "llvm/ADT/StringRef.h"
13 
14 namespace llvm {
15 
16 class FunctionCallee;
17 class FunctionType;
18 class Function;
19 class Module;
20 
22 public:
23  enum EFuncId {
25 
26  // IMPORTANT: enums below should go in ascending by 1 value order
27  // because they are used as indexes in the mangling rules table.
28  // don't use explicit value assignment.
29  //
30  // There are two types of library functions: those with mangled
31  // name and those with unmangled name. The enums for the library
32  // functions with mangled name are defined before enums for the
33  // library functions with unmangled name. The enum for the last
34  // library function with mangled name is EI_LAST_MANGLED.
35  //
36  // Library functions with mangled name.
235  EI_RCBRT, /* The last library function with mangled name */
236 
237  // Library functions with unmangled name.
242 
244  };
245 
246  enum ENamePrefix {
250  };
251 
252  enum EType {
253  B8 = 1,
254  B16 = 2,
255  B32 = 3,
256  B64 = 4,
258  FLOAT = 0x10,
259  INT = 0x20,
260  UINT = 0x30,
262  U8 = UINT | B8,
263  U16 = UINT | B16,
264  U32 = UINT | B32,
265  U64 = UINT | B64,
266  I8 = INT | B8,
267  I16 = INT | B16,
268  I32 = INT | B32,
269  I64 = INT | B64,
270  F16 = FLOAT | B16,
271  F32 = FLOAT | B32,
272  F64 = FLOAT | B64,
273  IMG1DA = 0x80,
282  };
283 
284  enum EPtrKind {
285  BYVALUE = 0,
286  ADDR_SPACE = 0xF, // Address space takes value 0x1 ~ 0xF.
287  CONST = 0x10,
288  VOLATILE = 0x20
289  };
290 
291  struct Param {
292  unsigned char ArgType;
293  unsigned char VectorSize;
294  unsigned char PtrKind;
295 
296  unsigned char Reserved;
297 
298  void reset() {
299  ArgType = 0;
300  VectorSize = 1;
301  PtrKind = 0;
302  }
303  Param() { reset(); }
304 
305  template <typename Stream>
306  void mangleItanium(Stream& os);
307  };
308  static bool isMangled(EFuncId Id) {
309  return static_cast<unsigned>(Id) <= static_cast<unsigned>(EI_LAST_MANGLED);
310  }
311 
312  static unsigned getEPtrKindFromAddrSpace(unsigned AS) {
313  assert(((AS + 1) & ~ADDR_SPACE) == 0);
314  return AS + 1;
315  }
316 
317  static unsigned getAddrSpaceFromEPtrKind(unsigned Kind) {
318  Kind = Kind & ADDR_SPACE;
319  assert(Kind >= 1);
320  return Kind - 1;
321  }
322 };
323 
325 public:
327  virtual ~AMDGPULibFuncImpl() {}
328 
329  /// Get unmangled name for mangled library function and name for unmangled
330  /// library function.
331  virtual std::string getName() const = 0;
332  virtual unsigned getNumArgs() const = 0;
333  EFuncId getId() const { return FuncId; }
334  ENamePrefix getPrefix() const { return FKind; }
335 
337 
338  void setId(EFuncId id) { FuncId = id; }
339  virtual bool parseFuncName(StringRef &mangledName) = 0;
340 
341  /// \return The mangled function name for mangled library functions
342  /// and unmangled function name for unmangled library functions.
343  virtual std::string mangle() const = 0;
344 
345  void setName(StringRef N) { Name = std::string(N); }
346  void setPrefix(ENamePrefix pfx) { FKind = pfx; }
347 
348  virtual FunctionType *getFunctionType(Module &M) const = 0;
349 
350 protected:
352  std::string Name;
354 };
355 
356 /// Wrapper class for AMDGPULIbFuncImpl
358 public:
359  explicit AMDGPULibFunc() : Impl(std::unique_ptr<AMDGPULibFuncImpl>()) {}
360  AMDGPULibFunc(const AMDGPULibFunc &F);
361  /// Clone a mangled library func with the Id \p Id and argument info from \p
362  /// CopyFrom.
363  explicit AMDGPULibFunc(EFuncId Id, const AMDGPULibFunc &CopyFrom);
364  /// Construct an unmangled library function on the fly.
365  explicit AMDGPULibFunc(StringRef FName, FunctionType *FT);
366 
368 
369  /// Get unmangled name for mangled library function and name for unmangled
370  /// library function.
371  std::string getName() const { return Impl->getName(); }
372  unsigned getNumArgs() const { return Impl->getNumArgs(); }
373  EFuncId getId() const { return Impl->getId(); }
374  ENamePrefix getPrefix() const { return Impl->getPrefix(); }
375  /// Get leading parameters for mangled lib functions.
376  Param *getLeads();
377  const Param *getLeads() const;
378 
379  bool isMangled() const { return Impl->isMangled(); }
380  void setId(EFuncId Id) { Impl->setId(Id); }
381  bool parseFuncName(StringRef &MangledName) {
382  return Impl->parseFuncName(MangledName);
383  }
384 
385  /// \return The mangled function name for mangled library functions
386  /// and unmangled function name for unmangled library functions.
387  std::string mangle() const { return Impl->mangle(); }
388 
389  void setName(StringRef N) { Impl->setName(N); }
390  void setPrefix(ENamePrefix PFX) { Impl->setPrefix(PFX); }
391 
393  return Impl->getFunctionType(M);
394  }
395  static Function *getFunction(llvm::Module *M, const AMDGPULibFunc &fInfo);
396 
398  const AMDGPULibFunc &fInfo);
399  static bool parse(StringRef MangledName, AMDGPULibFunc &Ptr);
400 
401 private:
402  /// Initialize as a mangled library function.
403  void initMangled();
404  std::unique_ptr<AMDGPULibFuncImpl> Impl;
405 };
406 
408 public:
410 
411  explicit AMDGPUMangledLibFunc();
412  explicit AMDGPUMangledLibFunc(EFuncId id,
413  const AMDGPUMangledLibFunc &copyFrom);
414 
415  std::string getName() const override;
416  unsigned getNumArgs() const override;
417  FunctionType *getFunctionType(Module &M) const override;
418  static StringRef getUnmangledName(StringRef MangledName);
419 
420  bool parseFuncName(StringRef &mangledName) override;
421 
422  // Methods for support type inquiry through isa, cast, and dyn_cast:
423  static bool classof(const AMDGPULibFuncImpl *F) { return F->isMangled(); }
424 
425  std::string mangle() const override;
426 
427 private:
428  std::string mangleNameItanium() const;
429 
430  std::string mangleName(StringRef Name) const;
431  bool parseUnmangledName(StringRef MangledName);
432 
433  template <typename Stream> void writeName(Stream &OS) const;
434 };
435 
437  FunctionType *FuncTy;
438 
439 public:
440  explicit AMDGPUUnmangledLibFunc();
442  Name = std::string(FName);
443  FuncTy = FT;
444  }
445  std::string getName() const override { return Name; }
446  unsigned getNumArgs() const override;
447  FunctionType *getFunctionType(Module &M) const override { return FuncTy; }
448 
449  bool parseFuncName(StringRef &Name) override;
450 
451  // Methods for support type inquiry through isa, cast, and dyn_cast:
452  static bool classof(const AMDGPULibFuncImpl *F) { return !F->isMangled(); }
453 
454  std::string mangle() const override { return Name; }
455 
456  void setFunctionType(FunctionType *FT) { FuncTy = FT; }
457 };
458 }
459 #endif // _AMDGPU_LIBFUNC_H_
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_INCLUSIVE_MIN
@ EI_WORK_GROUP_SCAN_INCLUSIVE_MIN
Definition: AMDGPULibFunc.h:218
llvm::AMDGPULibFuncBase::EI_SELECT
@ EI_SELECT
Definition: AMDGPULibFunc.h:166
llvm::AMDGPULibFuncBase::EI_ABS_DIFF
@ EI_ABS_DIFF
Definition: AMDGPULibFunc.h:38
llvm::AMDGPULibFunc::isMangled
bool isMangled() const
Definition: AMDGPULibFunc.h:379
llvm::AMDGPULibFuncBase::EI_FREXP
@ EI_FREXP
Definition: AMDGPULibFunc.h:100
llvm::AMDGPULibFuncBase::EI_ASINH
@ EI_ASINH
Definition: AMDGPULibFunc.h:46
llvm::AMDGPULibFuncBase::DUMMY
@ DUMMY
Definition: AMDGPULibFunc.h:281
llvm::AMDGPULibFuncBase::EI_MAXMAG
@ EI_MAXMAG
Definition: AMDGPULibFunc.h:139
llvm::AMDGPULibFunc::setName
void setName(StringRef N)
Definition: AMDGPULibFunc.h:389
llvm::AMDGPULibFuncBase::EI_NFMA
@ EI_NFMA
Definition: AMDGPULibFunc.h:224
llvm::AMDGPULibFuncImpl::getPrefix
ENamePrefix getPrefix() const
Definition: AMDGPULibFunc.h:334
llvm::AMDGPULibFuncBase::EI_FLDEXP
@ EI_FLDEXP
Definition: AMDGPULibFunc.h:231
llvm::AMDGPULibFuncBase::EI_CROSS
@ EI_CROSS
Definition: AMDGPULibFunc.h:77
llvm::AMDGPULibFuncBase::EI_FAST_LENGTH
@ EI_FAST_LENGTH
Definition: AMDGPULibFunc.h:91
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_RESERVE_READ_PIPE
@ EI_WORK_GROUP_RESERVE_READ_PIPE
Definition: AMDGPULibFunc.h:211
llvm::AMDGPULibFuncBase::getAddrSpaceFromEPtrKind
static unsigned getAddrSpaceFromEPtrKind(unsigned Kind)
Definition: AMDGPULibFunc.h:317
llvm::AMDGPULibFuncBase::EI_ISNAN
@ EI_ISNAN
Definition: AMDGPULibFunc.h:120
M
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
Definition: README.txt:252
llvm::AMDGPULibFuncBase::EI_ACOSH
@ EI_ACOSH
Definition: AMDGPULibFunc.h:40
llvm::AMDGPULibFuncBase::F64
@ F64
Definition: AMDGPULibFunc.h:272
llvm::AMDGPULibFuncBase::I8
@ I8
Definition: AMDGPULibFunc.h:266
FunctionType
Definition: ItaniumDemangle.h:782
llvm::AMDGPULibFunc::getFunctionType
FunctionType * getFunctionType(Module &M) const
Definition: AMDGPULibFunc.h:392
llvm::AMDGPULibFuncBase::VOLATILE
@ VOLATILE
Definition: AMDGPULibFunc.h:288
llvm::AMDGPULibFuncBase::EI_ATOMIC_AND
@ EI_ATOMIC_AND
Definition: AMDGPULibFunc.h:56
llvm::AMDGPULibFuncBase::EI_ATAN2PI
@ EI_ATAN2PI
Definition: AMDGPULibFunc.h:52
llvm::AMDGPULibFuncBase::EI_ATOMIC_MIN
@ EI_ATOMIC_MIN
Definition: AMDGPULibFunc.h:61
llvm::AMDGPUUnmangledLibFunc::parseFuncName
bool parseFuncName(StringRef &Name) override
Definition: AMDGPULibFunc.cpp:673
llvm::AMDGPULibFuncImpl::isMangled
bool isMangled() const
Definition: AMDGPULibFunc.h:336
llvm::Function
Definition: Function.h:61
StringRef.h
llvm::AMDGPULibFuncBase::EI_GET_PIPE_NUM_PACKETS
@ EI_GET_PIPE_NUM_PACKETS
Definition: AMDGPULibFunc.h:108
llvm::AMDGPULibFuncBase::EI_ADD_SAT
@ EI_ADD_SAT
Definition: AMDGPULibFunc.h:42
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_INCLUSIVE_MAX
@ EI_SUB_GROUP_SCAN_INCLUSIVE_MAX
Definition: AMDGPULibFunc.h:190
llvm::AMDGPULibFuncBase::IMG2DA
@ IMG2DA
Definition: AMDGPULibFunc.h:275
llvm::AMDGPULibFuncBase::IMG3D
@ IMG3D
Definition: AMDGPULibFunc.h:278
llvm::AMDGPULibFuncBase::EI_MIX
@ EI_MIX
Definition: AMDGPULibFunc.h:142
llvm::AMDGPULibFuncImpl::parseFuncName
virtual bool parseFuncName(StringRef &mangledName)=0
llvm::AMDGPULibFuncBase::isMangled
static bool isMangled(EFuncId Id)
Definition: AMDGPULibFunc.h:308
llvm::AMDGPULibFuncImpl::FKind
ENamePrefix FKind
Definition: AMDGPULibFunc.h:353
llvm::AMDGPULibFuncBase::EI_NCOS
@ EI_NCOS
Definition: AMDGPULibFunc.h:222
llvm::AMDGPULibFuncBase::EI_ROOTN
@ EI_ROOTN
Definition: AMDGPULibFunc.h:162
llvm::AMDGPULibFuncBase::EI_READ_PIPE_2
@ EI_READ_PIPE_2
Definition: AMDGPULibFunc.h:238
llvm::AMDGPULibFuncImpl::setName
void setName(StringRef N)
Definition: AMDGPULibFunc.h:345
llvm::AMDGPULibFuncBase::EI_FDIM
@ EI_FDIM
Definition: AMDGPULibFunc.h:93
llvm::AMDGPULibFuncBase::EI_NEXTAFTER
@ EI_NEXTAFTER
Definition: AMDGPULibFunc.h:147
llvm::AMDGPULibFuncImpl::mangle
virtual std::string mangle() const =0
llvm::AMDGPULibFuncBase::EI_MAD_HI
@ EI_MAD_HI
Definition: AMDGPULibFunc.h:136
llvm::AMDGPULibFuncBase::EI_ATOMIC_DEC
@ EI_ATOMIC_DEC
Definition: AMDGPULibFunc.h:58
llvm::AMDGPULibFuncBase::EI_ATANPI
@ EI_ATANPI
Definition: AMDGPULibFunc.h:54
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_EXCLUSIVE_MIN
@ EI_SUB_GROUP_SCAN_EXCLUSIVE_MIN
Definition: AMDGPULibFunc.h:188
llvm::AMDGPUMangledLibFunc::classof
static bool classof(const AMDGPULibFuncImpl *F)
Definition: AMDGPULibFunc.h:423
llvm::AMDGPULibFuncBase::EI_RCBRT
@ EI_RCBRT
Definition: AMDGPULibFunc.h:233
llvm::AMDGPUMangledLibFunc::Leads
Param Leads[2]
Definition: AMDGPULibFunc.h:409
llvm::AMDGPULibFuncBase::EI_POWR
@ EI_POWR
Definition: AMDGPULibFunc.h:152
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_HEIGHT
@ EI_GET_IMAGE_HEIGHT
Definition: AMDGPULibFunc.h:105
llvm::AMDGPULibFuncBase::EI_MUL_HI
@ EI_MUL_HI
Definition: AMDGPULibFunc.h:145
llvm::AMDGPULibFuncBase::EI_NRCP
@ EI_NRCP
Definition: AMDGPULibFunc.h:226
llvm::AMDGPULibFuncBase::EI_HYPOT
@ EI_HYPOT
Definition: AMDGPULibFunc.h:110
llvm::AMDGPULibFunc::parse
static bool parse(StringRef MangledName, AMDGPULibFunc &Ptr)
Definition: AMDGPULibFunc.cpp:680
llvm::AMDGPULibFuncImpl::~AMDGPULibFuncImpl
virtual ~AMDGPULibFuncImpl()
Definition: AMDGPULibFunc.h:327
llvm::AMDGPULibFuncBase::EI_ERFC
@ EI_ERFC
Definition: AMDGPULibFunc.h:84
llvm::AMDGPULibFuncBase::F16
@ F16
Definition: AMDGPULibFunc.h:270
llvm::AMDGPULibFuncBase::Param::reset
void reset()
Definition: AMDGPULibFunc.h:298
llvm::AMDGPULibFuncBase::EI_ATOMIC_XOR
@ EI_ATOMIC_XOR
Definition: AMDGPULibFunc.h:65
llvm::AMDGPULibFuncBase::EI_TANPI
@ EI_TANPI
Definition: AMDGPULibFunc.h:195
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_COMMIT_WRITE_PIPE
@ EI_SUB_GROUP_COMMIT_WRITE_PIPE
Definition: AMDGPULibFunc.h:180
llvm::AMDGPULibFuncBase::BASE_TYPE_MASK
@ BASE_TYPE_MASK
Definition: AMDGPULibFunc.h:261
llvm::AMDGPULibFuncBase::EI_COSH
@ EI_COSH
Definition: AMDGPULibFunc.h:75
llvm::AMDGPULibFuncBase::EI_ISORDERED
@ EI_ISORDERED
Definition: AMDGPULibFunc.h:123
llvm::AMDGPULibFuncBase::EI_WRITE_IMAGEF
@ EI_WRITE_IMAGEF
Definition: AMDGPULibFunc.h:219
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_WIDTH
@ EI_GET_IMAGE_WIDTH
Definition: AMDGPULibFunc.h:106
llvm::AMDGPULibFuncBase::EI_CLZ
@ EI_CLZ
Definition: AMDGPULibFunc.h:70
llvm::AMDGPULibFuncBase::EI_CBRT
@ EI_CBRT
Definition: AMDGPULibFunc.h:67
llvm::AMDGPULibFunc::parseFuncName
bool parseFuncName(StringRef &MangledName)
Definition: AMDGPULibFunc.h:381
llvm::AMDGPUUnmangledLibFunc::getNumArgs
unsigned getNumArgs() const override
Definition: AMDGPULibFunc.cpp:934
llvm::AMDGPULibFuncBase::EI_MAD_SAT
@ EI_MAD_SAT
Definition: AMDGPULibFunc.h:137
llvm::AMDGPULibFuncBase::EI_SIN
@ EI_SIN
Definition: AMDGPULibFunc.h:171
llvm::AMDGPULibFuncBase::EI_LOG
@ EI_LOG
Definition: AMDGPULibFunc.h:129
llvm::AMDGPULibFuncBase::EI_NORMALIZE
@ EI_NORMALIZE
Definition: AMDGPULibFunc.h:148
llvm::AMDGPULibFuncBase::EI_POW
@ EI_POW
Definition: AMDGPULibFunc.h:150
llvm::AMDGPULibFuncBase::EI_LENGTH
@ EI_LENGTH
Definition: AMDGPULibFunc.h:126
llvm::AMDGPULibFuncBase::IMG2D
@ IMG2D
Definition: AMDGPULibFunc.h:277
llvm::AMDGPULibFuncBase::EI_RECIP
@ EI_RECIP
Definition: AMDGPULibFunc.h:155
llvm::AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc
AMDGPUUnmangledLibFunc(StringRef FName, FunctionType *FT)
Definition: AMDGPULibFunc.h:441
llvm::AMDGPULibFuncBase::EI_ROTATE
@ EI_ROTATE
Definition: AMDGPULibFunc.h:163
llvm::AMDGPULibFuncBase::EI_NSIN
@ EI_NSIN
Definition: AMDGPULibFunc.h:228
llvm::AMDGPULibFuncBase::EI_SUB_SAT
@ EI_SUB_SAT
Definition: AMDGPULibFunc.h:192
llvm::AMDGPULibFuncImpl::getId
EFuncId getId() const
Definition: AMDGPULibFunc.h:333
llvm::AMDGPUMangledLibFunc::parseFuncName
bool parseFuncName(StringRef &mangledName) override
Definition: AMDGPULibFunc.cpp:654
llvm::AMDGPULibFuncBase::EI_ISFINITE
@ EI_ISFINITE
Definition: AMDGPULibFunc.h:113
F
#define F(x, y, z)
Definition: MD5.cpp:56
llvm::AMDGPULibFuncBase::EI_NSQRT
@ EI_NSQRT
Definition: AMDGPULibFunc.h:229
llvm::AMDGPULibFuncBase::Param::PtrKind
unsigned char PtrKind
Definition: AMDGPULibFunc.h:294
llvm::AMDGPULibFuncBase::U16
@ U16
Definition: AMDGPULibFunc.h:263
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_RESERVE_WRITE_PIPE
@ EI_WORK_GROUP_RESERVE_WRITE_PIPE
Definition: AMDGPULibFunc.h:212
llvm::AMDGPULibFuncBase::BYVALUE
@ BYVALUE
Definition: AMDGPULibFunc.h:285
llvm::AMDGPULibFuncBase
Definition: AMDGPULibFunc.h:21
llvm::AMDGPULibFuncBase::EI_FMAX
@ EI_FMAX
Definition: AMDGPULibFunc.h:96
llvm::AMDGPULibFuncBase::EI_DEGREES
@ EI_DEGREES
Definition: AMDGPULibFunc.h:79
llvm::AMDGPULibFuncBase::EI_LDEXP
@ EI_LDEXP
Definition: AMDGPULibFunc.h:125
llvm::AMDGPULibFunc::getLeads
Param * getLeads()
Get leading parameters for mangled lib functions.
Definition: AMDGPULibFunc.cpp:1048
llvm::AMDGPULibFuncBase::EI_VSTORE3
@ EI_VSTORE3
Definition: AMDGPULibFunc.h:203
llvm::AMDGPULibFuncBase::getEPtrKindFromAddrSpace
static unsigned getEPtrKindFromAddrSpace(unsigned AS)
Definition: AMDGPULibFunc.h:312
llvm::AMDGPULibFuncBase::EI_FTZ
@ EI_FTZ
Definition: AMDGPULibFunc.h:230
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_EXCLUSIVE_MAX
@ EI_SUB_GROUP_SCAN_EXCLUSIVE_MAX
Definition: AMDGPULibFunc.h:187
llvm::AMDGPULibFunc
Wrapper class for AMDGPULIbFuncImpl.
Definition: AMDGPULibFunc.h:357
llvm::AMDGPULibFuncBase::U8
@ U8
Definition: AMDGPULibFunc.h:262
llvm::AMDGPULibFuncBase::SAMPLER
@ SAMPLER
Definition: AMDGPULibFunc.h:279
llvm::AMDGPULibFuncBase::EI_TANH
@ EI_TANH
Definition: AMDGPULibFunc.h:194
llvm::AMDGPULibFuncBase::EI_DOT
@ EI_DOT
Definition: AMDGPULibFunc.h:82
llvm::AMDGPULibFuncBase::EI_FMA
@ EI_FMA
Definition: AMDGPULibFunc.h:95
llvm::AMDGPULibFuncBase::EI_ATANH
@ EI_ATANH
Definition: AMDGPULibFunc.h:53
llvm::AMDGPULibFuncBase::EI_MAX
@ EI_MAX
Definition: AMDGPULibFunc.h:138
llvm::AMDGPULibFuncBase::IMG1DA
@ IMG1DA
Definition: AMDGPULibFunc.h:273
llvm::AMDGPULibFuncBase::EPtrKind
EPtrKind
Definition: AMDGPULibFunc.h:284
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_COMMIT_WRITE_PIPE
@ EI_WORK_GROUP_COMMIT_WRITE_PIPE
Definition: AMDGPULibFunc.h:207
llvm::AMDGPULibFuncBase::EType
EType
Definition: AMDGPULibFunc.h:252
llvm::AMDGPULibFuncBase::EI_LGAMMA
@ EI_LGAMMA
Definition: AMDGPULibFunc.h:127
llvm::AMDGPULibFuncBase::EI_ISNORMAL
@ EI_ISNORMAL
Definition: AMDGPULibFunc.h:121
llvm::AMDGPULibFuncBase::EI_FABS
@ EI_FABS
Definition: AMDGPULibFunc.h:89
llvm::AMDGPULibFuncBase::EI_ATOMIC_ADD
@ EI_ATOMIC_ADD
Definition: AMDGPULibFunc.h:55
llvm::AMDGPULibFunc::getOrInsertFunction
static FunctionCallee getOrInsertFunction(llvm::Module *M, const AMDGPULibFunc &fInfo)
Definition: AMDGPULibFunc.cpp:959
llvm::AMDGPULibFuncImpl::Name
std::string Name
Definition: AMDGPULibFunc.h:352
llvm::AMDGPULibFuncImpl::AMDGPULibFuncImpl
AMDGPULibFuncImpl()
Definition: AMDGPULibFunc.h:326
llvm::AMDGPULibFuncBase::EI_UPSAMPLE
@ EI_UPSAMPLE
Definition: AMDGPULibFunc.h:198
llvm::AMDGPULibFuncBase::EI_VSTORE2
@ EI_VSTORE2
Definition: AMDGPULibFunc.h:202
llvm::AMDGPULibFuncBase::EI_ALL
@ EI_ALL
Definition: AMDGPULibFunc.h:43
Param
Value * Param
Definition: NVPTXLowerArgs.cpp:163
llvm::AMDGPULibFuncBase::EI_ACOSPI
@ EI_ACOSPI
Definition: AMDGPULibFunc.h:41
llvm::AMDGPULibFuncBase::EI_ISLESS
@ EI_ISLESS
Definition: AMDGPULibFunc.h:117
llvm::AMDGPUUnmangledLibFunc::mangle
std::string mangle() const override
Definition: AMDGPULibFunc.h:454
llvm::AMDGPULibFuncBase::EI_NEXP2
@ EI_NEXP2
Definition: AMDGPULibFunc.h:223
llvm::AMDGPULibFuncBase::EX_INTRINSICS_COUNT
@ EX_INTRINSICS_COUNT
Definition: AMDGPULibFunc.h:243
llvm::AMDGPULibFuncBase::IMG1DB
@ IMG1DB
Definition: AMDGPULibFunc.h:274
llvm::AMDGPULibFuncBase::EI_CEIL
@ EI_CEIL
Definition: AMDGPULibFunc.h:68
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_EXCLUSIVE_ADD
@ EI_WORK_GROUP_SCAN_EXCLUSIVE_ADD
Definition: AMDGPULibFunc.h:213
llvm::AMDGPULibFuncBase::EI_ISGREATEREQUAL
@ EI_ISGREATEREQUAL
Definition: AMDGPULibFunc.h:115
llvm::AMDGPULibFuncBase::EI_ATOMIC_INC
@ EI_ATOMIC_INC
Definition: AMDGPULibFunc.h:59
llvm::AMDGPULibFuncBase::EI_ABS
@ EI_ABS
Definition: AMDGPULibFunc.h:37
llvm::AMDGPULibFuncBase::EI_ASIN
@ EI_ASIN
Definition: AMDGPULibFunc.h:45
llvm::AMDGPUMangledLibFunc::getFunctionType
FunctionType * getFunctionType(Module &M) const override
Definition: AMDGPULibFunc.cpp:917
llvm::AMDGPULibFuncBase::EI_VEC_STEP
@ EI_VEC_STEP
Definition: AMDGPULibFunc.h:199
llvm::AMDGPULibFuncBase::EI_TAN
@ EI_TAN
Definition: AMDGPULibFunc.h:193
llvm::AMDGPULibFuncBase::EI_CTZ
@ EI_CTZ
Definition: AMDGPULibFunc.h:78
llvm::AMDGPULibFuncBase::EI_LGAMMA_R
@ EI_LGAMMA_R
Definition: AMDGPULibFunc.h:128
llvm::AMDGPULibFuncBase::EI_NONE
@ EI_NONE
Definition: AMDGPULibFunc.h:24
llvm::AMDGPULibFuncBase::EI_ANY
@ EI_ANY
Definition: AMDGPULibFunc.h:44
llvm::AMDGPUMangledLibFunc::getName
std::string getName() const override
Get unmangled name for mangled library function and name for unmangled library function.
Definition: AMDGPULibFunc.cpp:938
llvm::AMDGPUMangledLibFunc::getUnmangledName
static StringRef getUnmangledName(StringRef MangledName)
Definition: AMDGPULibFunc.cpp:697
llvm::AMDGPULibFuncBase::EI_RESERVE_WRITE_PIPE
@ EI_RESERVE_WRITE_PIPE
Definition: AMDGPULibFunc.h:159
llvm::lltok::Kind
Kind
Definition: LLToken.h:18
llvm::AMDGPULibFuncBase::EI_SIGNBIT
@ EI_SIGNBIT
Definition: AMDGPULibFunc.h:170
llvm::AMDGPULibFuncBase::EI_ISEQUAL
@ EI_ISEQUAL
Definition: AMDGPULibFunc.h:112
llvm::AMDGPULibFuncBase::NOPFX
@ NOPFX
Definition: AMDGPULibFunc.h:247
llvm::AMDGPULibFuncBase::EI_WRITE_IMAGEUI
@ EI_WRITE_IMAGEUI
Definition: AMDGPULibFunc.h:221
llvm::AMDGPULibFuncBase::EI_MODF
@ EI_MODF
Definition: AMDGPULibFunc.h:143
llvm::AMDGPULibFuncBase::EI_EXP10
@ EI_EXP10
Definition: AMDGPULibFunc.h:86
llvm::AMDGPULibFuncBase::EI_VSTORE16
@ EI_VSTORE16
Definition: AMDGPULibFunc.h:201
llvm::AMDGPUMangledLibFunc::AMDGPUMangledLibFunc
AMDGPUMangledLibFunc()
Definition: AMDGPULibFunc.cpp:507
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_REDUCE_MIN
@ EI_SUB_GROUP_REDUCE_MIN
Definition: AMDGPULibFunc.h:183
llvm::AMDGPULibFuncBase::EI_READ_PIPE_4
@ EI_READ_PIPE_4
Definition: AMDGPULibFunc.h:239
llvm::AMDGPULibFuncBase::EI_ACOS
@ EI_ACOS
Definition: AMDGPULibFunc.h:39
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_REDUCE_MIN
@ EI_WORK_GROUP_REDUCE_MIN
Definition: AMDGPULibFunc.h:210
llvm::AMDGPULibFuncBase::FLOAT
@ FLOAT
Definition: AMDGPULibFunc.h:258
llvm::AMDGPULibFuncImpl
Definition: AMDGPULibFunc.h:324
llvm::AMDGPUUnmangledLibFunc::AMDGPUUnmangledLibFunc
AMDGPUUnmangledLibFunc()
Definition: AMDGPULibFunc.cpp:515
llvm::AMDGPULibFuncBase::HALF
@ HALF
Definition: AMDGPULibFunc.h:249
llvm::AMDGPULibFuncBase::EI_ASYNC_WORK_GROUP_STRIDED_COPY
@ EI_ASYNC_WORK_GROUP_STRIDED_COPY
Definition: AMDGPULibFunc.h:49
llvm::AMDGPULibFuncBase::U64
@ U64
Definition: AMDGPULibFunc.h:265
llvm::AMDGPULibFuncBase::B16
@ B16
Definition: AMDGPULibFunc.h:254
llvm::AMDGPULibFuncBase::EI_WRITE_IMAGEI
@ EI_WRITE_IMAGEI
Definition: AMDGPULibFunc.h:220
llvm::AMDGPULibFuncBase::EI_ROUND
@ EI_ROUND
Definition: AMDGPULibFunc.h:164
llvm::AMDGPULibFuncBase::EI_STEP
@ EI_STEP
Definition: AMDGPULibFunc.h:177
llvm::AMDGPULibFuncBase::EI_VSTORE4
@ EI_VSTORE4
Definition: AMDGPULibFunc.h:204
llvm::AMDGPULibFuncBase::EI_FMIN
@ EI_FMIN
Definition: AMDGPULibFunc.h:97
llvm::AMDGPULibFuncBase::EI_FLOOR
@ EI_FLOOR
Definition: AMDGPULibFunc.h:94
llvm::AMDGPULibFuncBase::EI_RADIANS
@ EI_RADIANS
Definition: AMDGPULibFunc.h:154
llvm::AMDGPULibFuncBase::ENamePrefix
ENamePrefix
Definition: AMDGPULibFunc.h:246
llvm::AMDGPULibFuncBase::ADDR_SPACE
@ ADDR_SPACE
Definition: AMDGPULibFunc.h:286
llvm::AMDGPULibFuncBase::F32
@ F32
Definition: AMDGPULibFunc.h:271
llvm::AMDGPULibFuncBase::UINT
@ UINT
Definition: AMDGPULibFunc.h:260
llvm::AMDGPULibFuncBase::EI_LOGB
@ EI_LOGB
Definition: AMDGPULibFunc.h:133
llvm::AMDGPULibFuncBase::EI_EXP
@ EI_EXP
Definition: AMDGPULibFunc.h:85
llvm::AMDGPULibFuncBase::Param::Reserved
unsigned char Reserved
Definition: AMDGPULibFunc.h:296
llvm::AMDGPULibFuncBase::Param
Definition: AMDGPULibFunc.h:291
llvm::AMDGPULibFuncBase::B8
@ B8
Definition: AMDGPULibFunc.h:253
llvm::AMDGPUMangledLibFunc::mangle
std::string mangle() const override
Definition: AMDGPULibFunc.cpp:724
llvm::AMDGPULibFuncBase::EI_TGAMMA
@ EI_TGAMMA
Definition: AMDGPULibFunc.h:196
llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_4
@ EI_WRITE_PIPE_4
Definition: AMDGPULibFunc.h:241
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_REDUCE_ADD
@ EI_WORK_GROUP_REDUCE_ADD
Definition: AMDGPULibFunc.h:208
llvm::AMDGPULibFuncBase::EI_SHUFFLE2
@ EI_SHUFFLE2
Definition: AMDGPULibFunc.h:168
llvm::AMDGPULibFuncBase::EI_COSPI
@ EI_COSPI
Definition: AMDGPULibFunc.h:76
llvm::AMDGPULibFunc::mangle
std::string mangle() const
Definition: AMDGPULibFunc.h:387
llvm::AMDGPULibFuncBase::EI_ISUNORDERED
@ EI_ISUNORDERED
Definition: AMDGPULibFunc.h:124
llvm::AMDGPULibFuncBase::EI_MAD24
@ EI_MAD24
Definition: AMDGPULibFunc.h:135
llvm::AMDGPULibFuncBase::EI_ATOMIC_MAX
@ EI_ATOMIC_MAX
Definition: AMDGPULibFunc.h:60
llvm::AMDGPULibFuncBase::EI_ATOMIC_OR
@ EI_ATOMIC_OR
Definition: AMDGPULibFunc.h:62
llvm::AMDGPULibFuncBase::EI_SHUFFLE
@ EI_SHUFFLE
Definition: AMDGPULibFunc.h:167
llvm::AMDGPULibFuncBase::CONST
@ CONST
Definition: AMDGPULibFunc.h:287
llvm::AMDGPULibFuncBase::EI_SIGN
@ EI_SIGN
Definition: AMDGPULibFunc.h:169
llvm::AMDGPULibFuncBase::EI_ATOMIC_CMPXCHG
@ EI_ATOMIC_CMPXCHG
Definition: AMDGPULibFunc.h:57
llvm::AMDGPULibFuncImpl::getName
virtual std::string getName() const =0
Get unmangled name for mangled library function and name for unmangled library function.
llvm::AMDGPULibFuncBase::EI_VSTORE
@ EI_VSTORE
Definition: AMDGPULibFunc.h:200
llvm::AMDGPULibFuncBase::EI_HADD
@ EI_HADD
Definition: AMDGPULibFunc.h:109
llvm::AMDGPULibFunc::getNumArgs
unsigned getNumArgs() const
Definition: AMDGPULibFunc.h:372
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_CHANNEL_DATA_TYPE
@ EI_GET_IMAGE_CHANNEL_DATA_TYPE
Definition: AMDGPULibFunc.h:102
llvm::AMDGPULibFuncBase::EI_MIN
@ EI_MIN
Definition: AMDGPULibFunc.h:140
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
llvm::AMDGPULibFuncBase::EI_ASINPI
@ EI_ASINPI
Definition: AMDGPULibFunc.h:47
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_RESERVE_WRITE_PIPE
@ EI_SUB_GROUP_RESERVE_WRITE_PIPE
Definition: AMDGPULibFunc.h:185
llvm::AMDGPUMangledLibFunc::getNumArgs
unsigned getNumArgs() const override
Definition: AMDGPULibFunc.cpp:930
llvm::AMDGPUUnmangledLibFunc::getName
std::string getName() const override
Get unmangled name for mangled library function and name for unmangled library function.
Definition: AMDGPULibFunc.h:445
llvm::AMDGPULibFuncBase::EI_SINCOS
@ EI_SINCOS
Definition: AMDGPULibFunc.h:172
llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_2
@ EI_WRITE_PIPE_2
Definition: AMDGPULibFunc.h:240
llvm::AMDGPULibFuncBase::EI_CLASS
@ EI_CLASS
Definition: AMDGPULibFunc.h:232
llvm::AMDGPULibFuncBase::EI_LOG1P
@ EI_LOG1P
Definition: AMDGPULibFunc.h:131
llvm::AMDGPULibFuncBase::EI_SINH
@ EI_SINH
Definition: AMDGPULibFunc.h:173
llvm::AMDGPULibFuncBase::EI_ILOGB
@ EI_ILOGB
Definition: AMDGPULibFunc.h:111
llvm::AMDGPULibFuncBase::EI_LAST_MANGLED
@ EI_LAST_MANGLED
Definition: AMDGPULibFunc.h:234
llvm::Module
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:67
llvm::AMDGPULibFuncBase::EI_SMOOTHSTEP
@ EI_SMOOTHSTEP
Definition: AMDGPULibFunc.h:175
llvm::AMDGPULibFuncBase::EI_COPYSIGN
@ EI_COPYSIGN
Definition: AMDGPULibFunc.h:73
llvm::AMDGPULibFuncBase::I32
@ I32
Definition: AMDGPULibFunc.h:268
llvm::AMDGPULibFuncBase::EI_ASYNC_WORK_GROUP_COPY
@ EI_ASYNC_WORK_GROUP_COPY
Definition: AMDGPULibFunc.h:48
llvm::AMDGPULibFuncBase::B32
@ B32
Definition: AMDGPULibFunc.h:255
llvm::AMDGPULibFuncBase::EI_TRUNC
@ EI_TRUNC
Definition: AMDGPULibFunc.h:197
llvm::AMDGPULibFuncImpl::getFunctionType
virtual FunctionType * getFunctionType(Module &M) const =0
llvm::AMDGPULibFuncBase::EI_COMMIT_WRITE_PIPE
@ EI_COMMIT_WRITE_PIPE
Definition: AMDGPULibFunc.h:72
llvm::AMDGPULibFuncBase::EI_ISGREATER
@ EI_ISGREATER
Definition: AMDGPULibFunc.h:114
llvm::AMDGPULibFuncBase::EI_VSTORE8
@ EI_VSTORE8
Definition: AMDGPULibFunc.h:205
llvm::AMDGPULibFuncBase::Param::VectorSize
unsigned char VectorSize
Definition: AMDGPULibFunc.h:293
llvm::AMDGPULibFuncBase::EI_POPCOUNT
@ EI_POPCOUNT
Definition: AMDGPULibFunc.h:149
llvm::AMDGPULibFuncBase::U32
@ U32
Definition: AMDGPULibFunc.h:264
llvm::AMDGPULibFuncBase::EI_CLAMP
@ EI_CLAMP
Definition: AMDGPULibFunc.h:69
llvm::AMDGPULibFuncBase::EI_ISLESSGREATER
@ EI_ISLESSGREATER
Definition: AMDGPULibFunc.h:119
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_ARRAY_SIZE
@ EI_GET_IMAGE_ARRAY_SIZE
Definition: AMDGPULibFunc.h:101
llvm::AMDGPULibFuncBase::EI_DIVIDE
@ EI_DIVIDE
Definition: AMDGPULibFunc.h:81
llvm::AMDGPULibFuncBase::EI_COS
@ EI_COS
Definition: AMDGPULibFunc.h:74
llvm::AMDGPULibFuncBase::EI_LOG2
@ EI_LOG2
Definition: AMDGPULibFunc.h:132
llvm::AMDGPULibFuncBase::EFuncId
EFuncId
Definition: AMDGPULibFunc.h:23
llvm::AMDGPULibFunc::setId
void setId(EFuncId Id)
Definition: AMDGPULibFunc.h:380
llvm::AMDGPULibFuncBase::EI_EXP2
@ EI_EXP2
Definition: AMDGPULibFunc.h:87
llvm::AMDGPULibFuncBase::EI_ISLESSEQUAL
@ EI_ISLESSEQUAL
Definition: AMDGPULibFunc.h:118
Module
Machine Check Debug Module
Definition: MachineCheckDebugify.cpp:122
llvm::AMDGPULibFunc::setPrefix
void setPrefix(ENamePrefix PFX)
Definition: AMDGPULibFunc.h:390
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_REDUCE_MAX
@ EI_SUB_GROUP_REDUCE_MAX
Definition: AMDGPULibFunc.h:182
llvm::AMDGPULibFuncBase::EI_NRSQRT
@ EI_NRSQRT
Definition: AMDGPULibFunc.h:227
llvm::AMDGPULibFuncBase::EI_BITSELECT
@ EI_BITSELECT
Definition: AMDGPULibFunc.h:66
llvm::AMDGPULibFuncImpl::FuncId
EFuncId FuncId
Definition: AMDGPULibFunc.h:351
llvm::AMDGPULibFuncBase::EI_FMOD
@ EI_FMOD
Definition: AMDGPULibFunc.h:98
llvm::AMDGPULibFunc::operator=
AMDGPULibFunc & operator=(const AMDGPULibFunc &F)
Definition: AMDGPULibFunc.cpp:1028
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_REDUCE_MAX
@ EI_WORK_GROUP_REDUCE_MAX
Definition: AMDGPULibFunc.h:209
llvm::AMDGPULibFuncBase::IMG1D
@ IMG1D
Definition: AMDGPULibFunc.h:276
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_INCLUSIVE_ADD
@ EI_SUB_GROUP_SCAN_INCLUSIVE_ADD
Definition: AMDGPULibFunc.h:189
llvm::AMDGPULibFuncBase::EI_REMQUO
@ EI_REMQUO
Definition: AMDGPULibFunc.h:157
llvm::AMDGPULibFuncImpl::setId
void setId(EFuncId id)
Definition: AMDGPULibFunc.h:338
llvm::AMDGPULibFuncBase::EI_DISTANCE
@ EI_DISTANCE
Definition: AMDGPULibFunc.h:80
std
Definition: BitVector.h:838
llvm::AMDGPUUnmangledLibFunc::setFunctionType
void setFunctionType(FunctionType *FT)
Definition: AMDGPULibFunc.h:456
llvm::AMDGPULibFuncBase::EI_ERF
@ EI_ERF
Definition: AMDGPULibFunc.h:83
llvm::AMDGPULibFuncBase::Param::mangleItanium
void mangleItanium(Stream &os)
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_COMMIT_READ_PIPE
@ EI_SUB_GROUP_COMMIT_READ_PIPE
Definition: AMDGPULibFunc.h:179
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_RESERVE_READ_PIPE
@ EI_SUB_GROUP_RESERVE_READ_PIPE
Definition: AMDGPULibFunc.h:184
llvm::AMDGPUMangledLibFunc
Definition: AMDGPULibFunc.h:407
llvm::AMDGPULibFuncBase::EI_MAD
@ EI_MAD
Definition: AMDGPULibFunc.h:134
llvm::AMDGPULibFuncBase::EI_MUL24
@ EI_MUL24
Definition: AMDGPULibFunc.h:144
llvm::AMDGPULibFuncBase::EI_ISNOTEQUAL
@ EI_ISNOTEQUAL
Definition: AMDGPULibFunc.h:122
llvm::AMDGPULibFuncBase::I64
@ I64
Definition: AMDGPULibFunc.h:269
llvm::AMDGPULibFuncBase::Param::ArgType
unsigned char ArgType
Definition: AMDGPULibFunc.h:292
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_EXCLUSIVE_MAX
@ EI_WORK_GROUP_SCAN_EXCLUSIVE_MAX
Definition: AMDGPULibFunc.h:214
llvm::AMDGPULibFuncBase::EI_POWN
@ EI_POWN
Definition: AMDGPULibFunc.h:151
llvm::AMDGPUUnmangledLibFunc::classof
static bool classof(const AMDGPULibFuncImpl *F)
Definition: AMDGPULibFunc.h:452
llvm::AMDGPULibFunc::getPrefix
ENamePrefix getPrefix() const
Definition: AMDGPULibFunc.h:374
llvm::AMDGPULibFuncBase::EI_FAST_NORMALIZE
@ EI_FAST_NORMALIZE
Definition: AMDGPULibFunc.h:92
llvm::AMDGPULibFuncBase::EI_LOG10
@ EI_LOG10
Definition: AMDGPULibFunc.h:130
llvm::AMDGPULibFunc::AMDGPULibFunc
AMDGPULibFunc()
Definition: AMDGPULibFunc.h:359
llvm::AMDGPULibFunc::getId
EFuncId getId() const
Definition: AMDGPULibFunc.h:373
llvm::AMDGPULibFuncBase::EI_RHADD
@ EI_RHADD
Definition: AMDGPULibFunc.h:160
llvm::AMDGPULibFuncBase::EI_NAN
@ EI_NAN
Definition: AMDGPULibFunc.h:146
llvm::AMDGPULibFuncBase::EI_GET_PIPE_MAX_PACKETS
@ EI_GET_PIPE_MAX_PACKETS
Definition: AMDGPULibFunc.h:107
llvm::AMDGPULibFuncImpl::getNumArgs
virtual unsigned getNumArgs() const =0
llvm::AMDGPULibFuncBase::EI_EXPM1
@ EI_EXPM1
Definition: AMDGPULibFunc.h:88
llvm::AMDGPULibFuncBase::EI_ISINF
@ EI_ISINF
Definition: AMDGPULibFunc.h:116
llvm::AMDGPULibFuncBase::EI_RINT
@ EI_RINT
Definition: AMDGPULibFunc.h:161
llvm::AMDGPULibFuncBase::EI_REMAINDER
@ EI_REMAINDER
Definition: AMDGPULibFunc.h:156
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_REDUCE_ADD
@ EI_SUB_GROUP_REDUCE_ADD
Definition: AMDGPULibFunc.h:181
llvm::AMDGPUUnmangledLibFunc::getFunctionType
FunctionType * getFunctionType(Module &M) const override
Definition: AMDGPULibFunc.h:447
llvm::AMDGPULibFuncBase::EI_FAST_DISTANCE
@ EI_FAST_DISTANCE
Definition: AMDGPULibFunc.h:90
llvm::AMDGPULibFuncBase::EI_ATOMIC_SUB
@ EI_ATOMIC_SUB
Definition: AMDGPULibFunc.h:63
llvm::AMDGPULibFuncBase::SIZE_MASK
@ SIZE_MASK
Definition: AMDGPULibFunc.h:257
llvm::AMDGPULibFuncBase::EI_RESERVE_READ_PIPE
@ EI_RESERVE_READ_PIPE
Definition: AMDGPULibFunc.h:158
N
#define N
llvm::AMDGPULibFunc::getName
std::string getName() const
Get unmangled name for mangled library function and name for unmangled library function.
Definition: AMDGPULibFunc.h:371
llvm::AMDGPULibFuncBase::EI_SQRT
@ EI_SQRT
Definition: AMDGPULibFunc.h:176
llvm::AMDGPULibFuncImpl::setPrefix
void setPrefix(ENamePrefix pfx)
Definition: AMDGPULibFunc.h:346
llvm::FunctionCallee
A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single enti...
Definition: DerivedTypes.h:165
llvm::AMDGPULibFuncBase::EI_PREFETCH
@ EI_PREFETCH
Definition: AMDGPULibFunc.h:153
llvm::AMDGPULibFuncBase::EI_NLOG2
@ EI_NLOG2
Definition: AMDGPULibFunc.h:225
llvm::AMDGPULibFuncBase::Param::Param
Param()
Definition: AMDGPULibFunc.h:303
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_EXCLUSIVE_ADD
@ EI_SUB_GROUP_SCAN_EXCLUSIVE_ADD
Definition: AMDGPULibFunc.h:186
llvm::AMDGPULibFuncBase::EVENT
@ EVENT
Definition: AMDGPULibFunc.h:280
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_DIM
@ EI_GET_IMAGE_DIM
Definition: AMDGPULibFunc.h:104
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_EXCLUSIVE_MIN
@ EI_WORK_GROUP_SCAN_EXCLUSIVE_MIN
Definition: AMDGPULibFunc.h:215
llvm::AMDGPULibFuncBase::EI_ATOMIC_XCHG
@ EI_ATOMIC_XCHG
Definition: AMDGPULibFunc.h:64
llvm::AMDGPULibFuncBase::EI_ATAN2
@ EI_ATAN2
Definition: AMDGPULibFunc.h:51
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_BROADCAST
@ EI_SUB_GROUP_BROADCAST
Definition: AMDGPULibFunc.h:178
llvm::AMDGPULibFuncBase::EI_RSQRT
@ EI_RSQRT
Definition: AMDGPULibFunc.h:165
llvm::AMDGPUUnmangledLibFunc
Definition: AMDGPULibFunc.h:436
llvm::AMDGPU::VGPRIndexMode::Id
Id
Definition: SIDefines.h:228
llvm::AMDGPULibFuncBase::I16
@ I16
Definition: AMDGPULibFunc.h:267
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_COMMIT_READ_PIPE
@ EI_WORK_GROUP_COMMIT_READ_PIPE
Definition: AMDGPULibFunc.h:206
llvm::AMDGPULibFuncBase::INT
@ INT
Definition: AMDGPULibFunc.h:259
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_INCLUSIVE_MAX
@ EI_WORK_GROUP_SCAN_INCLUSIVE_MAX
Definition: AMDGPULibFunc.h:217
llvm::AMDGPULibFuncBase::EI_MINMAG
@ EI_MINMAG
Definition: AMDGPULibFunc.h:141
llvm::AMDGPULibFuncBase::EI_COMMIT_READ_PIPE
@ EI_COMMIT_READ_PIPE
Definition: AMDGPULibFunc.h:71
llvm::AMDGPULibFuncBase::B64
@ B64
Definition: AMDGPULibFunc.h:256
llvm::AMDGPULibFunc::getFunction
static Function * getFunction(llvm::Module *M, const AMDGPULibFunc &fInfo)
Definition: AMDGPULibFunc.cpp:945
llvm::AMDGPULibFuncBase::EI_ATAN
@ EI_ATAN
Definition: AMDGPULibFunc.h:50
llvm::AMDGPULibFuncBase::EI_SINPI
@ EI_SINPI
Definition: AMDGPULibFunc.h:174
llvm::AMDGPULibFuncBase::NATIVE
@ NATIVE
Definition: AMDGPULibFunc.h:248
llvm::codeview::PublicSymFlags::Function
@ Function
llvm::AMDGPULibFuncBase::EI_FRACT
@ EI_FRACT
Definition: AMDGPULibFunc.h:99
llvm::FunctionType
Class to represent function types.
Definition: DerivedTypes.h:103
llvm::AMDGPULibFuncBase::EI_WORK_GROUP_SCAN_INCLUSIVE_ADD
@ EI_WORK_GROUP_SCAN_INCLUSIVE_ADD
Definition: AMDGPULibFunc.h:216
llvm::AMDGPULibFuncBase::EI_SUB_GROUP_SCAN_INCLUSIVE_MIN
@ EI_SUB_GROUP_SCAN_INCLUSIVE_MIN
Definition: AMDGPULibFunc.h:191
llvm::AMDGPULibFuncBase::EI_GET_IMAGE_CHANNEL_ORDER
@ EI_GET_IMAGE_CHANNEL_ORDER
Definition: AMDGPULibFunc.h:103