Lines Matching refs:SL
111 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
476 for (auto &SL : StoreRefsForMemset) in runOnLoopBlock() local
477 MadeChange |= processLoopStores(SL.second, BECount, true); in runOnLoopBlock()
479 for (auto &SL : StoreRefsForMemsetPattern) in runOnLoopBlock() local
480 MadeChange |= processLoopStores(SL.second, BECount, false); in runOnLoopBlock()
507 bool LoopIdiomRecognize::processLoopStores(SmallVectorImpl<StoreInst *> &SL, in processLoopStores() argument
517 for (unsigned i = 0, e = SL.size(); i < e; ++i) { in processLoopStores()
518 assert(SL[i]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
520 Value *FirstStoredVal = SL[i]->getValueOperand(); in processLoopStores()
521 Value *FirstStorePtr = SL[i]->getPointerOperand(); in processLoopStores()
525 unsigned FirstStoreSize = getStoreSizeInBytes(SL[i], DL); in processLoopStores()
529 Heads.insert(SL[i]); in processLoopStores()
556 assert(SL[k]->isSimple() && "Expected only non-volatile stores."); in processLoopStores()
557 Value *SecondStorePtr = SL[k]->getPointerOperand(); in processLoopStores()
565 Value *SecondStoredVal = SL[k]->getValueOperand(); in processLoopStores()
577 if (isConsecutiveAccess(SL[i], SL[k], *DL, *SE, false)) { in processLoopStores()
585 Tails.insert(SL[k]); in processLoopStores()
586 Heads.insert(SL[i]); in processLoopStores()
587 ConsecutiveChain[SL[i]] = SL[k]; in processLoopStores()