reference, declarationdefinition
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 &LTS,
  926   PHINode *buildExitPHI(MemoryAccess *MA, LoopToScevMapT &LTS, ValueMapT &BBMap,
  939   Value *getExitScalar(MemoryAccess *MA, LoopToScevMapT &LTS, 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 &LTS,
 1662 Value *RegionGenerator::getExitScalar(MemoryAccess *MA, LoopToScevMapT &LTS,
 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; };