Searched refs:BECount (Results 1 - 7 of 7) sorted by relevance

/external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/
H A DLoopIdiomRecognize.cpp79 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount,
82 bool processLoopStore(StoreInst *SI, const SCEV *BECount);
83 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount);
89 const SCEV *BECount);
93 const SCEV *BECount);
185 const SCEV *BECount = SE->getBackedgeTakenCount(L); local
186 if (isa<SCEVCouldNotCompute>(BECount)) return false;
190 if (const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount))
217 MadeChange |= runOnLoopBlock(*BI, BECount, ExitBlocks);
225 bool LoopIdiomRecognize::runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, argument
269 processLoopStore(StoreInst *SI, const SCEV *BECount) argument
328 processLoopMemSet(MemSetInst *MSI, const SCEV *BECount) argument
368 mayLoopAccessLocation(Value *Ptr,AliasAnalysis::ModRefResult Access, Loop *L, const SCEV *BECount, unsigned StoreSize, AliasAnalysis &AA, Instruction *IgnoredStore) argument
440 processLoopStridedStore(Value *DestPtr, unsigned StoreSize, unsigned StoreAlignment, Value *StoredVal, Instruction *TheStore, const SCEVAddRecExpr *Ev, const SCEV *BECount) argument
549 processLoopStoreOfLoopLoad(StoreInst *SI, unsigned StoreSize, const SCEVAddRecExpr *StoreEv, const SCEVAddRecExpr *LoadEv, const SCEV *BECount) argument
[all...]
H A DIndVarSimplify.cpp1432 /// FIXME: Accept -1 stride and set IVLimit = IVInit - BECount
1434 /// FIXME: Accept non-unit stride as long as SCEV can reduce BECount * Stride.
1438 FindLoopCounter(Loop *L, const SCEV *BECount, argument
1440 // I'm not sure how BECount could be a pointer type, but we definitely don't
1442 if (BECount->getType()->isPointerTy())
1445 uint64_t BCWidth = SE->getTypeSizeInBits(BECount->getType());
1465 // AR may be a pointer type, while BECount is an integer type.
1466 // AR may be wider than BECount. With eq/ne tests overflow is immaterial.
1520 // BECount. This avoids materializing the add(zext(add)) expression.
1560 // For unit stride, IVLimit = Start + BECount wit
[all...]
/external/llvm/lib/Transforms/Scalar/
H A DLoopIdiomRecognize.cpp105 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount,
111 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount,
113 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount);
119 const SCEVAddRecExpr *Ev, const SCEV *BECount,
121 bool processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount);
244 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop); local
245 assert(!isa<SCEVCouldNotCompute>(BECount) &&
251 if (const SCEVConstant *BECst = dyn_cast<SCEVConstant>(BECount))
277 MadeChange |= runOnLoopBlock(BB, BECount, ExitBlocks);
460 BasicBlock *BB, const SCEV *BECount,
459 runOnLoopBlock( BasicBlock *BB, const SCEV *BECount, SmallVectorImpl<BasicBlock *> &ExitBlocks) argument
507 processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount, bool ForMemset) argument
647 processLoopMemSet(MemSetInst *MSI, const SCEV *BECount) argument
699 mayLoopAccessLocation(Value *Ptr, ModRefInfo Access, Loop *L, const SCEV *BECount, unsigned StoreSize, AliasAnalysis &AA, SmallPtrSetImpl<Instruction *> &IgnoredStores) argument
732 getStartForNegStride(const SCEV *Start, const SCEV *BECount, Type *IntPtr, unsigned StoreSize, ScalarEvolution *SE) argument
744 processLoopStridedStore( Value *DestPtr, unsigned StoreSize, unsigned StoreAlignment, Value *StoredVal, Instruction *TheStore, SmallPtrSetImpl<Instruction *> &Stores, const SCEVAddRecExpr *Ev, const SCEV *BECount, bool NegStride) argument
845 processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount) argument
[all...]
H A DIndVarSimplify.cpp1732 /// BECount may be an i8* pointer type. The pointer difference is already
1738 /// FIXME: Accept -1 stride and set IVLimit = IVInit - BECount
1740 /// FIXME: Accept non-unit stride as long as SCEV can reduce BECount * Stride.
1743 static PHINode *FindLoopCounter(Loop *L, const SCEV *BECount, argument
1745 uint64_t BCWidth = SE->getTypeSizeInBits(BECount->getType());
1763 if (BECount->getType()->isPointerTy() && !Phi->getType()->isPointerTy())
1770 // AR may be a pointer type, while BECount is an integer type.
1771 // AR may be wider than BECount. With eq/ne tests overflow is immaterial.
1833 // finds a valid pointer IV. Sign extend BECount in order to materialize a
1867 // BECount
[all...]
/external/llvm/lib/Transforms/Utils/
H A DLoopUnrollRuntime.cpp62 static void ConnectProlog(Loop *L, Value *BECount, unsigned Count, argument
122 // If BECount <u (Count - 1) then (BECount + 1) % Count == (BECount + 1)
123 // This means %xtraiter is (BECount + 1) and all of the iterations of this
124 // loop were executed by the prologue. Note that if BECount <u (Count - 1)
125 // then (BECount + 1) cannot unsigned-overflow.
127 B.CreateICmpULT(BECount, ConstantInt::get(BECount->getType(), Count - 1));
546 Value *BECount local
[all...]
/external/swiftshader/third_party/LLVM/lib/Analysis/
H A DScalarEvolution.cpp4166 const SCEV *BECount = 0;
4172 if (!BECount)
4173 BECount = ENT->ExactNotTaken;
4175 BECount = SE->getUMinFromMismatchedTypes(BECount, ENT->ExactNotTaken);
4177 assert(BECount && "Invalid not taken count for loop exit");
4178 return BECount;
4343 const SCEV *BECount = getCouldNotCompute();
4350 BECount = getCouldNotCompute();
4352 BECount
[all...]
/external/llvm/lib/Analysis/
H A DScalarEvolution.cpp1280 const SCEV *BECount = SE->getBackedgeTakenCount(L); local
1282 !isa<SCEVCouldNotCompute>(BECount) && SE->isKnownPositive(BECount))
5542 const SCEV *BECount = nullptr;
5546 if (!BECount)
5547 BECount = ENT.ExactNotTaken;
5548 else if (BECount != ENT.ExactNotTaken)
5557 assert(BECount && "Invalid not taken count for loop exit");
5558 return BECount;
5819 const SCEV *BECount
[all...]

Completed in 232 milliseconds