Lines Matching defs:LoopVectorizationCostModel
24 // 4. LoopVectorizationCostModel - A unit that checks for the profitability
485 LoopVectorizationCostModel *CM, BlockFrequencyInfo *BFI,
662 LoopVectorizationCostModel *Cost;
736 LoopVectorizationLegality *LVL, llvm::LoopVectorizationCostModel *CM,
776 LoopVectorizationLegality *LVL, llvm::LoopVectorizationCostModel *CM,
805 LoopVectorizationLegality *LVL, llvm::LoopVectorizationCostModel *CM,
969 /// LoopVectorizationCostModel - estimates the expected speedups due to
976 class LoopVectorizationCostModel {
980 LoopVectorizationCostModel(ScalarEpilogueLowering SEL, Loop *L,
2216 // LoopVectorizationCostModel and LoopVectorizationPlanner.
2321 const LoopVectorizationCostModel *Cost,
2841 LoopVectorizationCostModel::getVectorCallCost(CallInst *CI,
2875 LoopVectorizationCostModel::getVectorIntrinsicCost(CallInst *CI,
3042 void LoopVectorizationCostModel::collectLoopScalars(ElementCount VF) {
3231 bool LoopVectorizationCostModel::isScalarWithPredication(
3273 bool LoopVectorizationCostModel::isPredicatedInst(Instruction *I) const {
3324 LoopVectorizationCostModel::getDivRemSpeculationCost(Instruction *I,
3387 bool LoopVectorizationCostModel::interleavedAccessCanBeWidened(
3461 bool LoopVectorizationCostModel::memoryInstructionCanBeWidened(
3487 void LoopVectorizationCostModel::collectLoopUniforms(ElementCount VF) {
3720 bool LoopVectorizationCostModel::runtimeChecksRequired() {
3753 bool LoopVectorizationCostModel::isScalableVectorizationAllowed() {
3811 LoopVectorizationCostModel::getMaxLegalScalableVF(unsigned MaxSafeElements) {
3833 FixedScalableVFPair LoopVectorizationCostModel::computeFeasibleMaxVF(
3941 LoopVectorizationCostModel::computeMaxVF(ElementCount UserVF, unsigned UserIC) {
4132 ElementCount LoopVectorizationCostModel::getMaximizedVFForTarget(
4649 bool LoopVectorizationCostModel::isEpilogueVectorizationProfitable(
4786 LoopVectorizationCostModel::getSmallestAndWidestTypes() {
4817 void LoopVectorizationCostModel::collectElementTypesForWidening() {
4861 LoopVectorizationCostModel::selectInterleaveCount(ElementCount VF,
5144 SmallVector<LoopVectorizationCostModel::RegisterUsage, 8>
5145 LoopVectorizationCostModel::calculateRegisterUsage(ArrayRef<ElementCount> VFs) {
5350 bool LoopVectorizationCostModel::useEmulatedMaskMemRefHack(Instruction *I,
5367 void LoopVectorizationCostModel::collectInstsToScalarize(ElementCount VF) {
5420 InstructionCost LoopVectorizationCostModel::computePredInstDiscount(
5532 InstructionCost LoopVectorizationCostModel::expectedCost(ElementCount VF) {
5613 LoopVectorizationCostModel::getMemInstScalarizationCost(Instruction *I,
5672 LoopVectorizationCostModel::getConsecutiveMemOpCost(Instruction *I,
5701 LoopVectorizationCostModel::getUniformMemOpCost(Instruction *I,
5729 LoopVectorizationCostModel::getGatherScatterCost(Instruction *I,
5743 LoopVectorizationCostModel::getInterleaveGroupCost(Instruction *I,
5783 LoopVectorizationCostModel::getReductionPatternCost(Instruction *I,
5965 LoopVectorizationCostModel::getMemoryInstructionCost(Instruction *I,
5983 LoopVectorizationCostModel::getScalarizationOverhead(Instruction *I,
6024 void LoopVectorizationCostModel::setCostBasedWideningDecision(ElementCount VF) {
6211 void LoopVectorizationCostModel::setVectorizedCallDecision(ElementCount VF) {
6383 bool LoopVectorizationCostModel::shouldConsiderInvariant(Value *Op) {
6397 LoopVectorizationCostModel::getInstructionCost(Instruction *I,
6753 case LoopVectorizationCostModel::CM_GatherScatter:
6755 case LoopVectorizationCostModel::CM_Interleave:
6757 case LoopVectorizationCostModel::CM_Scalarize:
6758 case LoopVectorizationCostModel::CM_Widen:
6761 case LoopVectorizationCostModel::CM_Widen_Reverse:
6763 case LoopVectorizationCostModel::CM_Unknown:
6765 case LoopVectorizationCostModel::CM_VectorCall:
6766 case LoopVectorizationCostModel::CM_IntrinsicCall:
6836 void LoopVectorizationCostModel::collectValuesToIgnore() {
6993 void LoopVectorizationCostModel::collectInLoopReductions() {
7039 LoopVectorizationCostModel &CM) {
8264 LoopVectorizationCostModel::InstWidening Decision =
8266 assert(Decision != LoopVectorizationCostModel::CM_Unknown &&
8268 if (Decision == LoopVectorizationCostModel::CM_Interleave)
8273 return Decision != LoopVectorizationCostModel::CM_Scalarize;
8285 LoopVectorizationCostModel::InstWidening Decision =
8287 bool Reverse = Decision == LoopVectorizationCostModel::CM_Widen_Reverse;
8289 Reverse || Decision == LoopVectorizationCostModel::CM_Widen;
8452 LoopVectorizationCostModel::CM_IntrinsicCall;
8479 LoopVectorizationCostModel::CallWideningDecision Decision =
8481 if (Decision.Kind == LoopVectorizationCostModel::CM_VectorCall) {
9280 LoopVectorizationCostModel::CM_Interleave);
9978 LoopVectorizationCostModel CM(SEL, L, PSE, LI, LVL, *TTI, TLI, DB, AC, ORE, F,
10522 LoopVectorizationCostModel CM(SEL, L, PSE, LI, &LVL, *TTI, TLI, DB, AC, ORE,