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

References

include/llvm/ADT/STLExtras.h
  154 auto adl_begin(ContainerTy &&container)
  162 auto adl_end(ContainerTy &&container)
  178 auto adl_begin(ContainerTy &&container)
  184 auto adl_end(ContainerTy &&container)
  422 make_filter_range(RangeT &&Range, PredicateT Pred) {
 1172 bool any_of(R &&Range, UnaryPredicate P) {
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) {
lib/Transforms/Scalar/NewGVN.cpp
  372   bool isEquivalentTo(const CongruenceClass *Other) const {
  519   CongruenceClass *TOPClass;
  520   std::vector<CongruenceClass *> CongruenceClasses;
  524   DenseMap<Value *, CongruenceClass *> ValueToClass;
  589   DenseMap<const MemoryAccess *, CongruenceClass *> MemoryAccessToClass;
  608   using ExpressionClassMap = DenseMap<const Expression *, CongruenceClass *>;
  695   CongruenceClass *createCongruenceClass(Value *Leader, const Expression *E) {
  696     auto *result = new CongruenceClass(NextCongruenceNum++, Leader, E);
  696     auto *result = new CongruenceClass(NextCongruenceNum++, Leader, E);
  701   CongruenceClass *createMemoryClass(MemoryAccess *MA) {
  702     auto *CC = createCongruenceClass(nullptr, nullptr);
  707   CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) {
  708     auto *CC = getMemoryClass(MA);
  714   CongruenceClass *createSingletonCongruenceClass(Value *Member) {
  715     CongruenceClass *CClass = createCongruenceClass(Member, nullptr);
  762   CongruenceClass *getClassForExpression(const Expression *E) const;
  765                                      CongruenceClass *, CongruenceClass *);
  765                                      CongruenceClass *, CongruenceClass *);
  767                                       CongruenceClass *, CongruenceClass *);
  767                                       CongruenceClass *, CongruenceClass *);
  768   Value *getNextValueLeader(CongruenceClass *) const;
  769   const MemoryAccess *getNextMemoryLeader(CongruenceClass *) const;
  770   bool setMemoryClass(const MemoryAccess *From, CongruenceClass *To);
  771   CongruenceClass *getMemoryClass(const MemoryAccess *MA) const;
  786   void convertClassToDFSOrdered(const CongruenceClass &,
  790   void convertClassToLoadsAndStores(const CongruenceClass &,
  812   void markValueLeaderChangeTouched(CongruenceClass *CC);
  813   void markMemoryLeaderChangeTouched(CongruenceClass *CC);
 1087   CongruenceClass *CC = ValueToClass.lookup(V);
 1262   auto *CC = ValueToClass.lookup(Inst);
 1297   CongruenceClass *CC = ValueToClass.lookup(V);
 1311   auto *CC = getMemoryClass(MA);
 1385     const auto *LastCC = ExpressionToClass.lookup(LastStore);
 1652 CongruenceClass *NewGVN::getMemoryClass(const MemoryAccess *MA) const {
 1653   auto *Result = MemoryAccessToClass.lookup(MA);
 1661                             CongruenceClass *NewClass) {
 1674     auto *OldClass = LookupResult->second;
 2115 void NewGVN::markMemoryLeaderChangeTouched(CongruenceClass *CC) {
 2122 void NewGVN::markValueLeaderChangeTouched(CongruenceClass *CC) {
 2133 T *NewGVN::getMinDFSOfRange(const Range &R) const {
 2146 const MemoryAccess *NewGVN::getNextMemoryLeader(CongruenceClass *CC) const {
 2171 Value *NewGVN::getNextValueLeader(CongruenceClass *CC) const {
 2201                                             CongruenceClass *OldClass,
 2202                                             CongruenceClass *NewClass) {
 2240                                            CongruenceClass *OldClass,
 2241                                            CongruenceClass *NewClass) {
 2336   CongruenceClass *IClass = ValueToClass.lookup(I);
 2341   CongruenceClass *EClass = nullptr;
 2352       CongruenceClass *NewClass = createCongruenceClass(nullptr, E);
 2541       auto *CC = ensureLeaderOfMemoryClass(MA);
 3066   CongruenceClass *CC =
 3167   for (const auto *CC : CongruenceClasses) {
 3242       SmallVector<const CongruenceClass *, 16> PhiOpClasses;
 3268   std::map<const Value *, CongruenceClass> BeforeIteration;
 3281   DenseSet<std::pair<const CongruenceClass *, const CongruenceClass *>>
 3281   DenseSet<std::pair<const CongruenceClass *, const CongruenceClass *>>
 3290     auto *BeforeCC = &BeforeIteration.find(KV.first)->second;
 3291     auto *AfterCC = KV.second;
 3314                 std::tuple<const Value *, const CongruenceClass *, Value *>>>
 3560     const CongruenceClass &Dense, SmallVectorImpl<ValueDFS> &DFSOrderedSet,
 3651     const CongruenceClass &Dense,
 3762 CongruenceClass *NewGVN::getClassForExpression(const Expression *E) const {
 3784   auto *CC = getClassForExpression(E);
 3872   for (auto *CC : reverse(CongruenceClasses)) {
 3903       CongruenceClass::MemberSet MembersLeft;
 4090     CongruenceClass::MemberSet MembersLeft;
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/range_access.h
   48     begin(_Container& __cont) -> decltype(__cont.begin())
   58     begin(const _Container& __cont) -> decltype(__cont.begin())
   68     end(_Container& __cont) -> decltype(__cont.end())
   78     end(const _Container& __cont) -> decltype(__cont.end())
usr/include/c++/7.4.0/bits/stl_map.h
  103       typedef _Tp					mapped_type;
  104       typedef std::pair<const _Key, _Tp>		value_type;
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)
  380 		       is_copy_assignable<_T2>>::value,
  391 		       is_move_assignable<_T2>>::value,
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
  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
  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
  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
 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;
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };