|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/ADT/DenseMap.h 40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
45 ValueT &getSecond() { return std::pair<KeyT, ValueT>::second; }
46 const ValueT &getSecond() const { return std::pair<KeyT, ValueT>::second; }
66 using mapped_type = ValueT;
69 using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
71 DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
185 ValueT lookup(const_arg_type_t<KeyT> Val) const {
195 std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
202 std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
219 InsertIntoBucket(TheBucket, std::move(Key), std::forward<Ts>(Args)...);
249 std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
299 ValueT &operator[](const KeyT &Key) {
311 ValueT &operator[](KeyT &&Key) {
380 ::new (&DestBucket->getSecond()) ValueT(std::move(B->getSecond()));
392 const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
516 ValueArgs &&... Values) {
520 ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
520 ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
526 ValueT &&Value, LookupKeyT &Lookup) {
684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
685 KeyT, ValueT, KeyInfoT, BucketT> {
690 using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
1163 using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
1199 const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
tools/polly/include/polly/ScopDetection.h 168 DetectionContext(const DetectionContext &&DC)
201 using DetectionContextMapTy = DenseMap<BBPair, DetectionContext>;
226 bool addOverApproximatedRegion(Region *AR, DetectionContext &Context) const;
235 getDelinearizationTerms(DetectionContext &Context,
246 bool hasValidArraySizes(DetectionContext &Context,
260 bool computeAccessFunctions(DetectionContext &Context,
271 bool hasBaseAffineAccesses(DetectionContext &Context,
277 bool hasAffineMemoryAccesses(DetectionContext &Context) const;
293 bool allBlocksValid(DetectionContext &Context) const;
306 bool hasSufficientCompute(DetectionContext &Context,
318 bool hasPossiblyDistributableLoop(DetectionContext &Context) const;
328 bool isProfitableRegion(DetectionContext &Context) const;
335 bool isValidRegion(DetectionContext &Context) const;
343 bool isValidIntrinsicInst(IntrinsicInst &II, DetectionContext &Context) const;
351 bool isValidCallInst(CallInst &CI, DetectionContext &Context) const;
363 DetectionContext &Context) const;
373 bool isInvariant(Value &Val, const Region &Reg, DetectionContext &Ctx) const;
382 DetectionContext &Context) const;
390 bool isValidMemoryAccess(MemAccInst Inst, DetectionContext &Context) const;
408 bool isValidInstruction(Instruction &Inst, DetectionContext &Context) const;
420 bool IsLoopBranch, DetectionContext &Context) const;
432 bool IsLoopBranch, DetectionContext &Context) const;
443 bool isAffine(const SCEV *S, Loop *Scope, DetectionContext &Context) const;
460 DetectionContext &Context) const;
468 bool isValidLoop(Loop *L, DetectionContext &Context) const;
493 bool canUseISLTripCount(Loop *L, DetectionContext &Context) const;
513 inline bool invalid(DetectionContext &Context, bool Assert,
539 DetectionContext *getDetectionContext(const Region *R) const;
tools/polly/include/polly/ScopInfo.h 1780 ScopDetection::DetectionContext &DC;
1947 ScopDetection::DetectionContext &DC, OptimizationRemarkEmitter &ORE);
tools/polly/lib/Analysis/ScopDetection.cpp 354 auto &DC = DIt.getSecond();
384 inline bool ScopDetection::invalid(DetectionContext &Context, bool Assert,
411 DetectionContext &Context = It.first->second;
433 DetectionContext &Context) const {
451 InvariantLoadsSetTy &RequiredILS, DetectionContext &Context) const {
521 DetectionContext &Context) const {
534 DetectionContext &Context) const {
558 DetectionContext &Context) const {
638 DetectionContext &Context) const {
669 DetectionContext &Context) const {
741 DetectionContext &Context) const {
787 DetectionContext &Ctx) const {
901 bool ScopDetection::hasValidArraySizes(DetectionContext &Context,
967 DetectionContext &Context, const SCEVUnknown *BasePointer,
1018 bool ScopDetection::hasBaseAffineAccesses(DetectionContext &Context,
1035 bool ScopDetection::hasAffineMemoryAccesses(DetectionContext &Context) const {
1056 DetectionContext &Context) const {
1181 DetectionContext &Context) const {
1193 DetectionContext &Context) const {
1259 DetectionContext &Context) const {
1274 bool ScopDetection::isValidLoop(Loop *L, DetectionContext &Context) const {
1399 DetectionContext &Context = It.first->second;
1468 DetectionContext &Context = It.first->second;
1522 bool ScopDetection::allBlocksValid(DetectionContext &Context) const {
1565 bool ScopDetection::hasSufficientCompute(DetectionContext &Context,
1582 DetectionContext &Context) const {
1601 bool ScopDetection::isProfitableRegion(DetectionContext &Context) const {
1637 bool ScopDetection::isValidRegion(DetectionContext &Context) const {
1702 auto &DC = DIt.getSecond();
1823 ScopDetection::DetectionContext *
1832 const DetectionContext *DC = getDetectionContext(R);
1839 DetectionContext Context(const_cast<Region &>(R), AA, true /*verifying*/);
tools/polly/lib/Analysis/ScopInfo.cpp 1699 DominatorTree &DT, ScopDetection::DetectionContext &DC,
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept
83 constexpr _Tp&&
84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
98 move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_pair.h 101 is_constructible<_T2, const _U2&>>::value;
101 is_constructible<_T2, const _U2&>>::value;
108 is_convertible<const _U2&, _T2>>::value;
108 is_convertible<const _U2&, _T2>>::value;
115 is_constructible<_T2, _U2&&>>::value;
115 is_constructible<_T2, _U2&&>>::value;
122 is_convertible<_U2&&, _T2>>::value;
122 is_convertible<_U2&&, _T2>>::value;
129 is_convertible<_U2&&, _T2>>;
129 is_convertible<_U2&&, _T2>>;
134 is_constructible<_T2, _U2&&>,
134 is_constructible<_T2, _U2&&>,
143 is_convertible<const _U2&, _T2>>;
143 is_convertible<const _U2&, _T2>>;
148 is_constructible<_T2, const _U2&&>,
148 is_constructible<_T2, const _U2&&>,
209 : private __pair_base<_T1, _T2>
212 typedef _T2 second_type; /// @c second_type is the second bound type
215 _T2 second; /// @c second is a copy of the second object
252 using _PCCP = _PCC<true, _T1, _T2>;
260 constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
283 _T1, _T2>;
311 constexpr pair(_U1&& __x, const _T2& __y)
318 explicit constexpr pair(_U1&& __x, const _T2& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
342 : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
380 is_copy_assignable<_T2>>::value,
391 is_move_assignable<_T2>>::value,
523 typename __decay_and_strip<_T2>::__type>
524 make_pair(_T1&& __x, _T2&& __y)
527 typedef typename __decay_and_strip<_T2>::__type __ds_type2;
529 return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
567 : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
588 : public __or_<is_integral<_Tp>, is_floating_point<_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
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
631 : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
798 typedef decltype(__test<_Tp>(0)) type;
811 remove_all_extents<_Tp>::type>::type
825 : public __is_destructible_safe<_Tp>::type
889 typedef decltype(__test<_Tp>(0)) type;
894 : public __and_<__not_<is_void<_Tp>>,
895 __is_default_constructible_impl<_Tp>>
915 : public __is_default_constructible_atom<_Tp>::type
921 : public __is_default_constructible_safe<_Tp>::type
984 typedef decltype(__test<_Tp, _Arg>(0)) type;
989 : public __and_<is_destructible<_Tp>,
990 __is_direct_constructible_impl<_Tp, _Arg>>
1072 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1073 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 : public __is_direct_constructible_new<_Tp, _Arg>::type
1119 : public __is_direct_constructible<_Tp, _Arg>
1130 : public __is_constructible_impl<_Tp, _Args...>::type
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1304 : public is_assignable<_Tp&, _Tp&&>
1304 : public is_assignable<_Tp&, _Tp&&>
1310 : public __is_move_assignable_impl<_Tp>
1400 : public __and_<is_default_constructible<_Tp>,
1401 __is_implicitly_default_constructible_safe<_Tp>>
1526 static void __test_aux(_To1);
1538 typedef decltype(__test<_From, _To>(0)) type;
1545 : public __is_convertible_helper<_From, _To>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1629 { typedef _Tp type; };
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1955 { typedef _Tp type; };
2104 { typedef typename remove_cv<_Up>::type __type; };
2118 typedef typename remove_reference<_Tp>::type __remove_type;
2131 typedef _Tp __type;
2144 typename decay<_Tp>::type>::__type __type;