|
LLVM 23.0.0git
|
This file does AMD library function optimizations. More...
#include "AMDGPU.h"#include "AMDGPULibFunc.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/MDBuilder.h"#include "llvm/IR/PatternMatch.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 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 26 of file AMDGPULibCalls.cpp.
| #define MATH_E numbers::e |
Definition at line 42 of file AMDGPULibCalls.cpp.
| #define MATH_PI numbers::pi |
Definition at line 41 of file AMDGPULibCalls.cpp.
| #define MATH_SQRT1_2 numbers::inv_sqrt2 |
Definition at line 44 of file AMDGPULibCalls.cpp.
| #define MATH_SQRT2 numbers::sqrt2 |
Definition at line 43 of file AMDGPULibCalls.cpp.
| using TableRef = ArrayRef<TableEntry> |
Definition at line 345 of file AMDGPULibCalls.cpp.
|
static |
Definition at line 143 of file AMDGPULibCalls.cpp.
References B(), llvm::dyn_cast(), and F.
|
static |
Definition at line 152 of file AMDGPULibCalls.cpp.
References B(), llvm::dyn_cast(), and F.
|
inlinestatic |
Definition at line 395 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFuncBase::Param::ArgType, and llvm::AMDGPULibFunc::getLeads().
Referenced by llvm::AMDGPULibCalls::useNative().
|
static |
Definition at line 347 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFuncBase::EI_ACOS, llvm::AMDGPULibFuncBase::EI_ACOSH, llvm::AMDGPULibFuncBase::EI_ACOSPI, llvm::AMDGPULibFuncBase::EI_ASIN, llvm::AMDGPULibFuncBase::EI_ASINH, llvm::AMDGPULibFuncBase::EI_ASINPI, llvm::AMDGPULibFuncBase::EI_ATAN, llvm::AMDGPULibFuncBase::EI_ATANH, llvm::AMDGPULibFuncBase::EI_ATANPI, llvm::AMDGPULibFuncBase::EI_CBRT, llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_COSH, llvm::AMDGPULibFuncBase::EI_COSPI, llvm::AMDGPULibFuncBase::EI_ERF, llvm::AMDGPULibFuncBase::EI_ERFC, llvm::AMDGPULibFuncBase::EI_EXP, llvm::AMDGPULibFuncBase::EI_EXP10, llvm::AMDGPULibFuncBase::EI_EXP2, llvm::AMDGPULibFuncBase::EI_EXPM1, llvm::AMDGPULibFuncBase::EI_LOG, llvm::AMDGPULibFuncBase::EI_LOG10, llvm::AMDGPULibFuncBase::EI_LOG2, llvm::AMDGPULibFuncBase::EI_NCOS, llvm::AMDGPULibFuncBase::EI_NEXP2, llvm::AMDGPULibFuncBase::EI_NLOG2, llvm::AMDGPULibFuncBase::EI_NRSQRT, llvm::AMDGPULibFuncBase::EI_NSIN, llvm::AMDGPULibFuncBase::EI_NSQRT, llvm::AMDGPULibFuncBase::EI_RSQRT, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SINH, llvm::AMDGPULibFuncBase::EI_SINPI, llvm::AMDGPULibFuncBase::EI_SQRT, llvm::AMDGPULibFuncBase::EI_TAN, llvm::AMDGPULibFuncBase::EI_TANH, llvm::AMDGPULibFuncBase::EI_TANPI, llvm::AMDGPULibFuncBase::EI_TGAMMA, 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 160 of file AMDGPULibCalls.cpp.
References llvm::dyn_cast(), llvm::FunctionType::get(), llvm::VectorType::get(), and llvm::Type::getInt32Ty().
Referenced by llvm::AMDGPULibCalls::fold().
|
inlinestatic |
Definition at line 391 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFunc::getLeads(), and llvm::AMDGPULibFuncBase::Param::VectorSize.
|
static |
Definition at line 322 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_DIVIDE, llvm::AMDGPULibFuncBase::EI_EXP, llvm::AMDGPULibFuncBase::EI_EXP10, llvm::AMDGPULibFuncBase::EI_EXP2, llvm::AMDGPULibFuncBase::EI_LOG, llvm::AMDGPULibFuncBase::EI_LOG10, llvm::AMDGPULibFuncBase::EI_LOG2, llvm::AMDGPULibFuncBase::EI_POWR, llvm::AMDGPULibFuncBase::EI_RECIP, llvm::AMDGPULibFuncBase::EI_RSQRT, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SINCOS, llvm::AMDGPULibFuncBase::EI_SQRT, and llvm::AMDGPULibFuncBase::EI_TAN.
Referenced by llvm::AMDGPULibCalls::useNative().
|
static |
|
static |
Definition at line 178 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 184 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 187 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 193 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 199 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 203 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 209 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 215 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 219 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 225 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 231 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 235 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 239 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 247 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 243 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 251 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 261 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 256 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 266 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 270 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 278 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 274 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 282 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 286 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 290 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 303 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 307 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 311 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 315 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Referenced by llvm::AMDGPULibCalls::initNativeFuncs(), and llvm::AMDGPUUseNativeCallsPass::run().