LLVM: lib/Target/ARM/ARMTargetTransformInfo.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "armtti" |
| Functions | |
|---|---|
| static Value * | simplifyNeonVld1 (const IntrinsicInst &II, unsigned MemAlign, InstCombiner::BuilderTy &Builder) |
| Convert a vector load intrinsic into a simple llvm load instruction. | |
| static Value * | isSSATMinMaxPattern (Instruction *Inst, const APInt &Imm) |
| static bool | isFPSatMinMaxPattern (Instruction *Inst, const APInt &Imm) |
| static bool | canTailPredicateInstruction (Instruction &I, int &ICmpCount) |
| static bool | canTailPredicateLoop (Loop *L, LoopInfo *LI, ScalarEvolution &SE, const DataLayout &DL, const LoopAccessInfo *LAI, const DominatorTree &DT) |
| static bool | areExtractExts (Value *Ext1, Value *Ext2) |
| Check if Ext1 and Ext2 are extends of the same type, doubling the bitwidth of the vector elements. |
| Variables | |
|---|---|
| static cl::opt< bool > | EnableMaskedLoadStores ("enable-arm-maskedldst", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked loads and stores")) |
| static cl::opt< bool > | DisableLowOverheadLoops ("disable-arm-loloops", cl::Hidden, cl::init(false), cl::desc("Disable the generation of low-overhead loops")) |
| static cl::opt< bool > | AllowWLSLoops ("allow-arm-wlsloops", cl::Hidden, cl::init(true), cl::desc("Enable the generation of WLS loops")) |
| static cl::opt< bool > | UseWidenGlobalArrays ("widen-global-strings", cl::Hidden, cl::init(true), cl::desc("Enable the widening of global strings to alignment boundaries")) |
| cl::opt< TailPredication::Mode > | EnableTailPredication |
| cl::opt< bool > | EnableMaskedGatherScatters |
| cl::opt< unsigned > | MVEMaxSupportedInterleaveFactor |
| static cl::opt< int > | ArmForceUnrollThreshold ("arm-force-unroll-threshold", cl::init(12), cl::Hidden, cl::desc("Threshold for forced unrolling of small loops in Arm architecture")) |
◆ DEBUG_TYPE
#define DEBUG_TYPE "armtti"
◆ areExtractExts()
◆ canTailPredicateInstruction()
◆ canTailPredicateLoop()
Definition at line 2477 of file ARMTargetTransformInfo.cpp.
References canTailPredicateInstruction(), llvm::dbgs(), DL, llvm::dyn_cast(), llvm::TailPredication::EnabledNoReductions, EnableMaskedGatherScatters, EnableTailPredication, llvm::findDefsUsedOutsideOfLoop(), llvm::TailPredication::ForceEnabledNoReductions, llvm::getLoadStorePointerOperand(), llvm::getLoadStoreType(), llvm::LoopAccessInfo::getPSE(), llvm::getPtrStride(), llvm::ScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), I, llvm::isa(), llvm::ScalarEvolution::isLoopInvariant(), LLVM_DEBUG, MVEMaxSupportedInterleaveFactor, and T.
Referenced by llvm::ARMTTIImpl::preferPredicateOverEpilogue().
◆ isFPSatMinMaxPattern()
◆ isSSATMinMaxPattern()
Definition at line 372 of file ARMTargetTransformInfo.cpp.
References llvm::CallingConv::C, llvm::cast(), llvm::SelectPatternResult::Flavor, llvm::User::getOperand(), llvm::ConstantInt::getValue(), llvm::Value::hasNUses(), llvm::isa(), LHS, llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::match(), llvm::matchSelectPattern(), RHS, llvm::SPF_SMAX, llvm::SPF_SMIN, and llvm::Value::user_begin().
Referenced by llvm::ARMTTIImpl::getIntImmCostInst(), and isFPSatMinMaxPattern().
◆ simplifyNeonVld1()
◆ AllowWLSLoops
| cl::opt< bool > AllowWLSLoops("allow-arm-wlsloops", cl::Hidden, cl::init(true), cl::desc("Enable the generation of WLS loops")) ( "allow-arm-wlsloops" , cl::Hidden , cl::init(true) , cl::desc("Enable the generation of WLS loops") ) | static |
|---|
◆ ArmForceUnrollThreshold
| cl::opt< int > ArmForceUnrollThreshold("arm-force-unroll-threshold", cl::init(12), cl::Hidden, cl::desc( "Threshold for forced unrolling of small loops in Arm architecture")) ( "arm-force-unroll-threshold" , cl::init(12) , cl::Hidden , cl::desc( "Threshold for forced unrolling of small loops in Arm architecture") ) | static |
|---|
◆ DisableLowOverheadLoops
| cl::opt< bool > DisableLowOverheadLoops("disable-arm-loloops", cl::Hidden, cl::init(false), cl::desc("Disable the generation of low-overhead loops")) ( "disable-arm-loloops" , cl::Hidden , cl::init(false) , cl::desc("Disable the generation of low-overhead loops") ) | static |
|---|
◆ EnableMaskedGatherScatters
◆ EnableMaskedLoadStores
◆ EnableTailPredication
◆ MVEMaxSupportedInterleaveFactor
◆ UseWidenGlobalArrays
| cl::opt< bool > UseWidenGlobalArrays("widen-global-strings", cl::Hidden, cl::init(true), cl::desc("Enable the widening of global strings to alignment boundaries")) ( "widen-global-strings" , cl::Hidden , cl::init(true) , cl::desc("Enable the widening of global strings to alignment boundaries") ) | static |
|---|