LLVM 22.0.0git
ARMTargetTransformInfo.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "armtti"

Functions

static ValuesimplifyNeonVld1 (const IntrinsicInst &II, unsigned MemAlign, InstCombiner::BuilderTy &Builder)
 Convert a vector load intrinsic into a simple llvm load instruction.
static ValueisSSATMinMaxPattern (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)
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< boolEnableMaskedLoadStores ("enable-arm-maskedldst", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked loads and stores"))
static cl::opt< boolDisableLowOverheadLoops ("disable-arm-loloops", cl::Hidden, cl::init(false), cl::desc("Disable the generation of low-overhead loops"))
static cl::opt< boolAllowWLSLoops ("allow-arm-wlsloops", cl::Hidden, cl::init(true), cl::desc("Enable the generation of WLS loops"))
static cl::opt< boolUseWidenGlobalArrays ("widen-global-strings", cl::Hidden, cl::init(true), cl::desc("Enable the widening of global strings to alignment boundaries"))
cl::opt< TailPredication::ModeEnableTailPredication
cl::opt< boolEnableMaskedGatherScatters
cl::opt< unsignedMVEMaxSupportedInterleaveFactor

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "armtti"

Definition at line 45 of file ARMTargetTransformInfo.cpp.

Function Documentation

◆ areExtractExts()

bool areExtractExts ( Value * Ext1,
Value * Ext2 )
static

Check if Ext1 and Ext2 are extends of the same type, doubling the bitwidth of the vector elements.

Definition at line 2789 of file ARMTargetTransformInfo.cpp.

References llvm::cast(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZExtOrSExt(), and llvm::PatternMatch::match().

◆ canTailPredicateInstruction()

bool canTailPredicateInstruction ( Instruction & I,
int & ICmpCount )
static

Definition at line 2398 of file ARMTargetTransformInfo.cpp.

References llvm::dyn_cast(), I, II, and llvm::isa().

Referenced by canTailPredicateLoop().

◆ canTailPredicateLoop()

◆ isFPSatMinMaxPattern()

◆ isSSATMinMaxPattern()

◆ simplifyNeonVld1()

Value * simplifyNeonVld1 ( const IntrinsicInst & II,
unsigned MemAlign,
InstCombiner::BuilderTy & Builder )
static

Convert a vector load intrinsic into a simple llvm load instruction.

This is beneficial when the underlying object being addressed comes from a constant, since we get constant-folding for free.

Definition at line 72 of file ARMTargetTransformInfo.cpp.

References llvm::dyn_cast(), II, and llvm::isPowerOf2_32().

Referenced by llvm::ARMTTIImpl::instCombineIntrinsic().

Variable Documentation

◆ 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

◆ 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

cl::opt< bool > EnableMaskedLoadStores("enable-arm-maskedldst", cl::Hidden, cl::init(true), cl::desc("Enable the generation of masked loads and stores")) ( "enable-arm-maskedldst" ,
cl::Hidden ,
cl::init(true) ,
cl::desc("Enable the generation of masked loads and stores")  )
static

◆ EnableTailPredication

◆ MVEMaxSupportedInterleaveFactor

cl::opt<unsigned> MVEMaxSupportedInterleaveFactor
extern

◆ 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