|
reference, declaration → definition
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; };