reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
  412   bool CanAddPredicate = !TheLoop->getHeader()->getParent()->hasOptSize();
  413   int Stride = getPtrStride(PSE, Ptr, TheLoop, Strides, CanAddPredicate, false);
  424   assert(!TheLoop->empty() && "We are not vectorizing an outer loop.");
  430   for (BasicBlock *BB : TheLoop->blocks()) {
  437           "CFGNotUnderstood", ORE, TheLoop);
  451         !TheLoop->isLoopInvariant(Br->getCondition()) &&
  456           "CFGNotUnderstood", ORE, TheLoop);
  466   if (!isUniformLoopNest(TheLoop /*loop nest*/,
  467                          TheLoop /*context outer loop*/)) {
  470         "CFGNotUnderstood", ORE, TheLoop);
  481                                "UnsupportedPhi", ORE, TheLoop);
  537     AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch()));
  544   BasicBlock *Header = TheLoop->getHeader();
  549     if (InductionDescriptor::isInductionPHI(&Phi, TheLoop, PSE, ID) &&
  570   BasicBlock *Header = TheLoop->getHeader();
  578   for (BasicBlock *BB : TheLoop->blocks()) {
  588                                      "CFGNotUnderstood", ORE, TheLoop);
  609               "CFGNotUnderstood", ORE, TheLoop, Phi);
  614         if (RecurrenceDescriptor::isReductionPHI(Phi, TheLoop, RedDes, DB, AC,
  638         if (InductionDescriptor::isInductionPHI(Phi, TheLoop, PSE, ID)) {
  645         if (RecurrenceDescriptor::isFirstOrderRecurrence(Phi, TheLoop,
  653         if (InductionDescriptor::isInductionPHI(Phi, TheLoop, PSE, ID, true)) {
  661             "NonReductionValueUsedOutsideLoop", ORE, TheLoop, Phi);
  692               "CantVectorizeLibcall", ORE, TheLoop, CI);
  696                                      "CantVectorizeLibcall", ORE, TheLoop, CI);
  708             if (!SE->isLoopInvariant(PSE.getSCEV(CI->getOperand(i)), TheLoop)) {
  711                   "CantVectorizeIntrinsic", ORE, TheLoop, CI);
  724             "CantVectorizeInstructionReturnType", ORE, TheLoop, &I);
  734                                      "CantVectorizeStore", ORE, TheLoop, ST);
  750                 "CantVectorizeNontemporalStore", ORE, TheLoop, ST);
  767                 "CantVectorizeNontemporalLoad", ORE, TheLoop, LD);
  785       if (hasOutsideLoopUser(TheLoop, &I, AllowedExit)) {
  796                                    "ValueUsedOutsideLoop", ORE, TheLoop, &I);
  806           "NoInductionVariable", ORE, TheLoop);
  811           "NoIntegerInductionVariable", ORE, TheLoop);
  828   LAI = &(*GetLAA)(*TheLoop);
  842         "CantVectorizeStoreToLoopInvariantAddress", ORE, TheLoop);
  874   return LoopAccessInfo::blockNeedsPredication(BB, TheLoop, DT);
  879   const bool IsAnnotatedParallel = TheLoop->isAnnotatedParallel();
  927                                ORE, TheLoop);
  931   assert(TheLoop->getNumBlocks() > 1 && "Single block loops are vectorizable");
  941   for (BasicBlock *BB : TheLoop->blocks()) {
  958           isDereferenceableAndAlignedInLoop(LI, TheLoop, SE, *DT))
  964   BasicBlock *Header = TheLoop->getHeader();
  965   for (BasicBlock *BB : TheLoop->blocks()) {
  970                                  "LoopContainsSwitch", ORE, TheLoop,
  981             "NoCFGForSelect", ORE, TheLoop,
  989           "NoCFGForSelect", ORE, TheLoop,
 1020         "CFGNotUnderstood", ORE, TheLoop);
 1031         "CFGNotUnderstood", ORE, TheLoop);
 1042         "CFGNotUnderstood", ORE, TheLoop);
 1055         "CFGNotUnderstood", ORE, TheLoop);
 1099   if (!canVectorizeLoopNestCFG(TheLoop, UseVPlanNativePath)) {
 1107   LLVM_DEBUG(dbgs() << "LV: Found a loop: " << TheLoop->getHeader()->getName()
 1112   if (!TheLoop->empty()) {
 1119                                  ORE, TheLoop);
 1129   assert(TheLoop->empty() && "Inner loop expected.");
 1131   unsigned NumBlocks = TheLoop->getNumBlocks();
 1171         "TooManySCEVRunTimeChecks", ORE, TheLoop);
 1194         "NoPrimaryInduction", ORE, TheLoop);
 1211       if (TheLoop->contains(UI))
 1216           "LiveOutFoldingTailByMasking", ORE, TheLoop, UI);
 1226   for (BasicBlock *BB : TheLoop->blocks()) {
 1231           "NoCFGForSelect", ORE, TheLoop,