reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/polly/include/polly/CodeGen/BlockGenerators.h
   26 class ScopArrayInfo;
tools/polly/include/polly/CodeGen/IslExprBuilder.h
   32 class ScopArrayInfo;
tools/polly/include/polly/ZoneAlgo.h
   34 class ScopArrayInfo;

References

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
   37   using AllocaMapTy = DenseMap<const ScopArrayInfo *, AssertingVH<AllocaInst>>;
   95   void freeScalarAlloc(ScopArrayInfo *Array) { ScalarMap.erase(Array); }
  115   Value *getOrCreateAlloca(const ScopArrayInfo *Array);
  386   void handleOutsideUsers(const Scop &S, ScopArrayInfo *Array);
tools/polly/include/polly/CodeGen/IslExprBuilder.h
   86   typedef llvm::MapVector<isl_id *, const ScopArrayInfo *> IDToScopArrayInfoTy;
tools/polly/include/polly/ScopBuilder.h
  427                        DenseSet<const ScopArrayInfo *> HasWriteAccess);
  444   std::tuple<AliasGroupVectorTy, DenseSet<const ScopArrayInfo *>>
tools/polly/include/polly/ScopInfo.h
  275   const ScopArrayInfo *getBasePtrOriginSAI() const { return BasePtrOriginSAI; }
  278   const SmallSetVector<ScopArrayInfo *, 2> &getDerivedSAIs() const {
  365   static const ScopArrayInfo *getFromAccessFunction(isl::pw_multi_aff PMA);
  368   static const ScopArrayInfo *getFromId(isl::id Id);
  384   bool isCompatibleWith(const ScopArrayInfo *Array) const;
  387   void addDerivedSAI(ScopArrayInfo *DerivedSAI) {
  392   const ScopArrayInfo *BasePtrOriginSAI;
  395   SmallSetVector<ScopArrayInfo *, 2> DerivedSAIs;
  691   void buildAccessRelation(const ScopArrayInfo *SAI);
  856   const ScopArrayInfo *getOriginalScopArrayInfo() const;
  860   const ScopArrayInfo *getLatestScopArrayInfo() const;
  863   const ScopArrayInfo *getScopArrayInfo() const {
 1803                std::unique_ptr<ScopArrayInfo>>;
 1805   using ArrayNameMapTy = StringMap<std::unique_ptr<ScopArrayInfo>>;
 1807   using ArrayInfoSetTy = SetVector<ScopArrayInfo *>;
 1935   DenseMap<const ScopArrayInfo *, SmallVector<MemoryAccess *, 4>> ValueUseAccs;
 1939   DenseMap<const ScopArrayInfo *, SmallVector<MemoryAccess *, 4>>
 2486   ScopArrayInfo *getOrCreateScopArrayInfo(Value *BasePtr, Type *ElementType,
 2496   ScopArrayInfo *createScopArrayInfo(Type *ElementType,
 2507   const ScopArrayInfo *getScopArrayInfoOrNull(Value *BasePtr, MemoryKind Kind);
 2516   const ScopArrayInfo *getScopArrayInfo(Value *BasePtr, MemoryKind Kind);
 2643   isl::union_map getAccesses(ScopArrayInfo *Array);
 2683   ScopArrayInfo *getArrayInfoByName(const std::string BaseName);
 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/ZoneAlgo.h
  220   isl::union_map computePerPHI(const polly::ScopArrayInfo *SAI);
tools/polly/lib/Analysis/DependenceInfo.cpp
  126   SmallPtrSet<const ScopArrayInfo *, 8> ReductionArrays;
tools/polly/lib/Analysis/ScopBuilder.cpp
 2456       ScopArrayInfo *SAI =
 2480       ScopArrayInfo *Array =
 3137 static const ScopArrayInfo *findCanonicalArray(Scop &S,
 3140     const ScopArrayInfo *CanonicalArray = S.getScopArrayInfoOrNull(
 3149 static bool isUsedForIndirectHoistedLoad(Scop &S, const ScopArrayInfo *Array) {
 3159 static void replaceBasePtrArrays(Scop &S, const ScopArrayInfo *Old,
 3160                                  const ScopArrayInfo *New) {
 3177     const ScopArrayInfo *CanonicalBasePtrSAI =
 3184       const ScopArrayInfo *BasePtrSAI = scop->getScopArrayInfoOrNull(
 3217     auto *SAI = scop->getOrCreateScopArrayInfo(Access->getOriginalBaseAddr(),
 3355   DenseSet<const ScopArrayInfo *> HasWriteAccess;
 3401   DenseSet<const ScopArrayInfo *> HasWriteAccess;
 3430   SmallPtrSet<const ScopArrayInfo *, 4> ReadWriteArrays;
 3431   SmallPtrSet<const ScopArrayInfo *, 4> ReadOnlyArrays;
 3440     const ScopArrayInfo *Array = Access->getScopArrayInfo();
tools/polly/lib/Analysis/ScopInfo.cpp
  200 static const ScopArrayInfo *identifyBasePtrOriginSAI(Scop *S, Value *BasePtr) {
  263 bool ScopArrayInfo::isCompatibleWith(const ScopArrayInfo *Array) const {
  399 const ScopArrayInfo *
  406 const ScopArrayInfo *ScopArrayInfo::getFromId(isl::id Id) {
  408   const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User);
  570 const ScopArrayInfo *MemoryAccess::getOriginalScopArrayInfo() const {
  573   const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User);
  577 const ScopArrayInfo *MemoryAccess::getLatestScopArrayInfo() const {
  580   const ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(User);
  839 void MemoryAccess::buildAccessRelation(const ScopArrayInfo *SAI) {
  909   auto *SAI = ScopArrayInfo::getFromId(ArrayInfoId);
 1089   auto *SAI = static_cast<ScopArrayInfo *>(NewArrayId.get_user());
 1361   ScopArrayInfo *SAI =
 1817 ScopArrayInfo *Scop::getOrCreateScopArrayInfo(Value *BasePtr, Type *ElementType,
 1828     SAI.reset(new ScopArrayInfo(BasePtr, ElementType, getIslCtx(), Sizes, Kind,
 1841 ScopArrayInfo *Scop::createScopArrayInfo(Type *ElementType,
 1853   auto *SAI = getOrCreateScopArrayInfo(nullptr, ElementType, SCEVSizes,
 1858 const ScopArrayInfo *Scop::getScopArrayInfoOrNull(Value *BasePtr,
 1860   auto *SAI = ScopArrayInfoMap[std::make_pair(BasePtr, Kind)].get();
 1864 const ScopArrayInfo *Scop::getScopArrayInfo(Value *BasePtr, MemoryKind Kind) {
 2320 isl::union_map Scop::getAccesses(ScopArrayInfo *Array) {
 2476 ScopArrayInfo *Scop::getArrayInfoByName(const std::string BaseName) {
 2485   const ScopArrayInfo *SAI = Access->getOriginalScopArrayInfo();
 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 {
tools/polly/lib/CodeGen/BlockGenerators.cpp
  475 Value *BlockGenerator::getOrCreateAlloca(const ScopArrayInfo *Array) {
  522 void BlockGenerator::handleOutsideUsers(const Scop &S, ScopArrayInfo *Array) {
tools/polly/lib/CodeGen/IRBuilder.cpp
   64   SmallVector<ScopArrayInfo *, 10> Arrays;
   65   for (ScopArrayInfo *Array : S.arrays())
   76   for (const ScopArrayInfo *Array : Arrays) {
   83   for (const ScopArrayInfo *Array : Arrays) {
tools/polly/lib/CodeGen/IslAst.cpp
  365   const ScopArrayInfo *BaseLeft =
  366       ScopArrayInfo::getFromId(Left)->getBasePtrOriginSAI();
  367   const ScopArrayInfo *BaseRight =
  368       ScopArrayInfo::getFromId(Right)->getBasePtrOriginSAI();
tools/polly/lib/CodeGen/IslExprBuilder.cpp
  250   const ScopArrayInfo *SAI = nullptr;
  259     SAI = ScopArrayInfo::getFromId(isl::manage(BaseId));
tools/polly/lib/CodeGen/IslNodeBuilder.cpp
 1163   for (ScopArrayInfo *Array : S.arrays()) {
 1406   for (auto *DerivedSAI : SAI->getDerivedSAIs()) {
tools/polly/lib/Exchange/JSONExporter.cpp
  425         auto *SAI = S.getArrayInfoByName(isl_id_get_name(NewOutId));
  427         auto *OutSAI = ScopArrayInfo::getFromId(isl::manage(OutId));
  546 static bool areArraysEqual(ScopArrayInfo *SAI, const json::Object &Array) {
tools/polly/lib/Support/VirtualInstruction.cpp
   39       if (const ScopArrayInfo *SAI =
  330         const ScopArrayInfo *SAI = Acc->getScopArrayInfo();
tools/polly/lib/Transform/DeLICM.cpp
  551   bool isMappable(const ScopArrayInfo *SAI) {
  614   computeValueUses(const ScopArrayInfo *SAI) {
  664   bool tryMapValue(const ScopArrayInfo *SAI, isl::map TargetElt) {
  764   void mapValue(const ScopArrayInfo *SAI, isl::map DefTarget,
  803   isl::union_map determinePHIWrittenValues(const ScopArrayInfo *SAI) {
  842   bool tryMapPHI(const ScopArrayInfo *SAI, isl::map TargetElt) {
  962   void mapPHI(const ScopArrayInfo *SAI, isl::map ReadTarget,
 1029     SmallPtrSet<const ScopArrayInfo *, 16> Closed;
tools/polly/lib/Transform/ForwardOpTree.cpp
  247       ScopArrayInfo *SAI = static_cast<ScopArrayInfo *>(ArrayId.get_user());
  349     ScopArrayInfo *SAI = reinterpret_cast<ScopArrayInfo *>(ArrayId.get_user());
tools/polly/lib/Transform/MaximalStaticExpansion.cpp
   72   bool isExpandable(const ScopArrayInfo *SAI,
   81   ScopArrayInfo *expandAccess(Scop &S, MemoryAccess *MA);
  102                  const isl::union_map &Dependences, ScopArrayInfo *ExpandedSAI,
  110   void expandPhi(Scop &S, const ScopArrayInfo *SAI,
  149     ScopArrayInfo *UserSAI =
  170     const ScopArrayInfo *SAI, SmallPtrSetImpl<MemoryAccess *> &Writes,
  316                                       ScopArrayInfo *ExpandedSAI,
  348 ScopArrayInfo *MaximalStaticExpander::expandAccess(Scop &S, MemoryAccess *MA) {
  416 void MaximalStaticExpander::expandPhi(Scop &S, const ScopArrayInfo *SAI,
  441   SmallVector<ScopArrayInfo *, 4> CurrentSAI(S.arrays().begin(),
  454       ScopArrayInfo *ExpandedArray = expandAccess(S, TheWrite);
tools/polly/lib/Transform/ScheduleOptimizer.cpp
 1108   auto *SAI = Stmt->getParent()->createScopArrayInfo(
tools/polly/lib/Transform/ZoneAlgo.cpp
  535 isl::union_map ZoneAlgorithm::computePerPHI(const ScopArrayInfo *SAI) {
  909   const ScopArrayInfo *SAI = MA->getOriginalScopArrayInfo();
 1026       const ScopArrayInfo *SAI = MA->getOriginalScopArrayInfo();
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;
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1983     { typedef _Up     type; };