Lines Matching defs:SCEV

191   bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount,
197 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
203 bool (LoopIdiomRecognize::*Processor)(MemInst *, const SCEV *),
204 const SCEV *BECount);
205 bool processLoopMemCpy(MemCpyInst *MCI, const SCEV *BECount);
206 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount);
208 bool processLoopStridedStore(Value *DestPtr, const SCEV *StoreSizeSCEV,
212 const SCEVAddRecExpr *Ev, const SCEV *BECount,
214 bool processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount);
216 const SCEV *StoreSize, MaybeAlign StoreAlign,
221 const SCEV *BECount);
318 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop);
554 BasicBlock *BB, const SCEV *BECount,
590 const SCEV *BECount, ForMemset For) {
718 const SCEV *StoreSizeSCEV = SE->getConstant(IntIdxTy, StoreSize);
736 bool (LoopIdiomRecognize::*Processor)(MemInst *, const SCEV *),
737 const SCEV *BECount) {
759 const SCEV *BECount) {
828 const SCEV *BECount) {
850 const SCEV *PointerStrideSCEV = Ev->getOperand(1);
851 const SCEV *MemsetSizeSCEV = SE->getSCEV(MSI->getLength());
893 const SCEV *PositiveStrideSCEV =
903 const SCEV *FoldedPositiveStride =
905 const SCEV *FoldedMemsetSize =
908 LLVM_DEBUG(dbgs() << " Try to fold SCEV based on loop guard\n"
914 LLVM_DEBUG(dbgs() << " SCEV don't match, abort\n");
938 const SCEV *BECount, const SCEV *StoreSizeSCEV,
975 static const SCEV *getStartForNegStride(const SCEV *Start, const SCEV *BECount,
976 Type *IntPtr, const SCEV *StoreSizeSCEV,
978 const SCEV *Index = SE->getTruncateOrZeroExtend(BECount, IntPtr);
983 SCEV::FlagNUW);
989 /// Compute the number of bytes as a SCEV from the backedge taken count.
991 /// This also maps the SCEV into the provided type and tries to handle the
993 static const SCEV *getNumBytes(const SCEV *BECount, Type *IntPtr,
994 const SCEV *StoreSizeSCEV, Loop *CurLoop,
996 const SCEV *TripCountSCEV =
1000 SCEV::FlagNUW);
1006 Value *DestPtr, const SCEV *StoreSizeSCEV, MaybeAlign StoreAlignment,
1009 const SCEV *BECount, bool IsNegStride, bool IsLoopMemset) {
1020 // The trip count of the loop and the base pointer of the addrec SCEV is
1033 const SCEV *Start = Ev->getStart();
1038 // TODO: ideally we should still be able to generate memset if SCEV expander
1069 const SCEV *NumBytesS =
1072 // TODO: ideally we should still be able to generate memset if SCEV expander
1174 const SCEV *BECount) {
1191 const SCEV *StoreSizeSCEV = SE->getConstant(StorePtr->getType(), StoreSize);
1244 Value *DestPtr, Value *SourcePtr, const SCEV *StoreSizeSCEV,
1247 const SCEVAddRecExpr *LoadEv, const SCEV *BECount) {
1255 // The trip count of the loop and the base pointer of the addrec SCEV is
1265 const SCEV *StrStart = StoreEv->getStart();
1332 const SCEV *LdStart = LoadEv->getStart();
1373 const SCEV *NumBytesS =
2267 // step 4: Forget the "non-computable" trip-count SCEV associated with the
2374 // step 5: Forget the "non-computable" trip-count SCEV associated with the
2733 // Step 5: Forget the "non-computable" trip-count SCEV associated with the
2778 const SCEV *&ExtraOffsetExpr,
2949 const SCEV *ExtraOffsetExpr;
3069 // Step 4: Forget the "non-computable" trip-count SCEV associated with the