Lines Matching defs:BECount

190   bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount,
196 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
203 const SCEV *BECount);
204 bool processLoopMemCpy(MemCpyInst *MCI, const SCEV *BECount);
205 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount);
211 const SCEVAddRecExpr *Ev, const SCEV *BECount,
213 bool processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount);
220 const SCEV *BECount);
317 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop);
318 assert(!isa<SCEVCouldNotCompute>(BECount) &&
324 if (const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount))
351 MadeChange |= runOnLoopBlock(BB, BECount, ExitBlocks);
553 BasicBlock *BB, const SCEV *BECount,
570 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::Yes);
573 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::No);
577 MadeChange |= processLoopStoreOfLoopLoad(SI, BECount);
580 BB, &LoopIdiomRecognize::processLoopMemCpy, BECount);
582 BB, &LoopIdiomRecognize::processLoopMemSet, BECount);
589 const SCEV *BECount, ForMemset For) {
720 HeadStore, AdjacentStores, StoreEv, BECount,
736 const SCEV *BECount) {
743 if (!(this->*Processor)(MI, BECount))
758 const SCEV *BECount) {
822 BECount);
827 const SCEV *BECount) {
929 BECount, IsNegStride, /*IsLoopMemset=*/true);
937 const SCEV *BECount, const SCEV *StoreSizeSCEV,
946 // to be exactly the size of the memset, which is (BECount+1)*StoreSize
947 const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount);
973 // which is just Start - BECount*Size.
974 static const SCEV *getStartForNegStride(const SCEV *Start, const SCEV *BECount,
977 const SCEV *Index = SE->getTruncateOrZeroExtend(BECount, IntPtr);
992 static const SCEV *getNumBytes(const SCEV *BECount, Type *IntPtr,
996 SE->getTripCountFromExitCount(BECount, IntPtr, CurLoop);
1008 const SCEV *BECount, bool IsNegStride, bool IsLoopMemset) {
1035 Start = getStartForNegStride(Start, BECount, IntIdxTy, StoreSizeSCEV, SE);
1059 if (mayLoopAccessLocation(BasePtr, ModRefInfo::ModRef, CurLoop, BECount,
1069 getNumBytes(BECount, IntIdxTy, StoreSizeSCEV, CurLoop, DL, SE);
1173 const SCEV *BECount) {
1193 StoreEv, LoadEv, BECount);
1246 const SCEVAddRecExpr *LoadEv, const SCEV *BECount) {
1280 getStartForNegStride(StrStart, BECount, IntIdxTy, StoreSizeSCEV, SE);
1307 mayLoopAccessLocation(StoreBasePtr, ModRefInfo::ModRef, CurLoop, BECount,
1317 BECount, StoreSizeSCEV, *AA, IgnoredInsts)) {
1337 getStartForNegStride(LdStart, BECount, IntIdxTy, StoreSizeSCEV, SE);
1349 if (mayLoopAccessLocation(LoadBasePtr, ModRefInfo::Mod, CurLoop, BECount,
1395 getNumBytes(BECount, IntIdxTy, StoreSizeSCEV, CurLoop, DL, SE);