Lines Matching refs:SL
209 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
639 for (auto &SL : StoreRefsForMemset) in runOnLoopBlock() local
640 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::Yes); in runOnLoopBlock()
642 for (auto &SL : StoreRefsForMemsetPattern) in runOnLoopBlock() local
643 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::No); in runOnLoopBlock()
658 bool LoopIdiomRecognize::processLoopStores(SmallVectorImpl<StoreInst *> &SL, in processLoopStores() argument
667 for (unsigned i = 0, e = SL.size(); i < e; ++i) { in processLoopStores()
668 assert(SL[i]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
670 Value *FirstStoredVal = SL[i]->getValueOperand(); in processLoopStores()
671 Value *FirstStorePtr = SL[i]->getPointerOperand(); in processLoopStores()
675 unsigned FirstStoreSize = DL->getTypeStoreSize(SL[i]->getValueOperand()->getType()); in processLoopStores()
679 Heads.insert(SL[i]); in processLoopStores()
706 assert(SL[k]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
707 Value *SecondStorePtr = SL[k]->getPointerOperand(); in processLoopStores()
715 Value *SecondStoredVal = SL[k]->getValueOperand(); in processLoopStores()
727 if (isConsecutiveAccess(SL[i], SL[k], *DL, *SE, false)) { in processLoopStores()
739 Tails.insert(SL[k]); in processLoopStores()
740 Heads.insert(SL[i]); in processLoopStores()
741 ConsecutiveChain[SL[i]] = SL[k]; in processLoopStores()