|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
include/llvm/ADT/DenseMap.h 65 using key_type = KeyT;
69 using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
71 DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
78 if (shouldReverseIterate<KeyT>())
121 const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
122 if (is_trivially_copyable<KeyT>::value &&
145 size_type count(const_arg_type_t<KeyT> Val) const {
156 const_iterator find(const_arg_type_t<KeyT> Val) const {
185 ValueT lookup(const_arg_type_t<KeyT> Val) const {
272 bool erase(const KeyT &Val) {
291 value_type& FindAndConstruct(const KeyT &Key) {
299 ValueT &operator[](const KeyT &Key) {
303 value_type& FindAndConstruct(KeyT &&Key) {
311 ValueT &operator[](KeyT &&Key) {
334 const KeyT EmptyKey = getEmptyKey(), TombstoneKey = getTombstoneKey();
349 const KeyT EmptyKey = getEmptyKey();
351 ::new (&B->getFirst()) KeyT(EmptyKey);
369 const KeyT EmptyKey = getEmptyKey();
370 const KeyT TombstoneKey = getTombstoneKey();
392 const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
414 static unsigned getHashValue(const KeyT &Val) {
419 static unsigned getHashValue(const LookupKeyT &Val) {
423 static const KeyT getEmptyKey() {
429 static const KeyT getTombstoneKey() {
437 if (shouldReverseIterate<KeyT>()) {
515 BucketT *InsertIntoBucket(BucketT *TheBucket, KeyArg &&Key,
519 TheBucket->getFirst() = std::forward<KeyArg>(Key);
525 BucketT *InsertIntoBucketWithLookup(BucketT *TheBucket, KeyT &&Key,
535 BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
535 BucketT *InsertIntoBucketImpl(const KeyT &Key, const LookupKeyT &Lookup,
566 const KeyT EmptyKey = getEmptyKey();
578 bool LookupBucketFor(const LookupKeyT &Val,
590 const KeyT EmptyKey = getEmptyKey();
591 const KeyT TombstoneKey = getTombstoneKey();
629 bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
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>;
1186 if (shouldReverseIterate<KeyT>()) {
1199 const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
1210 if (shouldReverseIterate<KeyT>())
1232 if (shouldReverseIterate<KeyT>()) {
1249 const KeyT Empty = KeyInfoT::getEmptyKey();
1250 const KeyT Tombstone = KeyInfoT::getTombstoneKey();
1259 const KeyT Empty = KeyInfoT::getEmptyKey();
1260 const KeyT Tombstone = KeyInfoT::getTombstoneKey();
include/llvm/ADT/DenseSet.h 35 KeyT key;
38 KeyT &getFirst() { return key; }
39 const KeyT &getFirst() const { return key; }
55 static_assert(sizeof(typename MapTy::value_type) == sizeof(ValueT),
63 using key_type = ValueT;
64 using value_type = ValueT;
69 DenseSetImpl(std::initializer_list<ValueT> Elems)
91 size_type count(const_arg_type_t<ValueT> V) const {
95 bool erase(const ValueT &V) {
112 using value_type = ValueT;
120 ValueT &operator*() { return I->getFirst(); }
121 const ValueT &operator*() const { return I->getFirst(); }
122 ValueT *operator->() { return &I->getFirst(); }
123 const ValueT *operator->() const { return &I->getFirst(); }
138 using value_type = ValueT;
147 const ValueT &operator*() const { return I->getFirst(); }
148 const ValueT *operator->() const { return &I->getFirst(); }
165 iterator find(const_arg_type_t<ValueT> V) { return Iterator(TheMap.find(V)); }
166 const_iterator find(const_arg_type_t<ValueT> V) const {
187 std::pair<iterator, bool> insert(const ValueT &V) {
192 std::pair<iterator, bool> insert(ValueT &&V) {
200 std::pair<iterator, bool> insert_as(const ValueT &V,
205 std::pair<iterator, bool> insert_as(ValueT &&V, const LookupKeyT &LookupKey) {
250 ValueT, DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
250 ValueT, DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
251 detail::DenseSetPair<ValueT>>,
254 detail::DenseSetImpl<ValueT,
255 DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
256 detail::DenseSetPair<ValueT>>,
include/llvm/IR/Dominators.h 105 static unsigned getHashValue(const BasicBlockEdge *V);
107 static inline BasicBlockEdge getEmptyKey() {
111 static inline BasicBlockEdge getTombstoneKey() {
115 static unsigned getHashValue(const BasicBlockEdge &Edge) {
120 static bool isEqual(const BasicBlockEdge &LHS, const BasicBlockEdge &RHS) {
120 static bool isEqual(const BasicBlockEdge &LHS, const BasicBlockEdge &RHS) {
173 bool dominates(const BasicBlockEdge &BBE, const Use &U) const;
174 bool dominates(const BasicBlockEdge &BBE, const BasicBlock *BB) const;
include/llvm/Support/type_traits.h 65 using type = const T &;
91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
include/llvm/Transforms/Scalar/GVN.h 287 bool propagateEquality(Value *LHS, Value *RHS, const BasicBlockEdge &Root,
include/llvm/Transforms/Utils/Local.h 451 const BasicBlockEdge &Edge);
lib/Analysis/ScalarEvolution.cpp 5242 BasicBlockEdge LeftEdge(BI->getParent(), BI->getSuccessor(0));
5243 BasicBlockEdge RightEdge(BI->getParent(), BI->getSuccessor(1));
9545 BasicBlockEdge DominatingEdge(PBB, BB);
lib/Analysis/ValueTracking.cpp 1962 BasicBlockEdge Edge(BI->getParent(), NonNullSuccessor);
4203 BasicBlockEdge NoWrapEdge(BI->getParent(), BI->getSuccessor(1));
lib/IR/Dominators.cpp 171 BasicBlockEdge E(DefBB, NormalDest);
178 bool DominatorTree::dominates(const BasicBlockEdge &BBE,
230 bool DominatorTree::dominates(const BasicBlockEdge &BBE, const Use &U) const {
276 BasicBlockEdge E(DefBB, NormalDest);
lib/Transforms/Scalar/GVN.cpp 1426 BasicBlockEdge Edge(IntrinsicI->getParent(), Successor);
1734 static bool isOnlyReachableViaThisEdge(const BasicBlockEdge &E,
1776 bool GVN::propagateEquality(Value *LHS, Value *RHS, const BasicBlockEdge &Root,
2001 BasicBlockEdge TrueE(Parent, TrueSucc);
2005 BasicBlockEdge FalseE(Parent, FalseSucc);
2027 BasicBlockEdge E(Parent, Dst);
lib/Transforms/Scalar/NewGVN.cpp 622 using BlockEdge = BasicBlockEdge;
3855 for (auto &KV : ReachableEdges)
lib/Transforms/Utils/Local.cpp 2461 const RootType &Root,
2498 const BasicBlockEdge &Root) {
unittests/IR/DominatorTreeTest.cpp 306 BasicBlockEdge Edge_BB0_BB2(BB0, TI->getSuccessor(0));
310 BasicBlockEdge Edge_BB0_BB1_a(BB0, TI->getSuccessor(1));
313 BasicBlockEdge Edge_BB0_BB1_b(BB0, TI->getSuccessor(2));
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/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
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
1142 : public is_constructible<_Tp, const _Tp&>
1142 : public is_constructible<_Tp, const _Tp&>
1148 : public __is_copy_constructible_impl<_Tp>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
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; };