|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
tools/polly/include/polly/CodeGen/BlockGenerators.h 25 class MemoryAccess;
tools/polly/include/polly/ScheduleOptimizer.h 44 class MemoryAccess;
tools/polly/include/polly/ScopInfo.h 46 class MemoryAccess;
tools/polly/include/polly/Simplify.h 25 class MemoryAccess;
tools/polly/include/polly/ZoneAlgo.h 33 class MemoryAccess;
References
include/llvm/ADT/ArrayRef.h 108 const ArrayRef<U *> &A,
110 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
118 const SmallVectorTemplateCommon<U *, DummyT> &Vec,
120 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
tools/polly/include/polly/CodeGen/BlockGenerators.h 105 Value *getOrCreateAlloca(const MemoryAccess &Access);
529 Value *getImplicitAddress(MemoryAccess &Access, Loop *L, LoopToScevMapT <S,
926 PHINode *buildExitPHI(MemoryAccess *MA, LoopToScevMapT <S, ValueMapT &BBMap,
939 Value *getExitScalar(MemoryAccess *MA, LoopToScevMapT <S, ValueMapT &BBMap);
tools/polly/include/polly/CodeGen/IslAst.h 75 using MemoryAccessSet = SmallPtrSet<MemoryAccess *, 4>;
tools/polly/include/polly/CodeGen/IslNodeBuilder.h 309 Value *preloadInvariantLoad(const MemoryAccess &MA,
tools/polly/include/polly/DependenceInfo.h 51 using ReductionDependencesMapTy = DenseMap<MemoryAccess *, isl_map *>;
99 __isl_give isl_map *getReductionDependences(MemoryAccess *MA) const;
164 void setReductionDependences(MemoryAccess *MA, __isl_take isl_map *Deps);
tools/polly/include/polly/ScheduleOptimizer.h 61 MemoryAccess *A = nullptr;
62 MemoryAccess *B = nullptr;
63 MemoryAccess *ReadFromC = nullptr;
64 MemoryAccess *WriteToC = nullptr;
tools/polly/include/polly/ScopBuilder.h 414 using AliasGroupTy = SmallVector<MemoryAccess *, 4>;
543 MemoryAccess *addMemoryAccess(ScopStmt *Stmt, Instruction *Inst,
544 MemoryAccess::AccessType AccType,
565 MemoryAccess::AccessType AccType, Value *BaseAddress,
692 bool canAlwaysBeHoisted(MemoryAccess *MA, bool StmtInvalidCtxIsEmpty,
702 bool hasNonHoistableBasePtrInScop(MemoryAccess *MA, isl::union_map Writes);
711 isl::set getNonHoistableCtx(MemoryAccess *Access, isl::union_map Writes);
723 void collectCandidateReductionLoads(MemoryAccess *StoreMA,
724 SmallVectorImpl<MemoryAccess *> &Loads);
tools/polly/include/polly/ScopInfo.h 205 using AccFuncVector = std::vector<std::unique_ptr<MemoryAccess>>;
737 MemoryAccess(const MemoryAccess &) = delete;
738 MemoryAccess &operator=(const MemoryAccess &) = delete;
738 MemoryAccess &operator=(const MemoryAccess &) = delete;
770 bool isRead() const { return AccType == MemoryAccess::READ; }
773 bool isMustWrite() const { return AccType == MemoryAccess::MUST_WRITE; }
776 bool isMayWrite() const { return AccType == MemoryAccess::MAY_WRITE; }
1101 raw_ostream &operator<<(raw_ostream &OS, MemoryAccess::ReductionType RT);
1104 using MemoryAccessList = std::forward_list<MemoryAccess *>;
1109 MemoryAccess *MA;
1224 using MemoryAccessVec = SmallVector<MemoryAccess *, 8>;
1232 DenseMap<Value *, MemoryAccess *> ValueReads;
1236 DenseMap<Instruction *, MemoryAccess *> ValueWrites;
1245 DenseMap<PHINode *, MemoryAccess *> PHIWrites;
1248 DenseMap<PHINode *, MemoryAccess *> PHIReads;
1282 void removeAccessData(MemoryAccess *MA);
1425 MemoryAccess *getArrayAccessOrNULLFor(const Instruction *Inst) const {
1430 MemoryAccess *ArrayAccess = nullptr;
1448 MemoryAccess &getArrayAccessFor(const Instruction *Inst) const {
1449 MemoryAccess *ArrayAccess = getArrayAccessOrNULLFor(Inst);
1458 MemoryAccess *lookupValueWriteOf(Instruction *Inst) const {
1466 MemoryAccess *lookupValueReadOf(Value *Inst) const {
1472 MemoryAccess *lookupPHIReadOf(PHINode *PHI) const {
1479 MemoryAccess *lookupPHIWriteOf(PHINode *PHI) const {
1491 MemoryAccess *lookupInputAccessOf(Value *Val) const {
1500 if (auto *InputMA = lookupValueReadOf(Val))
1511 void addAccess(MemoryAccess *Access, bool Preprend = false);
1517 void removeMemoryAccess(MemoryAccess *MA);
1529 void removeSingleMemoryAccess(MemoryAccess *MA, bool AfterHoisting = true);
1616 MemoryAccess *ensureValueRead(Value *V);
1928 DenseMap<Value *, MemoryAccess *> ValueDefAccs;
1931 DenseMap<PHINode *, MemoryAccess *> PHIReadAccs;
1935 DenseMap<const ScopArrayInfo *, SmallVector<MemoryAccess *, 4>> ValueUseAccs;
1939 DenseMap<const ScopArrayInfo *, SmallVector<MemoryAccess *, 4>>
1959 MemoryAccess *lookupBasePtrAccess(MemoryAccess *MA);
1959 MemoryAccess *lookupBasePtrAccess(MemoryAccess *MA);
2026 getAccessesOfType(std::function<bool(MemoryAccess &)> Predicate);
2067 void addAccessFunction(MemoryAccess *Access) {
2084 void addAccessData(MemoryAccess *Access);
2099 void removeAccessData(MemoryAccess *Access);
2722 MemoryAccess *getValueDef(const ScopArrayInfo *SAI) const;
2726 ArrayRef<MemoryAccess *> getValueUses(const ScopArrayInfo *SAI) const;
2732 MemoryAccess *getPHIRead(const ScopArrayInfo *SAI) const;
2736 ArrayRef<MemoryAccess *> getPHIIncomings(const ScopArrayInfo *SAI) const;
tools/polly/include/polly/Simplify.h 42 llvm::SmallVector<MemoryAccess *, 32> getAccessesInOrder(ScopStmt &Stmt);
tools/polly/include/polly/Support/VirtualInstruction.h 82 MemoryAccess *InputMA;
85 MemoryAccess *InputMA)
150 MemoryAccess *getMemoryAccess() const { return InputMA; }
307 DenseSet<MemoryAccess *> &UsedAccs,
tools/polly/include/polly/ZoneAlgo.h 186 void addArrayReadAccess(MemoryAccess *MA);
193 isl::union_map getWrittenValue(MemoryAccess *MA, isl::map AccRel);
195 void addArrayWriteAccess(MemoryAccess *MA);
231 isl::map getScatterFor(MemoryAccess *MA) const;
243 isl::set getDomainFor(MemoryAccess *MA) const;
248 isl::map getAccessRelationFor(MemoryAccess *MA) const;
348 bool isCompatibleAccess(MemoryAccess *MA);
365 bool isNormalizable(MemoryAccess *MA);
tools/polly/lib/Analysis/DependenceInfo.cpp 101 static __isl_give isl_map *tag(__isl_take isl_map *Relation, MemoryAccess *MA,
129 for (MemoryAccess *MA : Stmt)
134 for (MemoryAccess *MA : Stmt) {
531 for (MemoryAccess *MA : Stmt) {
576 for (MemoryAccess *MA : Stmt) {
807 Dependences::getReductionDependences(MemoryAccess *MA) const {
811 void Dependences::setReductionDependences(MemoryAccess *MA, isl_map *D) {
tools/polly/lib/Analysis/ScopBuilder.cpp 1608 enum MemoryAccess::AccessType AccType =
1609 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1609 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1681 enum MemoryAccess::AccessType AccType =
1682 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1682 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1763 addArrayAccess(Stmt, Inst, MemoryAccess::MUST_WRITE, DestPtrSCEV->getValue(),
1785 addArrayAccess(Stmt, Inst, MemoryAccess::READ, SrcPtrSCEV->getValue(),
1821 auto AccType = ReadOnly ? MemoryAccess::READ : MemoryAccess::MAY_WRITE;
1821 auto AccType = ReadOnly ? MemoryAccess::READ : MemoryAccess::MAY_WRITE;
1846 enum MemoryAccess::AccessType AccType =
1847 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1847 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE;
1879 if (!IsAffine && AccType == MemoryAccess::MUST_WRITE)
1880 AccType = MemoryAccess::MAY_WRITE;
2262 MemoryAccess *ScopBuilder::addMemoryAccess(
2263 ScopStmt *Stmt, Instruction *Inst, MemoryAccess::AccessType AccType,
2289 if (!isKnownMustAccess && AccType == MemoryAccess::MUST_WRITE)
2290 AccType = MemoryAccess::MAY_WRITE;
2292 auto *Access = new MemoryAccess(Stmt, Inst, AccType, BaseAddress, ElementType,
2292 auto *Access = new MemoryAccess(Stmt, Inst, AccType, BaseAddress, ElementType,
2301 MemoryAccess::AccessType AccType,
2308 auto *MemAccess = addMemoryAccess(Stmt, MemAccInst, AccType, BaseAddress,
2450 for (MemoryAccess *MemAcc : Stmt) {
2477 for (MemoryAccess *Access : Stmt) {
2531 addMemoryAccess(Stmt, Inst, MemoryAccess::MUST_WRITE, Inst, Inst->getType(),
2570 addMemoryAccess(UserStmt, nullptr, MemoryAccess::READ, V, V->getType(),
2604 if (MemoryAccess *Acc = IncomingStmt->lookupPHIWriteOf(PHI)) {
2610 MemoryAccess *Acc = addMemoryAccess(
2611 IncomingStmt, PHI, MemoryAccess::MUST_WRITE, PHI, PHI->getType(), true,
2619 addMemoryAccess(PHIStmt, PHI, MemoryAccess::READ, PHI, PHI->getType(), true,
2651 static MemoryAccess::ReductionType getReductionType(const BinaryOperator *BinOp,
2654 return MemoryAccess::RT_NONE;
2658 return MemoryAccess::RT_NONE;
2661 return MemoryAccess::RT_ADD;
2663 return MemoryAccess::RT_BOR;
2665 return MemoryAccess::RT_BXOR;
2667 return MemoryAccess::RT_BAND;
2670 return MemoryAccess::RT_NONE;
2674 return MemoryAccess::RT_NONE;
2675 return MemoryAccess::RT_MUL;
2677 return MemoryAccess::RT_NONE;
2682 SmallVector<MemoryAccess *, 2> Loads;
2683 SmallVector<std::pair<MemoryAccess *, MemoryAccess *>, 4> Candidates;
2683 SmallVector<std::pair<MemoryAccess *, MemoryAccess *>, 4> Candidates;
2687 for (MemoryAccess *StoreMA : Stmt) {
2693 for (MemoryAccess *LoadMA : Loads)
2713 for (MemoryAccess *MA : Stmt) {
2732 MemoryAccess::ReductionType RT =
2764 for (MemoryAccess *Access : Stmt)
2801 bool ScopBuilder::hasNonHoistableBasePtrInScop(MemoryAccess *MA,
2803 if (auto *BasePtrMA = scop->lookupBasePtrAccess(MA)) {
2854 isl::set ScopBuilder::getNonHoistableCtx(MemoryAccess *Access,
2931 bool ScopBuilder::canAlwaysBeHoisted(MemoryAccess *MA,
2993 auto *MA = InvMA.MA;
3013 auto *MA = InvMA.MA;
3050 auto *LastMA = MAs.front();
3088 MemoryAccess *StoreMA, SmallVectorImpl<MemoryAccess *> &Loads) {
3088 MemoryAccess *StoreMA, SmallVectorImpl<MemoryAccess *> &Loads) {
3139 for (MemoryAccess *Access : Accesses) {
3151 for (MemoryAccess *Access2 : EqClass2.InvariantAccesses)
3162 for (MemoryAccess *Access : Stmt) {
3183 for (MemoryAccess *BasePtrAccess : BasePtrAccesses) {
3204 for (MemoryAccess *Access : Stmt.MemAccs) {
3301 for (MemoryAccess *MA : AliasGroup)
3317 static isl::set getAccessDomain(MemoryAccess *MA) {
3354 DenseMap<Value *, MemoryAccess *> PtrToAcc;
3365 for (MemoryAccess *MA : Stmt) {
3436 for (MemoryAccess *Access : AliasGroup) {
3461 for (MemoryAccess *MA : AliasGroup) {
3471 for (MemoryAccess *MA : AliasGroup) {
3472 if (MemoryAccess *BasePtrMA = scop->lookupBasePtrAccess(MA))
3512 MemoryAccess *MA = *AGI;
3655 addArrayAccess(GlobalReadStmt, MemAccInst(GlobalRead), MemoryAccess::READ,
tools/polly/lib/Analysis/ScopInfo.cpp 551 MemoryAccess::getReductionOperatorStr(MemoryAccess::ReductionType RT) {
553 case MemoryAccess::RT_NONE:
556 case MemoryAccess::RT_ADD:
558 case MemoryAccess::RT_MUL:
560 case MemoryAccess::RT_BOR:
562 case MemoryAccess::RT_BXOR:
564 case MemoryAccess::RT_BAND:
931 return MemoryAccess::getReductionOperatorStr(getReductionType());
937 MemoryAccess::ReductionType RT) {
938 if (RT == MemoryAccess::RT_NONE)
941 OS << MemoryAccess::getReductionOperatorStr(RT);
1144 void ScopStmt::addAccess(MemoryAccess *Access, bool Prepend) {
1180 for (MemoryAccess *MA : *this)
1211 auto *Access =
1212 new MemoryAccess(this, MemoryAccess::AccessType::MUST_WRITE, TargetRel);
1212 new MemoryAccess(this, MemoryAccess::AccessType::MUST_WRITE, TargetRel);
1216 Access = new MemoryAccess(this, MemoryAccess::AccessType::READ, SourceRel);
1216 Access = new MemoryAccess(this, MemoryAccess::AccessType::READ, SourceRel);
1283 for (MemoryAccess *Access : MemAccs)
1294 void ScopStmt::removeAccessData(MemoryAccess *MA) {
1317 void ScopStmt::removeMemoryAccess(MemoryAccess *MA) {
1327 for (auto *MA : MemAccs) {
1338 void ScopStmt::removeSingleMemoryAccess(MemoryAccess *MA, bool AfterHoisting) {
1356 MemoryAccess *ScopStmt::ensureValueRead(Value *V) {
1357 MemoryAccess *Access = lookupInputAccessOf(V);
1363 Access = new MemoryAccess(this, nullptr, MemoryAccess::READ, V, V->getType(),
1363 Access = new MemoryAccess(this, nullptr, MemoryAccess::READ, V, V->getType(),
1748 SmallVector<MemoryAccess *, 16> MAList(StmtIt->begin(), StmtIt->end());
1749 for (MemoryAccess *MA : MAList)
1778 for (MemoryAccess *MA : Stmt) {
1809 for (auto *MA : MAs)
1946 for (auto *MA : Stmt) {
1985 MemoryAccess *Scop::lookupBasePtrAccess(MemoryAccess *MA) {
1985 MemoryAccess *Scop::lookupBasePtrAccess(MemoryAccess *MA) {
2282 Scop::getAccessesOfType(std::function<bool(MemoryAccess &)> Predicate) {
2286 for (MemoryAccess *MA : Stmt) {
2484 void Scop::addAccessData(MemoryAccess *Access) {
2494 void Scop::removeAccessData(MemoryAccess *Access) {
2511 MemoryAccess *Scop::getValueDef(const ScopArrayInfo *SAI) const {
2521 ArrayRef<MemoryAccess *> Scop::getValueUses(const ScopArrayInfo *SAI) const {
2529 MemoryAccess *Scop::getPHIRead(const ScopArrayInfo *SAI) const {
2539 ArrayRef<MemoryAccess *> Scop::getPHIIncomings(const ScopArrayInfo *SAI) const {
2582 for (MemoryAccess *MA : Stmt) {
tools/polly/lib/CodeGen/BlockGenerators.cpp 259 const MemoryAccess &MA = Stmt.getArrayAccessFor(Inst);
295 BlockGenerator::getImplicitAddress(MemoryAccess &Access, Loop *L,
332 MemoryAccess &MA = Stmt.getArrayAccessFor(Store);
469 Value *BlockGenerator::getOrCreateAlloca(const MemoryAccess &Access) {
559 for (MemoryAccess *MA : Stmt) {
764 for (MemoryAccess *MA : Stmt) {
1140 const MemoryAccess &Access = Stmt.getArrayAccessFor(Load);
1192 const MemoryAccess &Access = Stmt.getArrayAccessFor(Store);
1336 for (MemoryAccess *MA : Stmt) {
1355 for (MemoryAccess *MA : Stmt) {
1621 PHINode *RegionGenerator::buildExitPHI(MemoryAccess *MA, LoopToScevMapT <S,
1662 Value *RegionGenerator::getExitScalar(MemoryAccess *MA, LoopToScevMapT <S,
1703 SmallDenseMap<MemoryAccess *, Value *> NewExitScalars;
1704 for (MemoryAccess *MA : Stmt) {
1712 for (MemoryAccess *MA : Stmt) {
tools/polly/lib/CodeGen/IslAst.cpp 152 std::map<MemoryAccess::ReductionType, std::string> Clauses;
153 for (MemoryAccess *MA : *BrokenReductions)
162 str += MemoryAccess::getReductionOperatorStr(ReductionClause.first);
688 for (MemoryAccess *MemAcc : *AccessStmt) {
tools/polly/lib/CodeGen/IslNodeBuilder.cpp 753 for (auto *MA : *Stmt) {
842 for (auto *MA : *Stmt) {
1227 Value *IslNodeBuilder::preloadInvariantLoad(const MemoryAccess &MA,
1327 MemoryAccess *MA = MAs.front();
1384 for (const MemoryAccess *MA : MAs) {
1409 for (const MemoryAccess *MA : MAs) {
1425 for (const MemoryAccess *MA : MAs) {
tools/polly/lib/Exchange/JSONExporter.cpp 157 for (MemoryAccess *MA : Stmt) {
386 for (MemoryAccess *MA : Stmt) {
tools/polly/lib/Support/VirtualInstruction.cpp 37 MemoryAccess *IncomingMA = nullptr;
80 MemoryAccess *InputMA = nullptr;
191 static bool isEscaping(MemoryAccess *MA) {
228 SmallVectorImpl<MemoryAccess *> &RootAccs,
230 for (auto *MA : *Stmt) {
258 SmallVectorImpl<MemoryAccess *> &RootAccs, bool Local) {
277 ArrayRef<MemoryAccess *> RootAccs,
279 DenseSet<MemoryAccess *> &UsedAccs,
285 SmallVector<MemoryAccess *, 32> WorklistAccs;
319 auto *Acc = WorklistAccs.pop_back_val();
333 MemoryAccess *DefAcc = S->getValueDef(SAI);
387 if (MemoryAccess *PHIRead = Stmt->lookupPHIReadOf(PHI))
399 for (MemoryAccess *Acc : *Accs)
406 DenseSet<MemoryAccess *> &UsedAccs,
409 SmallVector<MemoryAccess *, 32> RootAccs;
tools/polly/lib/Transform/DeLICM.cpp 555 auto *MA = S->getValueDef(SAI);
583 auto *MA = S->getPHIRead(SAI);
621 for (auto *MA : S->getValueUses(SAI))
627 auto *DefMA = S->getValueDef(SAI);
667 auto *DefMA = S->getValueDef(SAI);
768 for (auto *MA : S->getValueUses(SAI)) {
780 auto *WA = S->getValueDef(SAI);
807 for (auto *MA : S->getPHIIncomings(SAI)) {
843 auto *PHIRead = S->getPHIRead(SAI);
878 for (auto *MA : S->getPHIIncomings(SAI))
969 for (auto *MA : S->getPHIIncomings(SAI)) {
984 auto *PHIRead = S->getPHIRead(SAI);
1002 bool collapseScalarsToStore(MemoryAccess *TargetStoreMA) {
1026 SmallVector<MemoryAccess *, 16> Worklist;
1033 for (auto *MA : *Stmt) {
1044 if (auto *WrittenValInputMA = TargetStmt->lookupInputAccessOf(WrittenVal))
1055 auto *MA = Worklist.pop_back_val();
1080 auto *DefAcc = S->getValueDef(SAI);
1093 for (auto *PHIWrite : S->getPHIIncomings(SAI)) {
1097 auto *IncomingInputMA =
1157 bool isScalarAccess(MemoryAccess *MA) {
1235 for (auto *MA : Stmt) {
tools/polly/lib/Transform/ForwardOpTree.cpp 329 for (auto *MA : Stmt)
346 MemoryAccess *makeReadArrayAccess(ScopStmt *Stmt, LoadInst *LI,
361 MemoryAccess *Access =
362 new MemoryAccess(Stmt, LI, MemoryAccess::READ, SAI->getBasePtr(),
362 new MemoryAccess(Stmt, LI, MemoryAccess::READ, SAI->getBasePtr(),
412 MemoryAccess *Access = TargetStmt->getArrayAccessOrNULLFor(LI);
552 MemoryAccess *Access = TargetStmt->lookupInputAccessOf(Inst);
796 bool tryForwardTree(MemoryAccess *RA) {
838 SmallVector<MemoryAccess *, 16> Accs;
839 for (MemoryAccess *RA : Stmt) {
848 for (MemoryAccess *RA : Accs) {
tools/polly/lib/Transform/MaximalStaticExpansion.cpp 73 SmallPtrSetImpl<MemoryAccess *> &Writes,
74 SmallPtrSetImpl<MemoryAccess *> &Reads, Scop &S,
81 ScopArrayInfo *expandAccess(Scop &S, MemoryAccess *MA);
90 MemoryAccess *MA);
101 void mapAccess(Scop &S, SmallPtrSetImpl<MemoryAccess *> &Accesses,
132 Scop &S, const isl::union_map &Dependences, MemoryAccess *MA) {
170 const ScopArrayInfo *SAI, SmallPtrSetImpl<MemoryAccess *> &Writes,
171 SmallPtrSetImpl<MemoryAccess *> &Reads, Scop &S,
214 for (MemoryAccess *MA : Stmt) {
314 SmallPtrSetImpl<MemoryAccess *> &Accesses,
348 ScopArrayInfo *MaximalStaticExpander::expandAccess(Scop &S, MemoryAccess *MA) {
418 SmallPtrSet<MemoryAccess *, 4> Writes;
445 SmallPtrSet<MemoryAccess *, 4> AllWrites;
446 SmallPtrSet<MemoryAccess *, 4> AllReads;
tools/polly/lib/Transform/ScheduleOptimizer.cpp 649 static bool isMatMulNonScalarReadAccess(MemoryAccess *MemAccess,
700 auto *MemAccessPtr = *MemA;
777 auto *MemAccessPtr = *MemA;
tools/polly/lib/Transform/Simplify.cpp 68 static bool isImplicitRead(MemoryAccess *MA) {
72 static bool isExplicitAccess(MemoryAccess *MA) {
76 static bool isImplicitWrite(MemoryAccess *MA) {
166 SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
170 for (auto *MA : reverse(Accesses)) {
250 SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
251 for (MemoryAccess *MA : reverse(Accesses)) {
313 MemoryAccess *OtherMA = (MemoryAccess *)Map.get_space()
351 SmallPtrSet<MemoryAccess *, 2> TouchedAccesses;
354 MemoryAccess *MA = (MemoryAccess *)Map.get_space()
364 MemoryAccess *MA = (MemoryAccess *)FutureWrite.get_space()
420 SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt));
421 for (MemoryAccess *MA : Accesses) {
503 SmallVector<MemoryAccess *, 8> DeferredRemove;
505 for (MemoryAccess *MA : Stmt) {
519 for (MemoryAccess *MA : DeferredRemove) {
530 DenseSet<MemoryAccess *> UsedMA;
539 SmallVector<MemoryAccess *, 64> AllMAs;
543 for (MemoryAccess *MA : AllMAs) {
610 for (auto *MA : Stmt)
699 SmallVector<MemoryAccess *, 32> getAccessesInOrder(ScopStmt &Stmt) {
701 SmallVector<MemoryAccess *, 32> Accesses;
703 for (MemoryAccess *MemAcc : Stmt)
707 for (MemoryAccess *MemAcc : Stmt)
711 for (MemoryAccess *MemAcc : Stmt)
tools/polly/lib/Transform/ZoneAlgo.cpp 298 for (auto *MA : *Stmt) {
329 for (auto *MA : *Stmt) {
390 void ZoneAlgorithm::addArrayReadAccess(MemoryAccess *MA) {
414 isl::union_map ZoneAlgorithm::getWrittenValue(MemoryAccess *MA,
446 void ZoneAlgorithm::addArrayWriteAccess(MemoryAccess *MA) {
550 for (MemoryAccess *MA : S->getPHIIncomings(SAI)) {
614 isl::map ZoneAlgorithm::getScatterFor(MemoryAccess *MA) const {
635 isl::set ZoneAlgorithm::getDomainFor(MemoryAccess *MA) const {
639 isl::map ZoneAlgorithm::getAccessRelationFor(MemoryAccess *MA) const {
882 bool ZoneAlgorithm::isCompatibleAccess(MemoryAccess *MA) {
891 bool ZoneAlgorithm::isNormalizable(MemoryAccess *MA) {
911 for (MemoryAccess *Incoming : Incomings) {
939 MemoryAccess *PHIRead = IncomingStmt->lookupPHIReadOf(PHI);
970 for (auto *MA : Stmt) {
995 for (MemoryAccess *MA : Stmt) {
1017 for (MemoryAccess *MA : Stmt) {
1035 for (MemoryAccess *MA : S->getPHIIncomings(SAI)) {
1086 for (auto *MA : Stmt)
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/std_function.h 299 _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
628 using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/unique_ptr.h 68 default_delete(const default_delete<_Up>&) noexcept { }
72 operator()(_Tp* __ptr) const
74 static_assert(!is_void<_Tp>::value,
76 static_assert(sizeof(_Tp)>0,
122 using type = _Up*;
137 using pointer = typename _Ptr<_Tp, _Dp>::type;
161 typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
163 __uniq_ptr_impl<_Tp, _Dp> _M_t;
166 using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
167 using element_type = _Tp;
252 unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
297 __safe_conversion_up<_Up, _Ep>,
301 operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1633 { typedef _Tp type; };
1645 { typedef _Tp& type; };
1650 : public __add_lvalue_reference_helper<_Tp>
1659 { typedef _Tp&& type; };
1983 { typedef _Up type; };