|
LLVM 23.0.0git
|
Public Member Functions | |
| AMDGPULibCalls (Function &F, FunctionAnalysisManager &FAM) | |
| bool | fold (CallInst *CI) |
| void | initNativeFuncs () |
| bool | useNative (CallInst *CI) |
Protected Member Functions | |
| bool | isUnsafeFiniteOnlyMath (const FPMathOperator *FPOp) const |
| bool | canIncreasePrecisionOfConstantFold (const FPMathOperator *FPOp) const |
Static Protected Member Functions | |
| static void | replaceCall (Instruction *I, Value *With) |
| static void | replaceCall (FPMathOperator *I, Value *With) |
Definition at line 51 of file AMDGPULibCalls.cpp.
| AMDGPULibCalls::AMDGPULibCalls | ( | Function & | F, |
| FunctionAnalysisManager & | FAM ) |
Definition at line 460 of file AMDGPULibCalls.cpp.
References F, FAM, and getParent().
|
protected |
Definition at line 454 of file AMDGPULibCalls.cpp.
References llvm::FPMathOperator::isFast().
Referenced by fold().
Definition at line 602 of file AMDGPULibCalls.cpp.
References llvm::FastMathFlags::approxFunc(), B(), canIncreasePrecisionOfConstantFold(), llvm::dbgs(), llvm::dyn_cast(), llvm::AMDGPULibFuncBase::EI_CEIL, llvm::AMDGPULibFuncBase::EI_COPYSIGN, llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_EXP, llvm::AMDGPULibFuncBase::EI_EXP2, llvm::AMDGPULibFuncBase::EI_FABS, llvm::AMDGPULibFuncBase::EI_FLOOR, llvm::AMDGPULibFuncBase::EI_FMA, llvm::AMDGPULibFuncBase::EI_FMAX, llvm::AMDGPULibFuncBase::EI_FMIN, llvm::AMDGPULibFuncBase::EI_LDEXP, llvm::AMDGPULibFuncBase::EI_LOG, llvm::AMDGPULibFuncBase::EI_LOG10, llvm::AMDGPULibFuncBase::EI_LOG2, llvm::AMDGPULibFuncBase::EI_MAD, llvm::AMDGPULibFuncBase::EI_POW, llvm::AMDGPULibFuncBase::EI_POW_FAST, llvm::AMDGPULibFuncBase::EI_POWN, llvm::AMDGPULibFuncBase::EI_POWN_FAST, llvm::AMDGPULibFuncBase::EI_POWR, llvm::AMDGPULibFuncBase::EI_POWR_FAST, llvm::AMDGPULibFuncBase::EI_READ_PIPE_2, llvm::AMDGPULibFuncBase::EI_READ_PIPE_4, llvm::AMDGPULibFuncBase::EI_RINT, llvm::AMDGPULibFuncBase::EI_ROOTN, llvm::AMDGPULibFuncBase::EI_ROOTN_FAST, llvm::AMDGPULibFuncBase::EI_ROUND, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SQRT, llvm::AMDGPULibFuncBase::EI_TRUNC, llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_2, llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_4, llvm::AMDGPULibFuncBase::F32, llvm::CallBase::getArgOperand(), getArgType(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getFunctionType(), llvm::AMDGPULibFunc::getId(), llvm::Instruction::getModule(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Value::getType(), llvm::isa(), llvm::AMDGPULibFunc::isCompatibleSignature(), llvm::CallBase::isNoBuiltin(), llvm::CallBase::isStrictFP(), LLVM_DEBUG, llvm::FastMathFlags::none(), PowN, PowR, RootN, llvm::CallBase::setArgOperand(), and llvm::CallBase::setCalledFunction().
| void AMDGPULibCalls::initNativeFuncs | ( | ) |
Definition at line 470 of file AMDGPULibCalls.cpp.
References UseNative.
|
protected |
Definition at line 450 of file AMDGPULibCalls.cpp.
References llvm::FPMathOperator::hasApproxFunc(), llvm::FPMathOperator::hasNoInfs(), and llvm::FPMathOperator::hasNoNaNs().
|
inlinestaticprotected |
Definition at line 147 of file AMDGPULibCalls.cpp.
References llvm::cast(), I, and replaceCall().
|
inlinestaticprotected |
Definition at line 512 of file AMDGPULibCalls.cpp.
References llvm::dbgs(), DEBUG_WITH_TYPE, llvm::AMDGPULibFuncBase::EI_SINCOS, F, llvm::AMDGPULibFuncBase::F64, getArgType(), llvm::CallBase::getCalledFunction(), llvm::AMDGPULibFunc::getId(), llvm::Instruction::getModule(), llvm::AMDGPULibFunc::getName(), llvm::AMDGPULibFunc::getPrefix(), HasNative(), llvm::AMDGPULibFunc::isMangled(), llvm::CallBase::isNoBuiltin(), llvm::AMDGPULibFuncBase::NATIVE, llvm::AMDGPULibFuncBase::NOPFX, llvm::CallBase::setCalledFunction(), and llvm::AMDGPULibFunc::setPrefix().