Lines Matching refs:Ptr

147                                             Value *Ptr, Value *OrigPtr) {  in replaceSymbolicStrideSCEV()  argument
148 const SCEV *OrigSCEV = PSE.getSCEV(Ptr); in replaceSymbolicStrideSCEV()
153 PtrToStride.find(OrigPtr ? OrigPtr : Ptr); in replaceSymbolicStrideSCEV()
166 auto *Expr = PSE.getSCEV(Ptr); in replaceSymbolicStrideSCEV()
190 void RuntimePointerChecking::insert(Loop *Lp, Value *Ptr, bool WritePtr, in insert() argument
195 const SCEV *Sc = replaceSymbolicStrideSCEV(PSE, Strides, Ptr); in insert()
226 Ptr->getType()->getPointerElementType()->getScalarSizeInBits() / 8; in insert()
231 Pointers.emplace_back(Ptr, ScStart, ScEnd, WritePtr, DepSetId, ASId, Sc); in insert()
511 Value *Ptr = const_cast<Value*>(Loc.Ptr); in addLoad() local
512 AST.add(Ptr, LocationSize::unknown(), Loc.AATags); in addLoad()
513 Accesses.insert(MemAccessInfo(Ptr, false)); in addLoad()
515 ReadOnlyPtr.insert(Ptr); in addLoad()
520 Value *Ptr = const_cast<Value*>(Loc.Ptr); in addStore() local
521 AST.add(Ptr, LocationSize::unknown(), Loc.AATags); in addStore()
522 Accesses.insert(MemAccessInfo(Ptr, true)); in addStore()
621 const ValueToValueMap &Strides, Value *Ptr, in hasComputableBounds() argument
623 const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, Strides, Ptr); in hasComputableBounds()
632 AR = PSE.getAsAddRec(Ptr); in hasComputableBounds()
642 const ValueToValueMap &Strides, Value *Ptr, Loop *L) { in isNoWrap() argument
643 const SCEV *PtrScev = PSE.getSCEV(Ptr); in isNoWrap()
647 int64_t Stride = getPtrStride(PSE, Ptr, L, Strides); in isNoWrap()
648 if (Stride == 1 || PSE.hasNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW)) in isNoWrap()
661 Value *Ptr = Access.getPointer(); in createCheckForAccess() local
663 if (!hasComputableBounds(PSE, StridesMap, Ptr, TheLoop, Assume)) in createCheckForAccess()
668 if (ShouldCheckWrap && !isNoWrap(PSE, StridesMap, Ptr, TheLoop)) { in createCheckForAccess()
669 auto *Expr = PSE.getSCEV(Ptr); in createCheckForAccess()
672 PSE.setNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW); in createCheckForAccess()
689 RtCheck.insert(TheLoop, Ptr, IsWrite, DepId, ASId, StridesMap, PSE); in createCheckForAccess()
690 LLVM_DEBUG(dbgs() << "LAA: Found a runtime check ptr:" << *Ptr << '\n'); in createCheckForAccess()
724 Value *Ptr = A.getValue(); in canCheckPtrAtRT() local
725 bool IsWrite = Accesses.count(MemAccessInfo(Ptr, true)); in canCheckPtrAtRT()
726 MemAccessInfo Access(Ptr, IsWrite); in canCheckPtrAtRT()
735 LLVM_DEBUG(dbgs() << "LAA: Can't find bounds for ptr:" << *Ptr << '\n'); in canCheckPtrAtRT()
859 Value *Ptr = AV.getValue(); in processMemAccesses() local
864 if (AC.getPointer() != Ptr) in processMemAccesses()
871 bool IsReadOnlyPtr = ReadOnlyPtr.count(Ptr) && !IsWrite; in processMemAccesses()
877 S.count(MemAccessInfo(Ptr, false))) && in processMemAccesses()
880 MemAccessInfo Access(Ptr, IsWrite); in processMemAccesses()
910 GetUnderlyingObjects(Ptr, TempObjects, DL, LI); in processMemAccesses()
912 << "Underlying objects for pointer " << *Ptr << "\n"); in processMemAccesses()
936 static bool isInBoundsGep(Value *Ptr) { in isInBoundsGep() argument
937 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr)) in isInBoundsGep()
944 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR, in isNoWrapAddRec() argument
958 auto *GEP = dyn_cast<GetElementPtrInst>(Ptr); in isNoWrapAddRec()
991 int64_t llvm::getPtrStride(PredicatedScalarEvolution &PSE, Value *Ptr, in getPtrStride() argument
994 Type *Ty = Ptr->getType(); in getPtrStride()
1001 << *Ptr << "\n"); in getPtrStride()
1005 const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, StridesMap, Ptr); in getPtrStride()
1009 AR = PSE.getAsAddRec(Ptr); in getPtrStride()
1012 LLVM_DEBUG(dbgs() << "LAA: Bad stride - Not an AddRecExpr pointer " << *Ptr in getPtrStride()
1020 << *Ptr << " SCEV: " << *AR << "\n"); in getPtrStride()
1031 bool IsInBoundsGEP = isInBoundsGep(Ptr); in getPtrStride()
1033 PSE.hasNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW) || in getPtrStride()
1034 isNoWrapAddRec(Ptr, AR, PSE, Lp); in getPtrStride()
1039 PSE.setNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW); in getPtrStride()
1042 << "LAA: Pointer: " << *Ptr << "\n" in getPtrStride()
1048 << *Ptr << " SCEV: " << *AR << "\n"); in getPtrStride()
1059 LLVM_DEBUG(dbgs() << "LAA: Bad stride - Not a constant strided " << *Ptr in getPtrStride()
1090 << "LAA: Pointer: " << *Ptr << "\n" in getPtrStride()
1093 PSE.setNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW); in getPtrStride()
1117 for (auto *Ptr : VL) { in sortPtrAccesses() local
1120 if (Ptr->getType()->getPointerAddressSpace() != in sortPtrAccesses()
1125 Value *CurrObj = GetUnderlyingObject(Ptr, DL); in sortPtrAccesses()
1129 const SCEV *Scev = SE.getSCEV(Ptr); in sortPtrAccesses()
1141 OffValPairs.emplace_back(Offset, Ptr); in sortPtrAccesses()
1693 MemoryDepChecker::getInstructionsForAccess(Value *Ptr, bool isWrite) const { in getInstructionsForAccess() argument
1694 MemAccessInfo Access(Ptr, isWrite); in getInstructionsForAccess()
1877 Value *Ptr = ST->getPointerOperand(); in analyzeLoop() local
1879 if (isUniform(Ptr)) in analyzeLoop()
1881 !UniformStores.insert(Ptr).second; in analyzeLoop()
1885 if (Seen.insert(Ptr).second) { in analyzeLoop()
1908 Value *Ptr = LD->getPointerOperand(); in analyzeLoop() local
1918 if (Seen.insert(Ptr).second || in analyzeLoop()
1919 !getPtrStride(*PSE, Ptr, TheLoop, SymbolicStrides)) { in analyzeLoop()
1926 if (UniformStores.count(Ptr)) { in analyzeLoop()
2087 Value *Ptr = PtrRtChecking.Pointers[CG->Members[0]].PointerValue; in expandBounds() local
2088 const SCEV *Sc = SE->getSCEV(Ptr); in expandBounds()
2090 unsigned AS = Ptr->getType()->getPointerAddressSpace(); in expandBounds()
2098 << *Ptr << "\n"); in expandBounds()
2101 Instruction *Inst = dyn_cast<Instruction>(Ptr); in expandBounds()
2104 : Ptr; in expandBounds()
2221 Value *Ptr = nullptr; in collectStridedAccess() local
2223 Ptr = LI->getPointerOperand(); in collectStridedAccess()
2225 Ptr = SI->getPointerOperand(); in collectStridedAccess()
2229 Value *Stride = getStrideFromPointer(Ptr, PSE->getSE(), TheLoop); in collectStridedAccess()
2235 LLVM_DEBUG(dbgs() << " Ptr: " << *Ptr << " Stride: " << *Stride << "\n"); in collectStridedAccess()
2279 SymbolicStrides[Ptr] = Stride; in collectStridedAccess()