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