LLVM 18.0.0git
|
This file does AMD library function optimizations. More...
#include "AMDGPU.h"
#include "AMDGPULibFunc.h"
#include "GCNSubtarget.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/AttributeMask.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/InitializePasses.h"
#include <cmath>
Go to the source code of this file.
Classes | |
class | llvm::AMDGPULibCalls |
struct | TableEntry |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "amdgpu-simplifylib" |
#define | MATH_PI numbers::pi |
#define | MATH_E numbers::e |
#define | MATH_SQRT2 numbers::sqrt2 |
#define | MATH_SQRT1_2 numbers::inv_sqrt2 |
Typedefs | |
using | TableRef = ArrayRef< TableEntry > |
Functions | |
template<typename IRB > | |
static CallInst * | CreateCallEx (IRB &B, FunctionCallee Callee, Value *Arg, const Twine &Name="") |
template<typename IRB > | |
static CallInst * | CreateCallEx2 (IRB &B, FunctionCallee Callee, Value *Arg1, Value *Arg2, const Twine &Name="") |
static FunctionType * | getPownType (FunctionType *FT) |
static bool | HasNative (AMDGPULibFunc::EFuncId id) |
static TableRef | getOptTable (AMDGPULibFunc::EFuncId id) |
static int | getVecSize (const AMDGPULibFunc &FInfo) |
static AMDGPULibFunc::EType | getArgType (const AMDGPULibFunc &FInfo) |
static bool | isKnownIntegral (const Value *V, const DataLayout &DL, FastMathFlags FMF) |
static double | llvm::log2 (double V) |
This file does AMD library function optimizations.
Definition in file AMDGPULibCalls.cpp.
#define DEBUG_TYPE "amdgpu-simplifylib" |
Definition at line 29 of file AMDGPULibCalls.cpp.
#define MATH_E numbers::e |
Definition at line 45 of file AMDGPULibCalls.cpp.
#define MATH_PI numbers::pi |
Definition at line 44 of file AMDGPULibCalls.cpp.
#define MATH_SQRT1_2 numbers::inv_sqrt2 |
Definition at line 47 of file AMDGPULibCalls.cpp.
#define MATH_SQRT2 numbers::sqrt2 |
Definition at line 46 of file AMDGPULibCalls.cpp.
using TableRef = ArrayRef<TableEntry> |
Definition at line 357 of file AMDGPULibCalls.cpp.
|
static |
Definition at line 155 of file AMDGPULibCalls.cpp.
|
static |
Definition at line 164 of file AMDGPULibCalls.cpp.
|
inlinestatic |
Definition at line 407 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFuncBase::Param::ArgType, and llvm::AMDGPULibFunc::getLeads().
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments(), and llvm::AMDGPULibCalls::useNative().
|
static |
Definition at line 359 of file AMDGPULibCalls.cpp.
References tbl_acos, tbl_acosh, tbl_acospi, tbl_asin, tbl_asinh, tbl_asinpi, tbl_atan, tbl_atanh, tbl_atanpi, tbl_cbrt, tbl_cos, tbl_cosh, tbl_cospi, tbl_erf, tbl_erfc, tbl_exp, tbl_exp10, tbl_exp2, tbl_expm1, tbl_log, tbl_log10, tbl_log2, tbl_rsqrt, tbl_sin, tbl_sinh, tbl_sinpi, tbl_sqrt, tbl_tan, tbl_tanh, tbl_tanpi, and tbl_tgamma.
|
static |
Definition at line 172 of file AMDGPULibCalls.cpp.
References llvm::Type::getInt32Ty().
Referenced by llvm::AMDGPULibCalls::fold().
|
inlinestatic |
Definition at line 403 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFunc::getLeads(), and llvm::AMDGPULibFuncBase::Param::VectorSize.
|
static |
Definition at line 334 of file AMDGPULibCalls.cpp.
Referenced by llvm::AMDGPULibCalls::useNative().
|
static |
Definition at line 580 of file AMDGPULibCalls.cpp.
References DL, llvm::CallBase::getIntrinsicID(), llvm::ConstantFP::getValue(), I, llvm::APFloat::isInteger(), llvm::isKnownNeverInfinity(), llvm::isKnownNeverInfOrNaN(), llvm::FastMathFlags::noInfs(), and llvm::FastMathFlags::noNaNs().
Referenced by llvm::AMDGPULibCalls::fold().
|
static |
|
static |
Definition at line 190 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 196 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 199 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 205 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 211 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 215 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 221 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 227 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 231 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 237 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 243 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 247 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 251 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 259 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 255 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 263 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 273 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 268 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 278 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 282 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 290 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 286 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 294 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 298 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 302 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 306 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 310 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 315 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 319 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 323 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 327 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Referenced by llvm::AMDGPULibCalls::initNativeFuncs(), and llvm::AMDGPUUseNativeCallsPass::run().