Lines Matching refs:BECount
191 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount,
197 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
204 const SCEV *BECount);
205 bool processLoopMemCpy(MemCpyInst *MCI, const SCEV *BECount);
206 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount);
212 const SCEVAddRecExpr *Ev, const SCEV *BECount,
214 bool processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount);
221 const SCEV *BECount);
318 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop); in runOnCountableLoop() local
319 assert(!isa<SCEVCouldNotCompute>(BECount) && in runOnCountableLoop()
325 if (const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount)) in runOnCountableLoop()
352 MadeChange |= runOnLoopBlock(BB, BECount, ExitBlocks); in runOnCountableLoop()
554 BasicBlock *BB, const SCEV *BECount, in runOnLoopBlock() argument
571 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::Yes); in runOnLoopBlock()
574 MadeChange |= processLoopStores(SL.second, BECount, ForMemset::No); in runOnLoopBlock()
578 MadeChange |= processLoopStoreOfLoopLoad(SI, BECount); in runOnLoopBlock()
581 BB, &LoopIdiomRecognize::processLoopMemCpy, BECount); in runOnLoopBlock()
583 BB, &LoopIdiomRecognize::processLoopMemSet, BECount); in runOnLoopBlock()
590 const SCEV *BECount, ForMemset For) { in processLoopStores() argument
721 HeadStore, AdjacentStores, StoreEv, BECount, in processLoopStores()
737 const SCEV *BECount) { in processLoopMemIntrinsic() argument
744 if (!(this->*Processor)(MI, BECount)) in processLoopMemIntrinsic()
759 const SCEV *BECount) { in processLoopMemCpy() argument
823 BECount); in processLoopMemCpy()
828 const SCEV *BECount) { in processLoopMemSet() argument
930 BECount, IsNegStride, /*IsLoopMemset=*/true); in processLoopMemSet()
938 const SCEV *BECount, const SCEV *StoreSizeSCEV, in mayLoopAccessLocation() argument
948 const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount); in mayLoopAccessLocation()
975 static const SCEV *getStartForNegStride(const SCEV *Start, const SCEV *BECount, in getStartForNegStride() argument
978 const SCEV *Index = SE->getTruncateOrZeroExtend(BECount, IntPtr); in getStartForNegStride()
993 static const SCEV *getNumBytes(const SCEV *BECount, Type *IntPtr, in getNumBytes() argument
997 SE->getTripCountFromExitCount(BECount, IntPtr, CurLoop); in getNumBytes()
1009 const SCEV *BECount, bool IsNegStride, bool IsLoopMemset) { in processLoopStridedStore() argument
1036 Start = getStartForNegStride(Start, BECount, IntIdxTy, StoreSizeSCEV, SE); in processLoopStridedStore()
1060 if (mayLoopAccessLocation(BasePtr, ModRefInfo::ModRef, CurLoop, BECount, in processLoopStridedStore()
1070 getNumBytes(BECount, IntIdxTy, StoreSizeSCEV, CurLoop, DL, SE); in processLoopStridedStore()
1174 const SCEV *BECount) { in processLoopStoreOfLoopLoad() argument
1194 StoreEv, LoadEv, BECount); in processLoopStoreOfLoopLoad()
1247 const SCEVAddRecExpr *LoadEv, const SCEV *BECount) { in processLoopStoreOfLoopLoad() argument
1281 getStartForNegStride(StrStart, BECount, IntIdxTy, StoreSizeSCEV, SE); in processLoopStoreOfLoopLoad()
1308 mayLoopAccessLocation(StoreBasePtr, ModRefInfo::ModRef, CurLoop, BECount, in processLoopStoreOfLoopLoad()
1318 BECount, StoreSizeSCEV, *AA, IgnoredInsts)) { in processLoopStoreOfLoopLoad()
1338 getStartForNegStride(LdStart, BECount, IntIdxTy, StoreSizeSCEV, SE); in processLoopStoreOfLoopLoad()
1350 if (mayLoopAccessLocation(LoadBasePtr, ModRefInfo::Mod, CurLoop, BECount, in processLoopStoreOfLoopLoad()
1374 getNumBytes(BECount, IntIdxTy, StoreSizeSCEV, CurLoop, DL, SE); in processLoopStoreOfLoopLoad()