Go to the source code of this file.
|
| STATISTIC (NumCallsReplaced, "Number of calls to intrinsics that have been replaced.") |
|
| STATISTIC (NumTLIFuncDeclAdded, "Number of vector library function declarations added.") |
|
| STATISTIC (NumFuncUsedAdded, "Number of functions added to `llvm.compiler.used`") |
|
static bool | replaceWithTLIFunction (CallInst &CI, const StringRef TLIName) |
|
static bool | replaceWithCallToVeclib (const TargetLibraryInfo &TLI, CallInst &CI) |
|
static bool | runImpl (const TargetLibraryInfo &TLI, Function &F) |
|
| INITIALIZE_PASS_BEGIN (ReplaceWithVeclibLegacy, DEBUG_TYPE, "Replace intrinsics with calls to vector library", false, false) INITIALIZE_PASS_END(ReplaceWithVeclibLegacy |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "replace-with-veclib" |
◆ INITIALIZE_PASS_BEGIN()
◆ replaceWithCallToVeclib()
Definition at line 92 of file ReplaceWithVeclib.cpp.
References llvm::CallBase::args(), llvm::dbgs(), DEBUG_TYPE, llvm::enumerate(), llvm::CallBase::getCalledFunction(), llvm::ElementCount::getFixed(), llvm::Function::getIntrinsicID(), llvm::Instruction::getModule(), llvm::Intrinsic::getName(), llvm::TargetLibraryInfo::getVectorizedFunction(), llvm::TargetLibraryInfo::isFunctionVectorizable(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isNonZero(), llvm::Intrinsic::isOverloaded(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::isVectorIntrinsicWithScalarOpAtArg(), LLVM_DEBUG, llvm::Intrinsic::not_intrinsic, llvm::SmallVectorTemplateBase< T, bool >::push_back(), replaceWithTLIFunction(), and llvm::StringRef::str().
Referenced by runImpl().
◆ replaceWithTLIFunction()
Definition at line 41 of file ReplaceWithVeclib.cpp.
References llvm::appendToCompilerUsed(), llvm::CallBase::args(), assert(), llvm::Function::copyAttributesFrom(), llvm::Instruction::copyFastMathFlags(), llvm::Function::Create(), llvm::IRBuilderBase::CreateCall(), llvm::dbgs(), DEBUG_TYPE, llvm::CallBase::getCalledFunction(), llvm::Function::getFunctionType(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::GlobalValue::getType(), LLVM_DEBUG, and llvm::Value::replaceAllUsesWith().
Referenced by replaceWithCallToVeclib().
◆ runImpl()
◆ STATISTIC() [1/3]
STATISTIC |
( |
NumCallsReplaced |
, |
|
|
"Number of calls to intrinsics that have been replaced." |
|
|
) |
| |
◆ STATISTIC() [2/3]
STATISTIC |
( |
NumFuncUsedAdded |
, |
|
|
"Number of functions added to `llvm.compiler.used`" |
|
|
) |
| |
◆ STATISTIC() [3/3]
STATISTIC |
( |
NumTLIFuncDeclAdded |
, |
|
|
"Number of vector library function declarations added." |
|
|
) |
| |
◆ DEBUG_TYPE
◆ false
◆ library