LLVM 17.0.0git
|
Public Member Functions | |
AMDGPULibCalls (const TargetMachine *TM_=nullptr) | |
bool | fold (CallInst *CI, AliasAnalysis *AA=nullptr) |
void | initNativeFuncs () |
bool | useNative (CallInst *CI) |
Protected Member Functions | |
bool | isUnsafeMath (const CallInst *CI) const |
void | replaceCall (Value *With) |
Protected Attributes | |
CallInst * | CI |
Definition at line 47 of file AMDGPULibCalls.cpp.
|
inline |
Definition at line 123 of file AMDGPULibCalls.cpp.
References TM.
bool AMDGPULibCalls::fold | ( | CallInst * | CI, |
AliasAnalysis * | AA = nullptr |
||
) |
Definition at line 594 of file AMDGPULibCalls.cpp.
References llvm::CallBase::arg_size(), assert(), B, Callee, CI, Context, llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_DIVIDE, llvm::AMDGPULibFuncBase::EI_FMA, llvm::AMDGPULibFuncBase::EI_MAD, llvm::AMDGPULibFuncBase::EI_NFMA, llvm::AMDGPULibFuncBase::EI_POW, llvm::AMDGPULibFuncBase::EI_POWN, llvm::AMDGPULibFuncBase::EI_POWR, llvm::AMDGPULibFuncBase::EI_READ_PIPE_2, llvm::AMDGPULibFuncBase::EI_READ_PIPE_4, llvm::AMDGPULibFuncBase::EI_RECIP, llvm::AMDGPULibFuncBase::EI_ROOTN, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SQRT, llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_2, llvm::AMDGPULibFuncBase::EI_WRITE_PIPE_4, EnablePreLink, llvm::AMDGPULibFuncBase::F32, llvm::AMDGPULibFuncBase::F64, getArgType(), llvm::CallBase::getCalledFunction(), llvm::BasicBlock::getContext(), llvm::AMDGPULibFunc::getId(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::AMDGPULibFunc::getNumArgs(), llvm::Instruction::getParent(), llvm::AMDGPULibFunc::getPrefix(), getVecSize(), llvm::AMDGPULibFuncBase::HALF, isUnsafeMath(), llvm::AMDGPULibFuncBase::NATIVE, and llvm::AMDGPULibFuncBase::NOPFX.
Referenced by llvm::AMDGPUSimplifyLibCallsPass::run().
void AMDGPULibCalls::initNativeFuncs | ( | ) |
Definition at line 460 of file AMDGPULibCalls.cpp.
References UseNative.
Referenced by llvm::AMDGPUSimplifyLibCallsPass::run(), and llvm::AMDGPUUseNativeCallsPass::run().
Definition at line 447 of file AMDGPULibCalls.cpp.
References CI, F, llvm::BasicBlock::getParent(), llvm::Instruction::getParent(), and llvm::Attribute::getValueAsBool().
Referenced by fold().
|
inlineprotected |
Definition at line 117 of file AMDGPULibCalls.cpp.
References CI, llvm::Instruction::eraseFromParent(), and llvm::Value::replaceAllUsesWith().
Definition at line 500 of file AMDGPULibCalls.cpp.
References Callee, CI, 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::AMDGPULibFuncBase::NATIVE, llvm::AMDGPULibFuncBase::NOPFX, llvm::CallBase::setCalledFunction(), and llvm::AMDGPULibFunc::setPrefix().
Referenced by llvm::AMDGPUUseNativeCallsPass::run().
|
protected |
Definition at line 113 of file AMDGPULibCalls.cpp.
Referenced by fold(), isUnsafeMath(), replaceCall(), and useNative().