Lines Matching refs:SL
167 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
550 for (auto &SL : StoreRefsForMemset) in runOnLoopBlock() local
551 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::Yes); in runOnLoopBlock()
553 for (auto &SL : StoreRefsForMemsetPattern) in runOnLoopBlock() local
554 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::No); in runOnLoopBlock()
581 bool LoopIdiomRecognize::processLoopStores(SmallVectorImpl<StoreInst *> &SL, in processLoopStores() argument
590 for (unsigned i = 0, e = SL.size(); i < e; ++i) { in processLoopStores()
591 assert(SL[i]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
593 Value *FirstStoredVal = SL[i]->getValueOperand(); in processLoopStores()
594 Value *FirstStorePtr = SL[i]->getPointerOperand(); in processLoopStores()
598 unsigned FirstStoreSize = DL->getTypeStoreSize(SL[i]->getValueOperand()->getType()); in processLoopStores()
602 Heads.insert(SL[i]); in processLoopStores()
629 assert(SL[k]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
630 Value *SecondStorePtr = SL[k]->getPointerOperand(); in processLoopStores()
638 Value *SecondStoredVal = SL[k]->getValueOperand(); in processLoopStores()
650 if (isConsecutiveAccess(SL[i], SL[k], *DL, *SE, false)) { in processLoopStores()
662 Tails.insert(SL[k]); in processLoopStores()
663 Heads.insert(SL[i]); in processLoopStores()
664 ConsecutiveChain[SL[i]] = SL[k]; in processLoopStores()