LLVM 17.0.0git
|
This file does AMD library function optimizations. More...
#include "AMDGPU.h"
#include "AMDGPULibFunc.h"
#include "GCNSubtarget.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/Loads.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/InitializePasses.h"
#include "llvm/Target/TargetMachine.h"
#include <cmath>
Go to the source code of this file.
Classes | |
class | llvm::AMDGPULibCalls |
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 | |
INITIALIZE_PASS_BEGIN (AMDGPUSimplifyLibCalls, "amdgpu-simplifylib", "Simplify well-known AMD library calls", false, false) INITIALIZE_PASS_END(AMDGPUSimplifyLibCalls | |
amdgpu Simplify well known AMD library false | INITIALIZE_PASS (AMDGPUUseNativeCalls, "amdgpu-usenative", "Replace builtin math calls with that native versions.", false, false) template< typename IRB > static CallInst *CreateCallEx(IRB &B |
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) |
Variables | |
static cl::opt< bool > | EnablePreLink ("amdgpu-prelink", cl::desc("Enable pre-link mode optimizations"), cl::init(false), cl::Hidden) |
static cl::list< std::string > | UseNative ("amdgpu-use-native", cl::desc("Comma separated list of functions to replace with native, or all"), cl::CommaSeparated, cl::ValueOptional, cl::Hidden) |
amdgpu | simplifylib |
amdgpu Simplify well known AMD library | calls |
amdgpu Simplify well known AMD library | false |
amdgpu Simplify well known AMD library false FunctionCallee | Callee |
amdgpu Simplify well known AMD library false FunctionCallee Value * | Arg |
amdgpu Simplify well known AMD library false FunctionCallee Value const Twine & | Name |
static const TableEntry | tbl_acos [] |
static const TableEntry | tbl_acosh [] |
static const TableEntry | tbl_acospi [] |
static const TableEntry | tbl_asin [] |
static const TableEntry | tbl_asinh [] |
static const TableEntry | tbl_asinpi [] |
static const TableEntry | tbl_atan [] |
static const TableEntry | tbl_atanh [] |
static const TableEntry | tbl_atanpi [] |
static const TableEntry | tbl_cbrt [] |
static const TableEntry | tbl_cos [] |
static const TableEntry | tbl_cosh [] |
static const TableEntry | tbl_cospi [] |
static const TableEntry | tbl_erfc [] |
static const TableEntry | tbl_erf [] |
static const TableEntry | tbl_exp [] |
static const TableEntry | tbl_exp2 [] |
static const TableEntry | tbl_exp10 [] |
static const TableEntry | tbl_expm1 [] |
static const TableEntry | tbl_log [] |
static const TableEntry | tbl_log2 [] |
static const TableEntry | tbl_log10 [] |
static const TableEntry | tbl_rsqrt [] |
static const TableEntry | tbl_sin [] |
static const TableEntry | tbl_sinh [] |
static const TableEntry | tbl_sinpi [] |
static const TableEntry | tbl_sqrt [] |
static const TableEntry | tbl_tan [] |
static const TableEntry | tbl_tanh [] |
static const TableEntry | tbl_tanpi [] |
static const TableEntry | tbl_tgamma [] |
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 41 of file AMDGPULibCalls.cpp.
#define MATH_PI numbers::pi |
Definition at line 40 of file AMDGPULibCalls.cpp.
#define MATH_SQRT1_2 numbers::inv_sqrt2 |
Definition at line 43 of file AMDGPULibCalls.cpp.
#define MATH_SQRT2 numbers::sqrt2 |
Definition at line 42 of file AMDGPULibCalls.cpp.
Definition at line 380 of file AMDGPULibCalls.cpp.
|
inlinestatic |
Definition at line 430 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFuncBase::Param::ArgType, and llvm::AMDGPULibFunc::getLeads().
Referenced by llvm::AMDGPULibCalls::fold(), llvm::SPIRVCallLowering::lowerFormalArguments(), and llvm::AMDGPULibCalls::useNative().
|
static |
Definition at line 382 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.
|
inlinestatic |
Definition at line 426 of file AMDGPULibCalls.cpp.
References llvm::AMDGPULibFunc::getLeads(), and llvm::AMDGPULibFuncBase::Param::VectorSize.
Referenced by llvm::AMDGPULibCalls::fold().
|
static |
Definition at line 357 of file AMDGPULibCalls.cpp.
Referenced by llvm::AMDGPULibCalls::useNative().
amdgpu Simplify well known AMD library false INITIALIZE_PASS | ( | AMDGPUUseNativeCalls | , |
"amdgpu-usenative" | , | ||
"Replace builtin math calls with that native versions." | , | ||
false | , | ||
false | |||
) | & |
INITIALIZE_PASS_BEGIN | ( | AMDGPUSimplifyLibCalls | , |
"amdgpu-simplifylib" | , | ||
"Simplify well-known AMD library calls" | , | ||
false | , | ||
false | |||
) |
amdgpu Simplify well known AMD library false FunctionCallee Value* Arg |
Definition at line 187 of file AMDGPULibCalls.cpp.
Referenced by llvm::AAEvaluator::AAEvaluator(), llvm::SPIRVGeneralDuplicatesTracker::add(), llvm::SPIRVGlobalRegistry::add(), llvm::HashBuilderImpl< HasherT, Endianness >::add(), llvm::AliasSetTracker::add(), AddAliasScopeMetadata(), AddAlignmentAssumptions(), addConditions(), llvm::AnalysisUsage::addPreserved(), addVCallToSet(), adjustByValArgAlignment(), llvm::SystemZTTIImpl::adjustInliningThreshold(), llvm::AMDGPUAAResult::alias(), allCallersPassValidPointerForArgument(), allocateSGPR32Input(), allocateSGPR64Input(), llvm::SITargetLowering::allocateSpecialInputVGPRs(), allocateVGPR32Input(), llvm::CCState::AnalyzeArgumentsSecondPass(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), appendArg(), appendString(), llvm::BitVector::apply(), llvm::X86TTIImpl::areInlineCompatible(), llvm::xray::CallArgRecord::arg(), llvm::MachineFunction::ArgRegPair::ArgRegPair(), llvm::IRPosition::argument(), llvm::CallLowering::ValueHandler::assignValueToAddress(), llvm::BTFDebug::beginFunctionImpl(), CalculateTailCallArgDest(), llvm::CallGraph::CallGraph(), checkFunctionMemoryAccess(), llvm::Record::checkUnusedTemplateArgs(), checkZExtBool(), llvm::CoroIdInst::clearPromise(), collectEscapedLocals(), combineFneg(), llvm::computeConstantRange(), llvm::computeExpressionSize(), llvm::computeKnownBitsFromAssume(), computeKnownFPClass(), llvm::computeLTOCacheKey(), llvm::computeSignatureVTs(), llvm::ConstraintSystem::ConstraintSystem(), llvm::DwarfUnit::constructSubprogramArguments(), convertArgumentInfo(), llvm::ArgDescriptor::createArg(), llvm::IRBuilderBase::CreateIsNeg(), llvm::IRBuilderBase::CreateIsNotNeg(), llvm::IRBuilderBase::CreateIsNotNull(), llvm::IRBuilderBase::CreateIsNull(), createOutlinedFunction(), llvm::Attributor::createShallowWrapper(), llvm::orc::LocalCXXRuntimeOverridesBase::CXAAtExitOverride(), llvm::objcarc::Depends(), llvm::orc::shared::SPSArgList< SPSTagT, SPSTagTs... >::deserialize(), llvm::dlltoolDriverMain(), doList(), llvm::DominatorTreeBase< NodeT, IsPostDom >::DominatorTreeBase(), doPromotion(), eliminateConstraints(), eliminateSwiftError(), eliminateSwiftErrorArgument(), llvm::RISCVTargetAsmStreamer::emitDirectiveOptionArch(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV3::emitKernelArg(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV3::emitKernelArgs(), llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::OpenMPIRBuilder::emitTargetKernel(), llvm::Evaluator::EvaluateFunction(), llvm::CodeExtractor::excludeArgFromAggregate(), llvm::VPWidenCallRecipe::execute(), ExpandBasePaths(), llvm::cl::ExpansionContext::expandResponseFiles(), llvm::SPIRVGeneralDuplicatesTracker::find(), findArgParts(), findArgumentCopyElisionCandidates(), findDependencies(), FindPredecessorAutoreleaseWithSafePath(), FindPredecessorRetainWithSafePath(), llvm::objcarc::findSingleDependency(), FindSingleUseIdentifiedObject(), fitArgInto64Bits(), flattenCommandLine(), llvm::VarDefInit::Fold(), llvm::BinOpInit::Fold(), llvm::FoldingSetBase::FoldingSetBase(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), foldSqrt(), ForeachDagApply(), llvm::detail::frexp(), llvm::GlobalsAAResult::FunctionInfo::FunctionInfo(), llvm::DagInit::get(), llvm::getAllocSize(), llvm::DILocalVariable::getArg(), llvm::remarks::Remark::getArgsAsMsg(), getArgumentTypeAlign(), llvm::IRPosition::getAssociatedFunction(), llvm::VarDefInit::getAsString(), llvm::AbstractCallSite::getCallArgOperand(), llvm::AbstractCallSite::getCallArgOperandNo(), llvm::CoroSuspendInst::getCoroSave(), llvm::IRPosition::getCtxI(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), llvm::MemoryLocation::getForArgument(), llvm::MDNodeKeyImpl< DILocalVariable >::getHashValue(), llvm::DenseMapInfo< MemoryLocOrCall >::getHashValue(), llvm::DenseMapInfo< PointerEmbeddedInt< IntT, Bits > >::getHashValue(), llvm::AAResults::getModRefInfo(), llvm::BasicAAResult::getModRefInfoMask(), llvm::DiagnosticInfoOptimizationBase::getMsg(), llvm::X86TargetLowering::getNegatedExpression(), getOriginalFunctionType(), llvm::PassRegistry::getPassInfo(), llvm::SIMachineFunctionInfo::getPreloadedReg(), llvm::CoroIdInst::getPromise(), getSearchPaths(), llvm::ARM_AM::getSOImmVal(), llvm::CoroIdAsyncInst::getStorageArgumentIndex(), llvm::CoroSuspendAsyncInst::getStorageArgumentIndex(), llvm::ARM_AM::getT2SOImmVal(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::getTotalArgumentsSizeInBytes(), getVectorCallCosts(), llvm::GlobalsAAResult::GlobalsAAResult(), HandleByValArgument(), handlePhiDef(), HandlePrefixedOrGroupedOption(), llvm::hash_value(), HasSafePathToPredecessorCall(), llvm::HexagonEvaluator::HexagonEvaluator(), llvm::Attributor::identifyDefaultAbstractAttributes(), llvm::GenericUniformityAnalysisImpl< ContextT >::initialize(), initSlots2Values(), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::inputOne(), llvm::SIInstrInfo::insertNoops(), insertNoopsInBundle(), insertParsePoints(), insertSinCosCall(), insertSpills(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVECmpNE(), llvm::remarks::StringTable::internalize(), llvm::Attributor::internalizeFunctions(), llvm::PreservedAnalyses::intersect(), llvm::invertCondition(), llvm::IRSimilarity::IRSimilarityCandidate::IRSimilarityCandidate(), llvm::SparcTargetLowering::IsEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isIntExtFree(), llvm::InformationCache::isInvolvedInMustTailCall(), llvm::MDNodeKeyImpl< DILocalVariable >::isKeyOf(), isKnownNonNullFromDominatingCondition(), llvm::DILocalVariable::isParameter(), llvm::objcarc::IsPotentialRetainableObjPtr(), isPredicatedOnPHI(), llvm::NVPTXTTIImpl::isSourceOfDivergence(), llvm::Value::isSwiftError(), isSwiftError(), llvm::AMDGPUInstrInfo::isUniformMMO(), llvm::Attributor::isValidFunctionSignatureRewrite(), llvm::LazyValueInfo::LazyValueInfo(), llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), llvm::libDriverMain(), LLVMGetNextParam(), LLVMGetPreviousParam(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMSetParamAlignment(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::AMDGPUTargetLowering::loadInputValue(), LookupNearestOption(), llvm::Pass::lookupPassInfo(), llvm::LoopInfoBase< BlockT, LoopT >::LoopInfoBase(), lowerBALLOTIntrinsic(), llvm::SITargetLowering::LowerCall(), llvm::ARMCallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::CallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::M68kCallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::PPCCallLowering::lowerFormalArguments(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::X86CallLowering::lowerFormalArguments(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::VETargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::AMDGPUTargetLowering::LowerFROUNDEVEN(), LowerFSINCOS(), LowerMemOpCallTo(), llvm::SITargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), lowerStatepointMetaArgs(), makeStatepointExplicitImpl(), llvm::coro::LowererBase::makeSubFnCall(), llvm::X86TargetLowering::markLibCallAttributes(), markTails(), matchFPExtFromF16(), MatchingStackOffset(), needsFPFromSig(), onlySingleValue(), llvm::GVNExpression::BasicExpression::op_push_back(), std::hash< llvm::pdb::PDB_SymType >::operator()(), llvm::operator<<(), llvm::LazyValueInfo::operator=(), llvm::MCRegisterInfo::mc_difflist_iterator< SubT >::operator==(), llvm::MIBundleOperandIteratorBase< ValueT >::operator==(), llvm::BasicBlock::phi_iterator_impl< PHINodeT, BBIteratorT >::operator==(), llvm::LazyCallGraph::postorder_ref_scc_iterator::operator==(), llvm::BlotMapVector< KeyT, ValueT >::operator[](), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::output(), llvm::remarks::HotnessThresholdParser::parse(), llvm::cl::parser< char >::parse(), llvm::cl::parser< std::string >::parse(), llvm::cl::parser< DataType >::parse(), llvm::parseCommandLineOptions(), parseDouble(), AbstractManglingParser< Derived, Alloc >::parseEncoding(), AbstractManglingParser< Derived, Alloc >::parseExpr(), ParseFunctionArgs(), llvm::remarks::parseHotnessThresholdOption(), llvm::GCNTargetMachine::parseMachineFunctionInfo(), llvm::remarks::YAMLRemarkParser::parseRemark(), AbstractManglingParser< Derived, Alloc >::parseSpecialName(), AbstractManglingParser< Derived, Alloc >::parseTemplateArg(), AbstractManglingParser< Derived, Alloc >::parseTemplateArgs(), passingValueIsAlwaysUndefined(), Passv64i1ArgInRegs(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::SwiftErrorValueTracking::preassignVRegs(), llvm::sys::printArg(), processArg(), processDbgDeclare(), processIfEntryValueDbgDeclare(), processPSInputArgs(), ProfileDagInit(), programUndefinedIfUndefOrPoison(), llvm::promoteCall(), llvm::cl::ProvidePositionalOption(), llvm::Attributor::registerFunctionSignatureRewrite(), llvm::DIExpression::replaceArg(), replaceArgumentUses(), replaceConstants(), replaceSwiftErrorOps(), replaceWithCallToVeclib(), llvm::VarDefInit::resolveReferences(), llvm::DagInit::resolveReferences(), llvm::LoopAnalysisManagerFunctionProxy::Result::Result(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::Result(), llvm::FunctionSpecializer::run(), llvm::PAEvalPass::run(), llvm::RequireAnalysisPass< AnalysisT, IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::orc::SelfExecutorProcessControl::runAsIntFunction(), llvm::orc::SimpleRemoteEPC::runAsIntFunction(), llvm::orc::runAsIntFunction(), llvm::orc::rt_bootstrap::runAsIntFunctionWrapper(), llvm::orc::runAsMain(), llvm::runFuzzerOnInputs(), runIPSCCP(), llvm::IRTranslator::runOnMachineFunction(), llvm::ScalarEvolution::ScalarEvolution(), llvm::detail::scalbn(), llvm::FastISel::selectIntrinsicCall(), llvm::orc::shared::SPSArgList< SPSTagT, SPSTagTs... >::serialize(), llvm::CallLowering::setArgFlags(), llvm::SIMachineFunctionInfo::setWorkItemIDX(), llvm::SIMachineFunctionInfo::setWorkItemIDY(), llvm::SIMachineFunctionInfo::setWorkItemIDZ(), simplifyInvariantGroupIntrinsic(), simplifyX86movmsk(), llvm::orc::shared::SPSArgList< SPSTagT, SPSTagTs... >::size(), StoreTailCallArgumentsToStackSlot(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), llvm::Attributor::translateArgumentToCallSiteContent(), tryConstantFoldCall(), tryToElideArgumentCopy(), llvm::UpgradeARCRuntime(), llvm::UpgradeFunctionAttributes(), llvm::UpgradeIntrinsicCall(), llvm::IRPosition::value(), llvm::InstCombinerImpl::visitCallInst(), llvm::logicalview::LVTypeVisitor::visitKnownRecord(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::wouldInstructionBeTriviallyDead(), writeDIArgList(), and writeFunctionTypeMetadataRecords().
amdgpu Simplify well known AMD library false FunctionCallee Callee |
Definition at line 187 of file AMDGPULibCalls.cpp.
Referenced by llvm::AbstractCallSite::AbstractCallSite(), AddCalls(), addCallToCallGraph(), addNoRecurseAttrs(), adjustCallerSSPLevel(), adjustCallerStackProbes(), adjustCallerStackProbeSize(), llvm::SystemZTTIImpl::adjustInliningThreshold(), adjustMinLegalVectorWidth(), adjustNullPointerValidAttr(), allCallersPassValidPointerForArgument(), analyzeLoopUnrollCost(), llvm::AttributeFuncs::areInlineCompatible(), llvm::TargetTransformInfo::areInlineCompatible(), llvm::TargetTransformInfoImplBase::areInlineCompatible(), llvm::AArch64TTIImpl::areInlineCompatible(), llvm::GCNTTIImpl::areInlineCompatible(), llvm::X86TTIImpl::areInlineCompatible(), llvm::X86TTIImpl::areTypesABICompatible(), llvm::TargetTransformInfo::areTypesABICompatible(), llvm::TargetTransformInfoImplBase::areTypesABICompatible(), llvm::PPCTTIImpl::areTypesABICompatible(), CallsiteContextGraph< DerivedCCG, FuncTy, CallTy >::assignFunctions(), AVRDAGToDAGISel::select< AVRISD::CALL >(), buildCallOperands(), CallExpr::CallExpr(), canLongjmp(), canSinkInstructions(), checkDenormMode(), computeFunctionSummary(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateCallBr(), llvm::objcarc::createCallInstWithColors(), llvm::IRBuilderBase::CreateConstrainedFPCall(), llvm::IRBuilderBase::CreateInvoke(), doCallSiteSplitting(), emitBinaryFloatFnCallHelper(), EmitCall(), emitDirectiveRelocJalr(), llvm::emitInlinedInto(), llvm::emitInlinedIntoBasedOnCost(), emitLibCall(), emitTPIDR2Save(), emitUnaryFloatFnCallHelper(), CallsiteContextGraph< DerivedCCG, FuncTy, CallTy >::ContextNode::findEdgeFromCallee(), findInitTrampoline(), llvm::sampleprof::FunctionSamples::findInlinedFunctions(), findUses(), llvm::AMDGPULibCalls::fold(), for(), llvm::FunctionCallee::FunctionCallee(), functionsHaveCompatibleAttributes(), llvm::MLInlineAdvisor::getAdviceImpl(), llvm::ReplayInlineAdvisor::getAdviceImpl(), getAllocationData(), getAllocationDataForFunction(), llvm::getAllocationFamily(), getAllocationSize(), llvm::IRPosition::getAssociatedArgument(), llvm::getAttributeBasedInliningDecision(), llvm::AbstractCallSite::getCallbackUses(), getCalledFunction(), getCallOpcode(), getDefaultInlineAdvice(), llvm::DOTGraphTraits< CallGraphDOTInfo * >::getEdgeAttributes(), getEdgeKind(), llvm::getFreedOperand(), getInlinableCS(), llvm::getInlineCost(), llvm::InlineAdvisor::getMandatoryKind(), llvm::AArch64InstrInfo::getOutliningTypeImpl(), llvm::ARMBaseInstrInfo::getOutliningTypeImpl(), llvm::MipsCCState::getSpecialCallingConvForCallee(), hasReturnsTwiceAttr(), llvm::Attributor::identifyDefaultAbstractAttributes(), INITIALIZE_PASS(), llvm::InformationCache::initializeModuleSlice(), insertSinCosCall(), InstrBreaksNoFree(), InstrBreaksNonThrowing(), InstrBreaksNoSync(), isCalleeLoad(), isCompatibleReplacement(), llvm::CodeExtractor::isEligible(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isEmAsmCall(), isEqual(), isIndirectCall(), llvm::isInlineViable(), llvm::isLegalToPromote(), isReportingError(), isReturnNonNull(), llvm::isSafeToSpeculativelyExecuteWithOpcode(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundle(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::SelectionDAGBuilder::LowerDeoptimizeCall(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), LowerFSINCOS(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), markAliveBlocks(), CallExpr::match(), llvm::SIMachineFunctionInfo::mayUseAGPRs(), llvm::AttributeFuncs::mergeAttributesForInlining(), llvm::DenormalMode::mergeCalleeMode(), llvm::MLInlineAdvisor::onSuccessfulInlining(), llvm::pdb::operator<<(), llvm::FortifiedLibCallSimplifier::optimizeCall(), llvm::LibCallSimplifier::optimizeCall(), AbstractManglingParser< Derived, Alloc >::parseExpr(), llvm::CallGraph::populateCallGraphNode(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), prepareDescriptorIndirectCall(), prepareIndirectCall(), CallsiteContextGraph< DerivedCCG, FuncTy, CallTy >::ContextEdge::print(), CallExpr::printLeft(), llvm::sampleprof::ProfiledCallGraph::ProfiledCallGraph(), llvm::promoteCall(), llvm::promoteCallWithIfThenElse(), propagateCallAttrsFromCallee(), llvm::ImportedFunctionsInliningStatistics::recordInline(), llvm::CallGraphNode::removeAnyCallEdgeTo(), llvm::CallGraphNode::removeOneAbstractEdgeTo(), llvm::ReplayInlineAdvisor::ReplayInlineAdvisor(), llvm::SMEAttrs::requiresLazySave(), llvm::SMEAttrs::requiresSMChange(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::AMDGPUUseNativeCallsPass::run(), llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), runNVVMIntrRange(), llvm::FastISel::selectPatchpoint(), setAND(), setOR(), llvm::shouldInline(), llvm::simplifyCall(), simplifyIntrinsic(), simplifySuspendPoint(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), llvm::thinLTOPropagateFunctionAttrs(), transformCallee(), tryConstantFoldCall(), llvm::tryPromoteCall(), updateCallProfile(), updateCGAndAnalysisManagerForPass(), llvm::updateProfileCallee(), llvm::AMDGPULibCalls::useNative(), llvm::versionCallSite(), and llvm::sampleprof::SampleProfileWriterBinary::writeBody().
amdgpu Simplify well known AMD library calls |
Definition at line 180 of file AMDGPULibCalls.cpp.
|
static |
Referenced by llvm::AMDGPULibCalls::fold().
amdgpu Simplify well known AMD library false |
Definition at line 180 of file AMDGPULibCalls.cpp.
amdgpu Simplify well known AMD library false FunctionCallee Value const Twine& Name |
Definition at line 188 of file AMDGPULibCalls.cpp.
amdgpu simplifylib |
Definition at line 179 of file AMDGPULibCalls.cpp.
|
static |
Definition at line 213 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 219 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 222 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 228 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 234 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 238 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 244 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 250 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 254 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 260 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 274 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 282 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 278 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 286 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 296 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 291 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 301 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 305 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 313 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 309 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 317 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 321 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 325 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 329 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 333 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 338 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 342 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 346 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Definition at line 350 of file AMDGPULibCalls.cpp.
Referenced by getOptTable().
|
static |
Referenced by llvm::AMDGPULibCalls::initNativeFuncs(), and llvm::AMDGPUUseNativeCallsPass::run().