Lines Matching refs:SL
199 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
565 for (auto &SL : StoreRefsForMemset) in runOnLoopBlock() local
566 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::Yes); in runOnLoopBlock()
568 for (auto &SL : StoreRefsForMemsetPattern) in runOnLoopBlock() local
569 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::No); in runOnLoopBlock()
584 bool LoopIdiomRecognize::processLoopStores(SmallVectorImpl<StoreInst *> &SL, in processLoopStores() argument
593 for (unsigned i = 0, e = SL.size(); i < e; ++i) { in processLoopStores()
594 assert(SL[i]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
596 Value *FirstStoredVal = SL[i]->getValueOperand(); in processLoopStores()
597 Value *FirstStorePtr = SL[i]->getPointerOperand(); in processLoopStores()
601 unsigned FirstStoreSize = DL->getTypeStoreSize(SL[i]->getValueOperand()->getType()); in processLoopStores()
605 Heads.insert(SL[i]); in processLoopStores()
632 assert(SL[k]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
633 Value *SecondStorePtr = SL[k]->getPointerOperand(); in processLoopStores()
641 Value *SecondStoredVal = SL[k]->getValueOperand(); in processLoopStores()
653 if (isConsecutiveAccess(SL[i], SL[k], *DL, *SE, false)) { in processLoopStores()
665 Tails.insert(SL[k]); in processLoopStores()
666 Heads.insert(SL[i]); in processLoopStores()
667 ConsecutiveChain[SL[i]] = SL[k]; in processLoopStores()