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