/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/include/llvm/ADT/ilist.h
Line | Count | Source (jump to first uncovered line) |
1 | | //==-- llvm/ADT/ilist.h - Intrusive Linked List Template ---------*- C++ -*-==// |
2 | | // |
3 | | // The LLVM Compiler Infrastructure |
4 | | // |
5 | | // This file is distributed under the University of Illinois Open Source |
6 | | // License. See LICENSE.TXT for details. |
7 | | // |
8 | | //===----------------------------------------------------------------------===// |
9 | | // |
10 | | // This file defines classes to implement an intrusive doubly linked list class |
11 | | // (i.e. each node of the list must contain a next and previous field for the |
12 | | // list. |
13 | | // |
14 | | // The ilist class itself should be a plug in replacement for list. This list |
15 | | // replacement does not provide a constant time size() method, so be careful to |
16 | | // use empty() when you really want to know if it's empty. |
17 | | // |
18 | | // The ilist class is implemented as a circular list. The list itself contains |
19 | | // a sentinel node, whose Next points at begin() and whose Prev points at |
20 | | // rbegin(). The sentinel node itself serves as end() and rend(). |
21 | | // |
22 | | //===----------------------------------------------------------------------===// |
23 | | |
24 | | #ifndef LLVM_ADT_ILIST_H |
25 | | #define LLVM_ADT_ILIST_H |
26 | | |
27 | | #include "llvm/ADT/simple_ilist.h" |
28 | | #include <cassert> |
29 | | #include <cstddef> |
30 | | #include <iterator> |
31 | | |
32 | | namespace llvm { |
33 | | |
34 | | /// Use delete by default for iplist and ilist. |
35 | | /// |
36 | | /// Specialize this to get different behaviour for ownership-related API. (If |
37 | | /// you really want ownership semantics, consider using std::list or building |
38 | | /// something like \a BumpPtrList.) |
39 | | /// |
40 | | /// \see ilist_noalloc_traits |
41 | | template <typename NodeTy> struct ilist_alloc_traits { |
42 | 17.0M | static void deleteNode(NodeTy *V) { delete V; } llvm::ilist_alloc_traits<llvm::GlobalAlias>::deleteNode(llvm::GlobalAlias*) Line | Count | Source | 42 | 2.43k | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::AliasSet>::deleteNode(llvm::AliasSet*) Line | Count | Source | 42 | 1.56M | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::IVStrideUse>::deleteNode(llvm::IVStrideUse*) Line | Count | Source | 42 | 899k | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::MemoryAccess>::deleteNode(llvm::MemoryAccess*) Line | Count | Source | 42 | 7.33M | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::BasicBlock>::deleteNode(llvm::BasicBlock*) Line | Count | Source | 42 | 4.55M | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::Function>::deleteNode(llvm::Function*) Line | Count | Source | 42 | 2.07M | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::GlobalVariable>::deleteNode(llvm::GlobalVariable*) Line | Count | Source | 42 | 128k | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::GlobalIFunc>::deleteNode(llvm::GlobalIFunc*) Line | Count | Source | 42 | 90 | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::NamedMDNode>::deleteNode(llvm::NamedMDNode*) Line | Count | Source | 42 | 17.7k | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::PredicateBase>::deleteNode(llvm::PredicateBase*) Line | Count | Source | 42 | 706 | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<llvm::VPRecipeBase>::deleteNode(llvm::VPRecipeBase*) Line | Count | Source | 42 | 451k | static void deleteNode(NodeTy *V) { delete V; } |
llvm::ilist_alloc_traits<clang::ento::BugReport>::deleteNode(clang::ento::BugReport*) Line | Count | Source | 42 | 7.34k | static void deleteNode(NodeTy *V) { delete V; } |
|
43 | | }; |
44 | | |
45 | | /// Custom traits to do nothing on deletion. |
46 | | /// |
47 | | /// Specialize ilist_alloc_traits to inherit from this to disable the |
48 | | /// non-intrusive deletion in iplist (which implies ownership). |
49 | | /// |
50 | | /// If you want purely intrusive semantics with no callbacks, consider using \a |
51 | | /// simple_ilist instead. |
52 | | /// |
53 | | /// \code |
54 | | /// template <> |
55 | | /// struct ilist_alloc_traits<MyType> : ilist_noalloc_traits<MyType> {}; |
56 | | /// \endcode |
57 | | template <typename NodeTy> struct ilist_noalloc_traits { |
58 | 89.0M | static void deleteNode(NodeTy *V) {} |
59 | | }; |
60 | | |
61 | | /// Callbacks do nothing by default in iplist and ilist. |
62 | | /// |
63 | | /// Specialize this for to use callbacks for when nodes change their list |
64 | | /// membership. |
65 | | template <typename NodeTy> struct ilist_callback_traits { |
66 | 271M | void addNodeToList(NodeTy *) {} llvm::ilist_callback_traits<clang::ento::BugReport>::addNodeToList(clang::ento::BugReport*) Line | Count | Source | 66 | 7.34k | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::IndexListEntry>::addNodeToList(llvm::IndexListEntry*) Line | Count | Source | 66 | 89.0M | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::SDNode>::addNodeToList(llvm::SDNode*) Line | Count | Source | 66 | 167M | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::MCFragment>::addNodeToList(llvm::MCFragment*) Line | Count | Source | 66 | 5.09M | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::AliasSet>::addNodeToList(llvm::AliasSet*) Line | Count | Source | 66 | 1.56M | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::IVStrideUse>::addNodeToList(llvm::IVStrideUse*) Line | Count | Source | 66 | 899k | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::MemoryAccess>::addNodeToList(llvm::MemoryAccess*) Line | Count | Source | 66 | 7.33M | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::NamedMDNode>::addNodeToList(llvm::NamedMDNode*) Line | Count | Source | 66 | 52.5k | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::PredicateBase>::addNodeToList(llvm::PredicateBase*) Line | Count | Source | 66 | 706 | void addNodeToList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::VPRecipeBase>::addNodeToList(llvm::VPRecipeBase*) Line | Count | Source | 66 | 451k | void addNodeToList(NodeTy *) {} |
|
67 | 271M | void removeNodeFromList(NodeTy *) {} llvm::ilist_callback_traits<llvm::IndexListEntry>::removeNodeFromList(llvm::IndexListEntry*) Line | Count | Source | 67 | 89.0M | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::VPRecipeBase>::removeNodeFromList(llvm::VPRecipeBase*) Line | Count | Source | 67 | 451k | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::PredicateBase>::removeNodeFromList(llvm::PredicateBase*) Line | Count | Source | 67 | 706 | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::MCFragment>::removeNodeFromList(llvm::MCFragment*) Line | Count | Source | 67 | 5.09M | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::NamedMDNode>::removeNodeFromList(llvm::NamedMDNode*) Line | Count | Source | 67 | 17.7k | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::MemoryAccess>::removeNodeFromList(llvm::MemoryAccess*) Line | Count | Source | 67 | 7.33M | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::AliasSet>::removeNodeFromList(llvm::AliasSet*) Line | Count | Source | 67 | 1.56M | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::IVStrideUse>::removeNodeFromList(llvm::IVStrideUse*) Line | Count | Source | 67 | 899k | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<llvm::SDNode>::removeNodeFromList(llvm::SDNode*) Line | Count | Source | 67 | 167M | void removeNodeFromList(NodeTy *) {} |
llvm::ilist_callback_traits<clang::ento::BugReport>::removeNodeFromList(clang::ento::BugReport*) Line | Count | Source | 67 | 7.34k | void removeNodeFromList(NodeTy *) {} |
|
68 | | |
69 | | /// Callback before transferring nodes to this list. |
70 | | /// |
71 | | /// \pre \c this!=&OldList |
72 | | template <class Iterator> |
73 | | void transferNodesFromList(ilist_callback_traits &OldList, Iterator /*first*/, |
74 | | Iterator /*last*/) { |
75 | | (void)OldList; |
76 | | } |
77 | | }; |
78 | | |
79 | | /// A fragment for template traits for intrusive list that provides default |
80 | | /// node related operations. |
81 | | /// |
82 | | /// TODO: Remove this layer of indirection. It's not necessary. |
83 | | template <typename NodeTy> |
84 | | struct ilist_node_traits : ilist_alloc_traits<NodeTy>, |
85 | | ilist_callback_traits<NodeTy> {}; |
86 | | |
87 | | /// Default template traits for intrusive list. |
88 | | /// |
89 | | /// By inheriting from this, you can easily use default implementations for all |
90 | | /// common operations. |
91 | | /// |
92 | | /// TODO: Remove this customization point. Specializing ilist_traits is |
93 | | /// already fully general. |
94 | | template <typename NodeTy> |
95 | | struct ilist_default_traits : public ilist_node_traits<NodeTy> {}; |
96 | | |
97 | | /// Template traits for intrusive list. |
98 | | /// |
99 | | /// Customize callbacks and allocation semantics. |
100 | | template <typename NodeTy> |
101 | | struct ilist_traits : public ilist_default_traits<NodeTy> {}; |
102 | | |
103 | | /// Const traits should never be instantiated. |
104 | | template <typename Ty> struct ilist_traits<const Ty> {}; |
105 | | |
106 | | namespace ilist_detail { |
107 | | |
108 | | template <class T> T &make(); |
109 | | |
110 | | /// Type trait to check for a traits class that has a getNext member (as a |
111 | | /// canary for any of the ilist_nextprev_traits API). |
112 | | template <class TraitsT, class NodeT> struct HasGetNext { |
113 | | typedef char Yes[1]; |
114 | | typedef char No[2]; |
115 | | template <size_t N> struct SFINAE {}; |
116 | | |
117 | | template <class U> |
118 | | static Yes &test(U *I, decltype(I->getNext(&make<NodeT>())) * = 0); |
119 | | template <class> static No &test(...); |
120 | | |
121 | | public: |
122 | | static const bool value = sizeof(test<TraitsT>(nullptr)) == sizeof(Yes); |
123 | | }; |
124 | | |
125 | | /// Type trait to check for a traits class that has a createSentinel member (as |
126 | | /// a canary for any of the ilist_sentinel_traits API). |
127 | | template <class TraitsT> struct HasCreateSentinel { |
128 | | typedef char Yes[1]; |
129 | | typedef char No[2]; |
130 | | |
131 | | template <class U> |
132 | | static Yes &test(U *I, decltype(I->createSentinel()) * = 0); |
133 | | template <class> static No &test(...); |
134 | | |
135 | | public: |
136 | | static const bool value = sizeof(test<TraitsT>(nullptr)) == sizeof(Yes); |
137 | | }; |
138 | | |
139 | | /// Type trait to check for a traits class that has a createNode member. |
140 | | /// Allocation should be managed in a wrapper class, instead of in |
141 | | /// ilist_traits. |
142 | | template <class TraitsT, class NodeT> struct HasCreateNode { |
143 | | typedef char Yes[1]; |
144 | | typedef char No[2]; |
145 | | template <size_t N> struct SFINAE {}; |
146 | | |
147 | | template <class U> |
148 | | static Yes &test(U *I, decltype(I->createNode(make<NodeT>())) * = 0); |
149 | | template <class> static No &test(...); |
150 | | |
151 | | public: |
152 | | static const bool value = sizeof(test<TraitsT>(nullptr)) == sizeof(Yes); |
153 | | }; |
154 | | |
155 | | template <class TraitsT, class NodeT> struct HasObsoleteCustomization { |
156 | | static const bool value = HasGetNext<TraitsT, NodeT>::value || |
157 | | HasCreateSentinel<TraitsT>::value || |
158 | | HasCreateNode<TraitsT, NodeT>::value; |
159 | | }; |
160 | | |
161 | | } // end namespace ilist_detail |
162 | | |
163 | | //===----------------------------------------------------------------------===// |
164 | | // |
165 | | /// A wrapper around an intrusive list with callbacks and non-intrusive |
166 | | /// ownership. |
167 | | /// |
168 | | /// This wraps a purely intrusive list (like simple_ilist) with a configurable |
169 | | /// traits class. The traits can implement callbacks and customize the |
170 | | /// ownership semantics. |
171 | | /// |
172 | | /// This is a subset of ilist functionality that can safely be used on nodes of |
173 | | /// polymorphic types, i.e. a heterogeneous list with a common base class that |
174 | | /// holds the next/prev pointers. The only state of the list itself is an |
175 | | /// ilist_sentinel, which holds pointers to the first and last nodes in the |
176 | | /// list. |
177 | | template <class IntrusiveListT, class TraitsT> |
178 | | class iplist_impl : public TraitsT, IntrusiveListT { |
179 | | typedef IntrusiveListT base_list_type; |
180 | | |
181 | | protected: |
182 | | typedef iplist_impl iplist_impl_type; |
183 | | |
184 | | public: |
185 | | typedef typename base_list_type::pointer pointer; |
186 | | typedef typename base_list_type::const_pointer const_pointer; |
187 | | typedef typename base_list_type::reference reference; |
188 | | typedef typename base_list_type::const_reference const_reference; |
189 | | typedef typename base_list_type::value_type value_type; |
190 | | typedef typename base_list_type::size_type size_type; |
191 | | typedef typename base_list_type::difference_type difference_type; |
192 | | typedef typename base_list_type::iterator iterator; |
193 | | typedef typename base_list_type::const_iterator const_iterator; |
194 | | typedef typename base_list_type::reverse_iterator reverse_iterator; |
195 | | typedef |
196 | | typename base_list_type::const_reverse_iterator const_reverse_iterator; |
197 | | |
198 | | private: |
199 | | // TODO: Drop this assertion and the transitive type traits anytime after |
200 | | // v4.0 is branched (i.e,. keep them for one release to help out-of-tree code |
201 | | // update). |
202 | | static_assert( |
203 | | !ilist_detail::HasObsoleteCustomization<TraitsT, value_type>::value, |
204 | | "ilist customization points have changed!"); |
205 | | |
206 | | static bool op_less(const_reference L, const_reference R) { return L < R; } |
207 | | static bool op_equal(const_reference L, const_reference R) { return L == R; } |
208 | | |
209 | | public: |
210 | 24.4M | iplist_impl() = default; llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::iplist_impl() Line | Count | Source | 210 | 932k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::iplist_impl() Line | Count | Source | 210 | 363k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::iplist_impl() Line | Count | Source | 210 | 2.78M | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::iplist_impl() Line | Count | Source | 210 | 5.99M | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::iplist_impl() Line | Count | Source | 210 | 598k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::iplist_impl() Line | Count | Source | 210 | 66.8k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::iplist_impl() Line | Count | Source | 210 | 8.30M | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::iplist_impl() Line | Count | Source | 210 | 2.84M | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::iplist_impl() Line | Count | Source | 210 | 53.6k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::iplist_impl() Line | Count | Source | 210 | 35.1k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::iplist_impl() Line | Count | Source | 210 | 111k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::iplist_impl() Line | Count | Source | 210 | 339 | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::iplist_impl() Line | Count | Source | 210 | 2.16M | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::iplist_impl() Line | Count | Source | 210 | 53.6k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::iplist_impl() Line | Count | Source | 210 | 53.6k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::iplist_impl() Line | Count | Source | 210 | 53.6k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::iplist_impl() Line | Count | Source | 210 | 53.6k | iplist_impl() = default; |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::iplist_impl() Line | Count | Source | 210 | 6.88k | iplist_impl() = default; |
|
211 | | |
212 | | iplist_impl(const iplist_impl &) = delete; |
213 | | iplist_impl &operator=(const iplist_impl &) = delete; |
214 | | |
215 | | iplist_impl(iplist_impl &&X) |
216 | 24 | : TraitsT(std::move(X)), IntrusiveListT(std::move(X)) {} |
217 | | iplist_impl &operator=(iplist_impl &&X) { |
218 | | *static_cast<TraitsT *>(this) = std::move(X); |
219 | | *static_cast<IntrusiveListT *>(this) = std::move(X); |
220 | | return *this; |
221 | | } |
222 | | |
223 | 20.1M | ~iplist_impl() { clear(); } llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::~iplist_impl() Line | Count | Source | 223 | 36.2k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::~iplist_impl() Line | Count | Source | 223 | 2.15M | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::~iplist_impl() Line | Count | Source | 223 | 339 | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::~iplist_impl() Line | Count | Source | 223 | 111k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::~iplist_impl() Line | Count | Source | 223 | 35.0k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::~iplist_impl() Line | Count | Source | 223 | 6.88k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::~iplist_impl() Line | Count | Source | 223 | 36.2k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::~iplist_impl() Line | Count | Source | 223 | 36.2k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::~iplist_impl() Line | Count | Source | 223 | 36.2k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::~iplist_impl() Line | Count | Source | 223 | 932k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::~iplist_impl() Line | Count | Source | 223 | 363k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::~iplist_impl() Line | Count | Source | 223 | 2.78M | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::~iplist_impl() Line | Count | Source | 223 | 5.99M | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::~iplist_impl() Line | Count | Source | 223 | 598k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::~iplist_impl() Line | Count | Source | 223 | 66.6k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::~iplist_impl() Line | Count | Source | 223 | 36.2k | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::~iplist_impl() Line | Count | Source | 223 | 2.14M | ~iplist_impl() { clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::~iplist_impl() Line | Count | Source | 223 | 4.74M | ~iplist_impl() { clear(); } |
|
224 | | |
225 | | // Miscellaneous inspection routines. |
226 | | size_type max_size() const { return size_type(-1); } |
227 | | |
228 | | using base_list_type::begin; |
229 | | using base_list_type::end; |
230 | | using base_list_type::rbegin; |
231 | | using base_list_type::rend; |
232 | | using base_list_type::empty; |
233 | | using base_list_type::front; |
234 | | using base_list_type::back; |
235 | | |
236 | | void swap(iplist_impl &RHS) { |
237 | | assert(0 && "Swap does not use list traits callback correctly yet!"); |
238 | | base_list_type::swap(RHS); |
239 | | } |
240 | | |
241 | 437M | iterator insert(iterator where, pointer New) { |
242 | 437M | this->addNodeToList(New); // Notify traits that we added a node... |
243 | 437M | return base_list_type::insert(where, *New); |
244 | 437M | } llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<clang::ento::BugReport, false, false, void>, false, false>, clang::ento::BugReport*) Line | Count | Source | 241 | 7.34k | iterator insert(iterator where, pointer New) { | 242 | 7.34k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 7.34k | return base_list_type::insert(where, *New); | 244 | 7.34k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::MachineInstr*) Line | Count | Source | 241 | 91.2M | iterator insert(iterator where, pointer New) { | 242 | 91.2M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 91.2M | return base_list_type::insert(where, *New); | 244 | 91.2M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>, llvm::VPRecipeBase*) Line | Count | Source | 241 | 451k | iterator insert(iterator where, pointer New) { | 242 | 451k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 451k | return base_list_type::insert(where, *New); | 244 | 451k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::PredicateBase, false, false, void>, false, false>, llvm::PredicateBase*) Line | Count | Source | 241 | 706 | iterator insert(iterator where, pointer New) { | 242 | 706 | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 706 | return base_list_type::insert(where, *New); | 244 | 706 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::NamedMDNode, false, false, void>, false, false>, llvm::NamedMDNode*) Line | Count | Source | 241 | 52.5k | iterator insert(iterator where, pointer New) { | 242 | 52.5k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 52.5k | return base_list_type::insert(where, *New); | 244 | 52.5k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::GlobalVariable*) Line | Count | Source | 241 | 863k | iterator insert(iterator where, pointer New) { | 242 | 863k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 863k | return base_list_type::insert(where, *New); | 244 | 863k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::Function*) Line | Count | Source | 241 | 2.84M | iterator insert(iterator where, pointer New) { | 242 | 2.84M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 2.84M | return base_list_type::insert(where, *New); | 244 | 2.84M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false>, llvm::GlobalIFunc*) Line | Count | Source | 241 | 90 | iterator insert(iterator where, pointer New) { | 242 | 90 | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 90 | return base_list_type::insert(where, *New); | 244 | 90 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false>, llvm::GlobalAlias*) Line | Count | Source | 241 | 2.44k | iterator insert(iterator where, pointer New) { | 242 | 2.44k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 2.44k | return base_list_type::insert(where, *New); | 244 | 2.44k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::BasicBlock*) Line | Count | Source | 241 | 8.12M | iterator insert(iterator where, pointer New) { | 242 | 8.12M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 8.12M | return base_list_type::insert(where, *New); | 244 | 8.12M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false>, llvm::MemoryAccess*) Line | Count | Source | 241 | 7.33M | iterator insert(iterator where, pointer New) { | 242 | 7.33M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 7.33M | return base_list_type::insert(where, *New); | 244 | 7.33M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IVStrideUse, false, false, void>, false, false>, llvm::IVStrideUse*) Line | Count | Source | 241 | 899k | iterator insert(iterator where, pointer New) { | 242 | 899k | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 899k | return base_list_type::insert(where, *New); | 244 | 899k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MCFragment, false, false, void>, false, false>, llvm::MCFragment*) Line | Count | Source | 241 | 5.09M | iterator insert(iterator where, pointer New) { | 242 | 5.09M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 5.09M | return base_list_type::insert(where, *New); | 244 | 5.09M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false>, llvm::SDNode*) Line | Count | Source | 241 | 167M | iterator insert(iterator where, pointer New) { | 242 | 167M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 167M | return base_list_type::insert(where, *New); | 244 | 167M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::AliasSet, false, false, void>, false, false>, llvm::AliasSet*) Line | Count | Source | 241 | 1.56M | iterator insert(iterator where, pointer New) { | 242 | 1.56M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 1.56M | return base_list_type::insert(where, *New); | 244 | 1.56M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::MachineBasicBlock*) Line | Count | Source | 241 | 5.99M | iterator insert(iterator where, pointer New) { | 242 | 5.99M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 5.99M | return base_list_type::insert(where, *New); | 244 | 5.99M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>, llvm::IndexListEntry*) Line | Count | Source | 241 | 89.0M | iterator insert(iterator where, pointer New) { | 242 | 89.0M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 89.0M | return base_list_type::insert(where, *New); | 244 | 89.0M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::insert(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::Instruction*) Line | Count | Source | 241 | 56.6M | iterator insert(iterator where, pointer New) { | 242 | 56.6M | this->addNodeToList(New); // Notify traits that we added a node... | 243 | 56.6M | return base_list_type::insert(where, *New); | 244 | 56.6M | } |
|
245 | | |
246 | | iterator insert(iterator where, const_reference New) { |
247 | | return this->insert(where, new value_type(New)); |
248 | | } |
249 | | |
250 | 859k | iterator insertAfter(iterator where, pointer New) { |
251 | 859k | if (empty()) |
252 | 0 | return insert(begin(), New); |
253 | 859k | else |
254 | 859k | return insert(++where, New); |
255 | 859k | } Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::insertAfter(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>, llvm::IndexListEntry*) llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::insertAfter(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::MachineInstr*) Line | Count | Source | 250 | 63 | iterator insertAfter(iterator where, pointer New) { | 251 | 63 | if (empty()) | 252 | 0 | return insert(begin(), New); | 253 | 63 | else | 254 | 63 | return insert(++where, New); | 255 | 63 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::insertAfter(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::Instruction*) Line | Count | Source | 250 | 278k | iterator insertAfter(iterator where, pointer New) { | 251 | 278k | if (empty()) | 252 | 0 | return insert(begin(), New); | 253 | 278k | else | 254 | 278k | return insert(++where, New); | 255 | 278k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::insertAfter(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::BasicBlock*) Line | Count | Source | 250 | 580k | iterator insertAfter(iterator where, pointer New) { | 251 | 580k | if (empty()) | 252 | 0 | return insert(begin(), New); | 253 | 580k | else | 254 | 580k | return insert(++where, New); | 255 | 580k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::insertAfter(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::Function*) Line | Count | Source | 250 | 155 | iterator insertAfter(iterator where, pointer New) { | 251 | 155 | if (empty()) | 252 | 0 | return insert(begin(), New); | 253 | 155 | else | 254 | 155 | return insert(++where, New); | 255 | 155 | } |
|
256 | | |
257 | | /// Clone another list. |
258 | | template <class Cloner> void cloneFrom(const iplist_impl &L2, Cloner clone) { |
259 | | clear(); |
260 | | for (const_reference V : L2) |
261 | | push_back(clone(V)); |
262 | | } |
263 | | |
264 | 372M | pointer remove(iterator &IT) { |
265 | 372M | pointer Node = &*IT++; |
266 | 372M | this->removeNodeFromList(Node); // Notify traits that we removed a node... |
267 | 372M | base_list_type::remove(*Node); |
268 | 372M | return Node; |
269 | 372M | } llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>&) Line | Count | Source | 264 | 5.99M | pointer remove(iterator &IT) { | 265 | 5.99M | pointer Node = &*IT++; | 266 | 5.99M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 5.99M | base_list_type::remove(*Node); | 268 | 5.99M | return Node; | 269 | 5.99M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>&) Line | Count | Source | 264 | 89.0M | pointer remove(iterator &IT) { | 265 | 89.0M | pointer Node = &*IT++; | 266 | 89.0M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 89.0M | base_list_type::remove(*Node); | 268 | 89.0M | return Node; | 269 | 89.0M | } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<clang::ento::BugReport, false, false, void>, false, false>&) Line | Count | Source | 264 | 7.34k | pointer remove(iterator &IT) { | 265 | 7.34k | pointer Node = &*IT++; | 266 | 7.34k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 7.34k | base_list_type::remove(*Node); | 268 | 7.34k | return Node; | 269 | 7.34k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>&) Line | Count | Source | 264 | 451k | pointer remove(iterator &IT) { | 265 | 451k | pointer Node = &*IT++; | 266 | 451k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 451k | base_list_type::remove(*Node); | 268 | 451k | return Node; | 269 | 451k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::PredicateBase, false, false, void>, false, false>&) Line | Count | Source | 264 | 706 | pointer remove(iterator &IT) { | 265 | 706 | pointer Node = &*IT++; | 266 | 706 | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 706 | base_list_type::remove(*Node); | 268 | 706 | return Node; | 269 | 706 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MCFragment, false, false, void>, false, false>&) Line | Count | Source | 264 | 5.09M | pointer remove(iterator &IT) { | 265 | 5.09M | pointer Node = &*IT++; | 266 | 5.09M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 5.09M | base_list_type::remove(*Node); | 268 | 5.09M | return Node; | 269 | 5.09M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::AliasSet, false, false, void>, false, false>&) Line | Count | Source | 264 | 1.56M | pointer remove(iterator &IT) { | 265 | 1.56M | pointer Node = &*IT++; | 266 | 1.56M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 1.56M | base_list_type::remove(*Node); | 268 | 1.56M | return Node; | 269 | 1.56M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false>&) Line | Count | Source | 264 | 90 | pointer remove(iterator &IT) { | 265 | 90 | pointer Node = &*IT++; | 266 | 90 | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 90 | base_list_type::remove(*Node); | 268 | 90 | return Node; | 269 | 90 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false>&) Line | Count | Source | 264 | 2.44k | pointer remove(iterator &IT) { | 265 | 2.44k | pointer Node = &*IT++; | 266 | 2.44k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 2.44k | base_list_type::remove(*Node); | 268 | 2.44k | return Node; | 269 | 2.44k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>&) Line | Count | Source | 264 | 4.55M | pointer remove(iterator &IT) { | 265 | 4.55M | pointer Node = &*IT++; | 266 | 4.55M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 4.55M | base_list_type::remove(*Node); | 268 | 4.55M | return Node; | 269 | 4.55M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false>&) Line | Count | Source | 264 | 7.33M | pointer remove(iterator &IT) { | 265 | 7.33M | pointer Node = &*IT++; | 266 | 7.33M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 7.33M | base_list_type::remove(*Node); | 268 | 7.33M | return Node; | 269 | 7.33M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IVStrideUse, false, false, void>, false, false>&) Line | Count | Source | 264 | 899k | pointer remove(iterator &IT) { | 265 | 899k | pointer Node = &*IT++; | 266 | 899k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 899k | base_list_type::remove(*Node); | 268 | 899k | return Node; | 269 | 899k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>&) Line | Count | Source | 264 | 2.14M | pointer remove(iterator &IT) { | 265 | 2.14M | pointer Node = &*IT++; | 266 | 2.14M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 2.14M | base_list_type::remove(*Node); | 268 | 2.14M | return Node; | 269 | 2.14M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>&) Line | Count | Source | 264 | 128k | pointer remove(iterator &IT) { | 265 | 128k | pointer Node = &*IT++; | 266 | 128k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 128k | base_list_type::remove(*Node); | 268 | 128k | return Node; | 269 | 128k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>&) Line | Count | Source | 264 | 35.8M | pointer remove(iterator &IT) { | 265 | 35.8M | pointer Node = &*IT++; | 266 | 35.8M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 35.8M | base_list_type::remove(*Node); | 268 | 35.8M | return Node; | 269 | 35.8M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false>&) Line | Count | Source | 264 | 167M | pointer remove(iterator &IT) { | 265 | 167M | pointer Node = &*IT++; | 266 | 167M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 167M | base_list_type::remove(*Node); | 268 | 167M | return Node; | 269 | 167M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>&) Line | Count | Source | 264 | 51.9M | pointer remove(iterator &IT) { | 265 | 51.9M | pointer Node = &*IT++; | 266 | 51.9M | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 51.9M | base_list_type::remove(*Node); | 268 | 51.9M | return Node; | 269 | 51.9M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::NamedMDNode, false, false, void>, false, false>&) Line | Count | Source | 264 | 17.7k | pointer remove(iterator &IT) { | 265 | 17.7k | pointer Node = &*IT++; | 266 | 17.7k | this->removeNodeFromList(Node); // Notify traits that we removed a node... | 267 | 17.7k | base_list_type::remove(*Node); | 268 | 17.7k | return Node; | 269 | 17.7k | } |
|
270 | | |
271 | 139M | pointer remove(const iterator &IT) { |
272 | 139M | iterator MutIt = IT; |
273 | 139M | return remove(MutIt); |
274 | 139M | } llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false> const&) Line | Count | Source | 271 | 221k | pointer remove(const iterator &IT) { | 272 | 221k | iterator MutIt = IT; | 273 | 221k | return remove(MutIt); | 274 | 221k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false> const&) Line | Count | Source | 271 | 137M | pointer remove(const iterator &IT) { | 272 | 137M | iterator MutIt = IT; | 273 | 137M | return remove(MutIt); | 274 | 137M | } |
Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false> const&) llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false> const&) Line | Count | Source | 271 | 9 | pointer remove(const iterator &IT) { | 272 | 9 | iterator MutIt = IT; | 273 | 9 | return remove(MutIt); | 274 | 9 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false> const&) Line | Count | Source | 271 | 151 | pointer remove(const iterator &IT) { | 272 | 151 | iterator MutIt = IT; | 273 | 151 | return remove(MutIt); | 274 | 151 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false> const&) Line | Count | Source | 271 | 56 | pointer remove(const iterator &IT) { | 272 | 56 | iterator MutIt = IT; | 273 | 56 | return remove(MutIt); | 274 | 56 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false> const&) Line | Count | Source | 271 | 72.5k | pointer remove(const iterator &IT) { | 272 | 72.5k | iterator MutIt = IT; | 273 | 72.5k | return remove(MutIt); | 274 | 72.5k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false> const&) Line | Count | Source | 271 | 943k | pointer remove(const iterator &IT) { | 272 | 943k | iterator MutIt = IT; | 273 | 943k | return remove(MutIt); | 274 | 943k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false> const&) Line | Count | Source | 271 | 841 | pointer remove(const iterator &IT) { | 272 | 841 | iterator MutIt = IT; | 273 | 841 | return remove(MutIt); | 274 | 841 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false> const&) Line | Count | Source | 271 | 981k | pointer remove(const iterator &IT) { | 272 | 981k | iterator MutIt = IT; | 273 | 981k | return remove(MutIt); | 274 | 981k | } |
|
275 | | |
276 | 134M | pointer remove(pointer IT) { return remove(iterator(IT)); } llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::remove(llvm::Instruction*) Line | Count | Source | 276 | 443k | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::remove(llvm::BasicBlock*) Line | Count | Source | 276 | 150 | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::remove(llvm::MachineInstr*) Line | Count | Source | 276 | 7 | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::remove(llvm::MemoryAccess*) Line | Count | Source | 276 | 56 | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::remove(llvm::Function*) Line | Count | Source | 276 | 72.4k | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::remove(llvm::SDNode*) Line | Count | Source | 276 | 134M | pointer remove(pointer IT) { return remove(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::remove(llvm::MachineBasicBlock*) Line | Count | Source | 276 | 221k | pointer remove(pointer IT) { return remove(iterator(IT)); } |
|
277 | | pointer remove(reference IT) { return remove(iterator(IT)); } |
278 | | |
279 | | // erase - remove a node from the controlled sequence... and delete it. |
280 | 202M | iterator erase(iterator where) { |
281 | 202M | this->deleteNode(remove(where)); |
282 | 202M | return where; |
283 | 202M | } llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>) Line | Count | Source | 280 | 34.8M | iterator erase(iterator where) { | 281 | 34.8M | this->deleteNode(remove(where)); | 282 | 34.8M | return where; | 283 | 34.8M | } |
Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false>) llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>) Line | Count | Source | 280 | 128k | iterator erase(iterator where) { | 281 | 128k | this->deleteNode(remove(where)); | 282 | 128k | return where; | 283 | 128k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false>) Line | Count | Source | 280 | 2.43k | iterator erase(iterator where) { | 281 | 2.43k | this->deleteNode(remove(where)); | 282 | 2.43k | return where; | 283 | 2.43k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false>) Line | Count | Source | 280 | 90 | iterator erase(iterator where) { | 281 | 90 | this->deleteNode(remove(where)); | 282 | 90 | return where; | 283 | 90 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>) Line | Count | Source | 280 | 5.77M | iterator erase(iterator where) { | 281 | 5.77M | this->deleteNode(remove(where)); | 282 | 5.77M | return where; | 283 | 5.77M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::NamedMDNode, false, false, void>, false, false>) Line | Count | Source | 280 | 17.7k | iterator erase(iterator where) { | 281 | 17.7k | this->deleteNode(remove(where)); | 282 | 17.7k | return where; | 283 | 17.7k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>) Line | Count | Source | 280 | 89.0M | iterator erase(iterator where) { | 281 | 89.0M | this->deleteNode(remove(where)); | 282 | 89.0M | return where; | 283 | 89.0M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::AliasSet, false, false, void>, false, false>) Line | Count | Source | 280 | 1.56M | iterator erase(iterator where) { | 281 | 1.56M | this->deleteNode(remove(where)); | 282 | 1.56M | return where; | 283 | 1.56M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MCFragment, false, false, void>, false, false>) Line | Count | Source | 280 | 5.09M | iterator erase(iterator where) { | 281 | 5.09M | this->deleteNode(remove(where)); | 282 | 5.09M | return where; | 283 | 5.09M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::PredicateBase, false, false, void>, false, false>) Line | Count | Source | 280 | 706 | iterator erase(iterator where) { | 281 | 706 | this->deleteNode(remove(where)); | 282 | 706 | return where; | 283 | 706 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>) Line | Count | Source | 280 | 451k | iterator erase(iterator where) { | 281 | 451k | this->deleteNode(remove(where)); | 282 | 451k | return where; | 283 | 451k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>) Line | Count | Source | 280 | 4.55M | iterator erase(iterator where) { | 281 | 4.55M | this->deleteNode(remove(where)); | 282 | 4.55M | return where; | 283 | 4.55M | } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<clang::ento::BugReport, false, false, void>, false, false>) Line | Count | Source | 280 | 7.34k | iterator erase(iterator where) { | 281 | 7.34k | this->deleteNode(remove(where)); | 282 | 7.34k | return where; | 283 | 7.34k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false>) Line | Count | Source | 280 | 7.33M | iterator erase(iterator where) { | 281 | 7.33M | this->deleteNode(remove(where)); | 282 | 7.33M | return where; | 283 | 7.33M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IVStrideUse, false, false, void>, false, false>) Line | Count | Source | 280 | 899k | iterator erase(iterator where) { | 281 | 899k | this->deleteNode(remove(where)); | 282 | 899k | return where; | 283 | 899k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>) Line | Count | Source | 280 | 51.0M | iterator erase(iterator where) { | 281 | 51.0M | this->deleteNode(remove(where)); | 282 | 51.0M | return where; | 283 | 51.0M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>) Line | Count | Source | 280 | 2.07M | iterator erase(iterator where) { | 281 | 2.07M | this->deleteNode(remove(where)); | 282 | 2.07M | return where; | 283 | 2.07M | } |
|
284 | | |
285 | 3.19M | iterator erase(pointer IT) { return erase(iterator(IT)); } llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::erase(llvm::GlobalAlias*) Line | Count | Source | 285 | 297 | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::erase(llvm::BasicBlock*) Line | Count | Source | 285 | 114k | iterator erase(pointer IT) { return erase(iterator(IT)); } |
Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::erase(llvm::IndexListEntry*) llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::erase(llvm::MachineBasicBlock*) Line | Count | Source | 285 | 521k | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::erase(llvm::GlobalVariable*) Line | Count | Source | 285 | 421 | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::erase(llvm::AliasSet*) Line | Count | Source | 285 | 102k | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::erase(llvm::Instruction*) Line | Count | Source | 285 | 2.35M | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::erase(llvm::Function*) Line | Count | Source | 285 | 100 | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::erase(llvm::MemoryAccess*) Line | Count | Source | 285 | 96.4k | iterator erase(pointer IT) { return erase(iterator(IT)); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::erase(llvm::IVStrideUse*) Line | Count | Source | 285 | 411 | iterator erase(pointer IT) { return erase(iterator(IT)); } |
|
286 | | iterator erase(reference IT) { return erase(iterator(IT)); } |
287 | | |
288 | | /// Remove all nodes from the list like clear(), but do not call |
289 | | /// removeNodeFromList() or deleteNode(). |
290 | | /// |
291 | | /// This should only be used immediately before freeing nodes in bulk to |
292 | | /// avoid traversing the list and bringing all the nodes into cache. |
293 | 5.31M | void clearAndLeakNodesUnsafely() { base_list_type::clear(); } llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::clearAndLeakNodesUnsafely() Line | Count | Source | 293 | 66.6k | void clearAndLeakNodesUnsafely() { base_list_type::clear(); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::clearAndLeakNodesUnsafely() Line | Count | Source | 293 | 5.25M | void clearAndLeakNodesUnsafely() { base_list_type::clear(); } |
|
294 | | |
295 | | private: |
296 | | // transfer - The heart of the splice function. Move linked list nodes from |
297 | | // [first, last) into position. |
298 | | // |
299 | 11.1M | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { |
300 | 11.1M | if (position == last) |
301 | 23.9k | return; |
302 | 11.1M | |
303 | 11.0M | if (11.0M this != &L211.0M ) // Notify traits we moved the nodes... |
304 | 6.00M | this->transferNodesFromList(L2, first, last); |
305 | 11.1M | |
306 | 11.1M | base_list_type::splice(position, L2, first, last); |
307 | 11.1M | } llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>) Line | Count | Source | 299 | 17.1k | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 17.1k | if (position == last) | 301 | 0 | return; | 302 | 17.1k | | 303 | 17.1k | if (17.1k this != &L217.1k ) // Notify traits we moved the nodes... | 304 | 0 | this->transferNodesFromList(L2, first, last); | 305 | 17.1k | | 306 | 17.1k | base_list_type::splice(position, L2, first, last); | 307 | 17.1k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>) Line | Count | Source | 299 | 294k | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 294k | if (position == last) | 301 | 0 | return; | 302 | 294k | | 303 | 294k | if (294k this != &L2294k ) // Notify traits we moved the nodes... | 304 | 7.01k | this->transferNodesFromList(L2, first, last); | 305 | 294k | | 306 | 294k | base_list_type::splice(position, L2, first, last); | 307 | 294k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>) Line | Count | Source | 299 | 6.26M | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 6.26M | if (position == last) | 301 | 23.9k | return; | 302 | 6.26M | | 303 | 6.24M | if (6.24M this != &L26.24M ) // Notify traits we moved the nodes... | 304 | 3.98M | this->transferNodesFromList(L2, first, last); | 305 | 6.26M | | 306 | 6.26M | base_list_type::splice(position, L2, first, last); | 307 | 6.26M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>) Line | Count | Source | 299 | 296 | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 296 | if (position == last) | 301 | 0 | return; | 302 | 296 | | 303 | 296 | if (296 this != &L2296 ) // Notify traits we moved the nodes... | 304 | 0 | this->transferNodesFromList(L2, first, last); | 305 | 296 | | 306 | 296 | base_list_type::splice(position, L2, first, last); | 307 | 296 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>) Line | Count | Source | 299 | 2.38M | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 2.38M | if (position == last) | 301 | 0 | return; | 302 | 2.38M | | 303 | 2.38M | if (2.38M this != &L22.38M ) // Notify traits we moved the nodes... | 304 | 2.01M | this->transferNodesFromList(L2, first, last); | 305 | 2.38M | | 306 | 2.38M | base_list_type::splice(position, L2, first, last); | 307 | 2.38M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::transfer(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>) Line | Count | Source | 299 | 2.14M | void transfer(iterator position, iplist_impl &L2, iterator first, iterator last) { | 300 | 2.14M | if (position == last) | 301 | 0 | return; | 302 | 2.14M | | 303 | 2.14M | if (2.14M this != &L22.14M ) // Notify traits we moved the nodes... | 304 | 0 | this->transferNodesFromList(L2, first, last); | 305 | 2.14M | | 306 | 2.14M | base_list_type::splice(position, L2, first, last); | 307 | 2.14M | } |
|
308 | | |
309 | | public: |
310 | | //===----------------------------------------------------------------------=== |
311 | | // Functionality derived from other functions defined above... |
312 | | // |
313 | | |
314 | | using base_list_type::size; |
315 | | |
316 | 74.4M | iterator erase(iterator first, iterator last) { |
317 | 233M | while (first != last) |
318 | 159M | first = erase(first); |
319 | 74.4M | return last; |
320 | 74.4M | } llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>) Line | Count | Source | 316 | 9.48M | iterator erase(iterator first, iterator last) { | 317 | 16.8M | while (first != last) | 318 | 7.37M | first = erase(first); | 319 | 9.48M | return last; | 320 | 9.48M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::PredicateBase, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::PredicateBase, false, false, void>, false, false>) Line | Count | Source | 316 | 339 | iterator erase(iterator first, iterator last) { | 317 | 1.04k | while (first != last) | 318 | 706 | first = erase(first); | 319 | 339 | return last; | 320 | 339 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::VPRecipeBase, false, false, void>, false, false>) Line | Count | Source | 316 | 223k | iterator erase(iterator first, iterator last) { | 317 | 674k | while (first != last) | 318 | 451k | first = erase(first); | 319 | 223k | return last; | 320 | 223k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::SDNode, false, false, void>, false, false>) Line | Count | Source | 316 | 35.0k | iterator erase(iterator first, iterator last) { | 317 | 35.0k | while (first != last) | 318 | 0 | first = erase(first); | 319 | 35.0k | return last; | 320 | 35.0k | } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<clang::ento::BugReport, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<clang::ento::BugReport, false, false, void>, false, false>) Line | Count | Source | 316 | 6.88k | iterator erase(iterator first, iterator last) { | 317 | 14.2k | while (first != last) | 318 | 7.34k | first = erase(first); | 319 | 6.88k | return last; | 320 | 6.88k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::AliasSet, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::AliasSet, false, false, void>, false, false>) Line | Count | Source | 316 | 1.86M | iterator erase(iterator first, iterator last) { | 317 | 3.32M | while (first != last) | 318 | 1.46M | first = erase(first); | 319 | 1.86M | return last; | 320 | 1.86M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IndexListEntry, false, false, void>, false, false>) Line | Count | Source | 316 | 1.26M | iterator erase(iterator first, iterator last) { | 317 | 90.3M | while (first != last) | 318 | 89.0M | first = erase(first); | 319 | 1.26M | return last; | 320 | 1.26M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>) Line | Count | Source | 316 | 52.8M | iterator erase(iterator first, iterator last) { | 317 | 99.9M | while (first != last) | 318 | 47.1M | first = erase(first); | 319 | 52.8M | return last; | 320 | 52.8M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IVStrideUse, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::IVStrideUse, false, false, void>, false, false>) Line | Count | Source | 316 | 726k | iterator erase(iterator first, iterator last) { | 317 | 1.62M | while (first != last) | 318 | 898k | first = erase(first); | 319 | 726k | return last; | 320 | 726k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MemoryAccess, false, false, llvm::MSSAHelpers::AllAccessTag>, false, false>) Line | Count | Source | 316 | 2.78M | iterator erase(iterator first, iterator last) { | 317 | 10.0M | while (first != last) | 318 | 7.24M | first = erase(first); | 319 | 2.78M | return last; | 320 | 2.78M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>) Line | Count | Source | 316 | 598k | iterator erase(iterator first, iterator last) { | 317 | 598k | while (first != last) | 318 | 0 | first = erase(first); | 319 | 598k | return last; | 320 | 598k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MCFragment, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MCFragment, false, false, void>, false, false>) Line | Count | Source | 316 | 2.15M | iterator erase(iterator first, iterator last) { | 317 | 7.25M | while (first != last) | 318 | 5.09M | first = erase(first); | 319 | 2.15M | return last; | 320 | 2.15M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>) Line | Count | Source | 316 | 2.14M | iterator erase(iterator first, iterator last) { | 317 | 2.14M | while (first != last) | 318 | 0 | first = erase(first); | 319 | 2.14M | return last; | 320 | 2.14M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>) Line | Count | Source | 316 | 72.4k | iterator erase(iterator first, iterator last) { | 317 | 153k | while (first != last) | 318 | 80.8k | first = erase(first); | 319 | 72.4k | return last; | 320 | 72.4k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>) Line | Count | Source | 316 | 72.4k | iterator erase(iterator first, iterator last) { | 317 | 436k | while (first != last) | 318 | 363k | first = erase(first); | 319 | 72.4k | return last; | 320 | 72.4k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalAlias, false, false, void>, false, false>) Line | Count | Source | 316 | 72.4k | iterator erase(iterator first, iterator last) { | 317 | 74.5k | while (first != last) | 318 | 2.06k | first = erase(first); | 319 | 72.4k | return last; | 320 | 72.4k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalIFunc, false, false, void>, false, false>) Line | Count | Source | 316 | 72.4k | iterator erase(iterator first, iterator last) { | 317 | 72.5k | while (first != last) | 318 | 83 | first = erase(first); | 319 | 72.4k | return last; | 320 | 72.4k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::NamedMDNode, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::NamedMDNode, false, false, void>, false, false>) Line | Count | Source | 316 | 72.4k | iterator erase(iterator first, iterator last) { | 317 | 90.0k | while (first != last) | 318 | 17.6k | first = erase(first); | 319 | 72.4k | return last; | 320 | 72.4k | } |
|
321 | | |
322 | 27.6M | void clear() { erase(begin(), end()); } llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::clear() Line | Count | Source | 322 | 223k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::clear() Line | Count | Source | 322 | 2.78M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::clear() Line | Count | Source | 322 | 339 | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::clear() Line | Count | Source | 322 | 2.15M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::clear() Line | Count | Source | 322 | 1.86M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::clear() Line | Count | Source | 322 | 1.26M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::clear() Line | Count | Source | 322 | 5.99M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::clear() Line | Count | Source | 322 | 726k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::clear() Line | Count | Source | 322 | 72.4k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::clear() Line | Count | Source | 322 | 6.88k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::clear() Line | Count | Source | 322 | 72.4k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::clear() Line | Count | Source | 322 | 72.4k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::clear() Line | Count | Source | 322 | 72.4k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::clear() Line | Count | Source | 322 | 72.4k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::clear() Line | Count | Source | 322 | 2.14M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::clear() Line | Count | Source | 322 | 9.48M | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::clear() Line | Count | Source | 322 | 598k | void clear() { erase(begin(), end()); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::clear() Line | Count | Source | 322 | 35.0k | void clear() { erase(begin(), end()); } |
|
323 | | |
324 | | // Front and back inserters... |
325 | 958k | void push_front(pointer val) { insert(begin(), val); } llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::push_front(llvm::MachineBasicBlock*) Line | Count | Source | 325 | 272 | void push_front(pointer val) { insert(begin(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::push_front(llvm::MemoryAccess*) Line | Count | Source | 325 | 958k | void push_front(pointer val) { insert(begin(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::push_front(llvm::Instruction*) Line | Count | Source | 325 | 21 | void push_front(pointer val) { insert(begin(), val); } |
|
326 | 259M | void push_back(pointer val) { insert(end(), val); } llvm::iplist_impl<llvm::simple_ilist<llvm::AliasSet>, llvm::ilist_traits<llvm::AliasSet> >::push_back(llvm::AliasSet*) Line | Count | Source | 326 | 1.56M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::push_back(llvm::Instruction*) Line | Count | Source | 326 | 29.7M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::push_back(llvm::Function*) Line | Count | Source | 326 | 2.84M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::push_back(llvm::MachineInstr*) Line | Count | Source | 326 | 1.08k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::push_back(llvm::MachineBasicBlock*) Line | Count | Source | 326 | 5.26M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::push_back(llvm::BasicBlock*) Line | Count | Source | 326 | 5.40M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::push_back(llvm::GlobalVariable*) Line | Count | Source | 326 | 863k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalAlias>, llvm::SymbolTableListTraits<llvm::GlobalAlias> >::push_back(llvm::GlobalAlias*) Line | Count | Source | 326 | 2.44k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalIFunc>, llvm::SymbolTableListTraits<llvm::GlobalIFunc> >::push_back(llvm::GlobalIFunc*) Line | Count | Source | 326 | 90 | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::NamedMDNode>, llvm::ilist_traits<llvm::NamedMDNode> >::push_back(llvm::NamedMDNode*) Line | Count | Source | 326 | 52.5k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::push_back(llvm::MCFragment*) Line | Count | Source | 326 | 13.1k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::PredicateBase>, llvm::ilist_traits<llvm::PredicateBase> >::push_back(llvm::PredicateBase*) Line | Count | Source | 326 | 706 | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::VPRecipeBase>, llvm::ilist_traits<llvm::VPRecipeBase> >::push_back(llvm::VPRecipeBase*) Line | Count | Source | 326 | 451k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::SDNode>, llvm::ilist_traits<llvm::SDNode> >::push_back(llvm::SDNode*) Line | Count | Source | 326 | 119M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<clang::ento::BugReport>, llvm::ilist_traits<clang::ento::BugReport> >::push_back(clang::ento::BugReport*) Line | Count | Source | 326 | 7.34k | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IndexListEntry>, llvm::ilist_traits<llvm::IndexListEntry> >::push_back(llvm::IndexListEntry*) Line | Count | Source | 326 | 86.5M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >, llvm::ilist_traits<llvm::MemoryAccess> >::push_back(llvm::MemoryAccess*) Line | Count | Source | 326 | 6.37M | void push_back(pointer val) { insert(end(), val); } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::push_back(llvm::IVStrideUse*) Line | Count | Source | 326 | 899k | void push_back(pointer val) { insert(end(), val); } |
|
327 | 58.9k | void pop_front() { |
328 | 58.9k | assert(!empty() && "pop_front() on empty list!"); |
329 | 58.9k | erase(begin()); |
330 | 58.9k | } Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::pop_front() llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::pop_front() Line | Count | Source | 327 | 58.9k | void pop_front() { | 328 | 58.9k | assert(!empty() && "pop_front() on empty list!"); | 329 | 58.9k | erase(begin()); | 330 | 58.9k | } |
|
331 | 904k | void pop_back() { |
332 | 904k | assert(!empty() && "pop_back() on empty list!"); |
333 | 904k | iterator t = end(); erase(--t); |
334 | 904k | } Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::pop_back() llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::pop_back() Line | Count | Source | 331 | 152k | void pop_back() { | 332 | 152k | assert(!empty() && "pop_back() on empty list!"); | 333 | 152k | iterator t = end(); erase(--t); | 334 | 152k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::IVStrideUse>, llvm::ilist_traits<llvm::IVStrideUse> >::pop_back() Line | Count | Source | 331 | 571 | void pop_back() { | 332 | 571 | assert(!empty() && "pop_back() on empty list!"); | 333 | 571 | iterator t = end(); erase(--t); | 334 | 571 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::pop_back() Line | Count | Source | 331 | 751k | void pop_back() { | 332 | 751k | assert(!empty() && "pop_back() on empty list!"); | 333 | 751k | iterator t = end(); erase(--t); | 334 | 751k | } |
|
335 | | |
336 | | // Special forms of insert... |
337 | 215 | template<class InIt> void insert(iterator where, InIt first, InIt last) { |
338 | 217 | for (; first != last217 ; ++first2 ) insert(where, *first)2 ; |
339 | 215 | } |
340 | | |
341 | | // Splice members - defined in terms of transfer... |
342 | 1.15M | void splice(iterator where, iplist_impl &L2) { |
343 | 1.15M | if (!L2.empty()) |
344 | 1.03M | transfer(where, L2, L2.begin(), L2.end()); |
345 | 1.15M | } llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >&) Line | Count | Source | 342 | 7.01k | void splice(iterator where, iplist_impl &L2) { | 343 | 7.01k | if (!L2.empty()) | 344 | 7.01k | transfer(where, L2, L2.begin(), L2.end()); | 345 | 7.01k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >&) Line | Count | Source | 342 | 1.14M | void splice(iterator where, iplist_impl &L2) { | 343 | 1.14M | if (!L2.empty()) | 344 | 1.02M | transfer(where, L2, L2.begin(), L2.end()); | 345 | 1.14M | } |
|
346 | 3.47M | void splice(iterator where, iplist_impl &L2, iterator first) { |
347 | 3.47M | iterator last = first; ++last; |
348 | 3.47M | if (where == first || 3.47M where == last3.43M ) return294k ; // No change |
349 | 3.18M | transfer(where, L2, first, last); |
350 | 3.18M | } llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>) Line | Count | Source | 346 | 2.14M | void splice(iterator where, iplist_impl &L2, iterator first) { | 347 | 2.14M | iterator last = first; ++last; | 348 | 2.14M | if (where == first || 2.14M where == last2.14M ) return0 ; // No change | 349 | 2.14M | transfer(where, L2, first, last); | 350 | 2.14M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>) Line | Count | Source | 346 | 418k | void splice(iterator where, iplist_impl &L2, iterator first) { | 347 | 418k | iterator last = first; ++last; | 348 | 418k | if (where == first || 418k where == last393k ) return241k ; // No change | 349 | 177k | transfer(where, L2, first, last); | 350 | 177k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>) Line | Count | Source | 346 | 29.5k | void splice(iterator where, iplist_impl &L2, iterator first) { | 347 | 29.5k | iterator last = first; ++last; | 348 | 29.5k | if (where == first || 29.5k where == last29.5k ) return12.3k ; // No change | 349 | 17.1k | transfer(where, L2, first, last); | 350 | 17.1k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>) Line | Count | Source | 346 | 350 | void splice(iterator where, iplist_impl &L2, iterator first) { | 347 | 350 | iterator last = first; ++last; | 348 | 350 | if (where == first || 350 where == last350 ) return54 ; // No change | 349 | 296 | transfer(where, L2, first, last); | 350 | 296 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>) Line | Count | Source | 346 | 888k | void splice(iterator where, iplist_impl &L2, iterator first) { | 347 | 888k | iterator last = first; ++last; | 348 | 888k | if (where == first || 888k where == last866k ) return39.9k ; // No change | 349 | 848k | transfer(where, L2, first, last); | 350 | 848k | } |
|
351 | 6.91M | void splice(iterator where, iplist_impl &L2, iterator first, iterator last) { |
352 | 6.91M | if (first != last6.91M ) transfer(where, L2, first, last)6.88M ; |
353 | 6.91M | } Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>) llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineInstr, true, true, void>, false, false>) Line | Count | Source | 351 | 6.27M | void splice(iterator where, iplist_impl &L2, iterator first, iterator last) { | 352 | 6.27M | if (first != last6.27M ) transfer(where, L2, first, last)6.26M ; | 353 | 6.27M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>) Line | Count | Source | 351 | 530k | void splice(iterator where, iplist_impl &L2, iterator first, iterator last) { | 352 | 530k | if (first != last530k ) transfer(where, L2, first, last)508k ; | 353 | 530k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >&, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>) Line | Count | Source | 351 | 110k | void splice(iterator where, iplist_impl &L2, iterator first, iterator last) { | 352 | 110k | if (first != last110k ) transfer(where, L2, first, last)110k ; | 353 | 110k | } |
|
354 | 13 | void splice(iterator where, iplist_impl &L2, reference N) { |
355 | 13 | splice(where, L2, iterator(N)); |
356 | 13 | } |
357 | 2.03M | void splice(iterator where, iplist_impl &L2, pointer N) { |
358 | 2.03M | splice(where, L2, iterator(N)); |
359 | 2.03M | } llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >&, llvm::Instruction*) Line | Count | Source | 357 | 72.8k | void splice(iterator where, iplist_impl &L2, pointer N) { | 358 | 72.8k | splice(where, L2, iterator(N)); | 359 | 72.8k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::GlobalVariable, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::GlobalVariable>, llvm::SymbolTableListTraits<llvm::GlobalVariable> >&, llvm::GlobalVariable*) Line | Count | Source | 357 | 350 | void splice(iterator where, iplist_impl &L2, pointer N) { | 358 | 350 | splice(where, L2, iterator(N)); | 359 | 350 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >&, llvm::Function*) Line | Count | Source | 357 | 29.5k | void splice(iterator where, iplist_impl &L2, pointer N) { | 358 | 29.5k | splice(where, L2, iterator(N)); | 359 | 29.5k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::MachineBasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >&, llvm::MachineBasicBlock*) Line | Count | Source | 357 | 1.67M | void splice(iterator where, iplist_impl &L2, pointer N) { | 358 | 1.67M | splice(where, L2, iterator(N)); | 359 | 1.67M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::splice(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false>, llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >&, llvm::BasicBlock*) Line | Count | Source | 357 | 258k | void splice(iterator where, iplist_impl &L2, pointer N) { | 358 | 258k | splice(where, L2, iterator(N)); | 359 | 258k | } |
|
360 | | |
361 | | template <class Compare> |
362 | | void merge(iplist_impl &Right, Compare comp) { |
363 | | if (this == &Right) |
364 | | return; |
365 | | this->transferNodesFromList(Right, Right.begin(), Right.end()); |
366 | | base_list_type::merge(Right, comp); |
367 | | } |
368 | | void merge(iplist_impl &Right) { return merge(Right, op_less); } |
369 | | |
370 | | using base_list_type::sort; |
371 | | |
372 | | /// \brief Get the previous node, or \c nullptr for the list head. |
373 | 39.3M | pointer getPrevNode(reference N) const { |
374 | 39.3M | auto I = N.getIterator(); |
375 | 39.3M | if (I == begin()) |
376 | 1.28M | return nullptr; |
377 | 38.0M | return &*std::prev(I); |
378 | 39.3M | } llvm::iplist_impl<llvm::simple_ilist<llvm::MCFragment>, llvm::ilist_traits<llvm::MCFragment> >::getPrevNode(llvm::MCFragment&) const Line | Count | Source | 373 | 4.39M | pointer getPrevNode(reference N) const { | 374 | 4.39M | auto I = N.getIterator(); | 375 | 4.39M | if (I == begin()) | 376 | 420k | return nullptr; | 377 | 3.96M | return &*std::prev(I); | 378 | 4.39M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::getPrevNode(llvm::Instruction&) const Line | Count | Source | 373 | 34.9M | pointer getPrevNode(reference N) const { | 374 | 34.9M | auto I = N.getIterator(); | 375 | 34.9M | if (I == begin()) | 376 | 867k | return nullptr; | 377 | 34.0M | return &*std::prev(I); | 378 | 34.9M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::getPrevNode(llvm::MachineBasicBlock&) const Line | Count | Source | 373 | 35 | pointer getPrevNode(reference N) const { | 374 | 35 | auto I = N.getIterator(); | 375 | 35 | if (I == begin()) | 376 | 0 | return nullptr; | 377 | 35 | return &*std::prev(I); | 378 | 35 | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::getPrevNode(llvm::MachineInstr&) const Line | Count | Source | 373 | 20.3k | pointer getPrevNode(reference N) const { | 374 | 20.3k | auto I = N.getIterator(); | 375 | 20.3k | if (I == begin()) | 376 | 850 | return nullptr; | 377 | 19.5k | return &*std::prev(I); | 378 | 20.3k | } |
Unexecuted instantiation: llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::getPrevNode(llvm::BasicBlock&) const |
379 | | /// \brief Get the previous node, or \c nullptr for the list head. |
380 | | const_pointer getPrevNode(const_reference N) const { |
381 | | return getPrevNode(const_cast<reference >(N)); |
382 | | } |
383 | | |
384 | | /// \brief Get the next node, or \c nullptr for the list tail. |
385 | 61.3M | pointer getNextNode(reference N) const { |
386 | 61.3M | auto Next = std::next(N.getIterator()); |
387 | 61.3M | if (Next == end()) |
388 | 197k | return nullptr; |
389 | 61.1M | return &*Next; |
390 | 61.3M | } llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction>, llvm::SymbolTableListTraits<llvm::Instruction> >::getNextNode(llvm::Instruction&) const Line | Count | Source | 385 | 34.6M | pointer getNextNode(reference N) const { | 386 | 34.6M | auto Next = std::next(N.getIterator()); | 387 | 34.6M | if (Next == end()) | 388 | 35.0k | return nullptr; | 389 | 34.6M | return &*Next; | 390 | 34.6M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >, llvm::ilist_traits<llvm::MachineInstr> >::getNextNode(llvm::MachineInstr&) const Line | Count | Source | 385 | 10.7k | pointer getNextNode(reference N) const { | 386 | 10.7k | auto Next = std::next(N.getIterator()); | 387 | 10.7k | if (Next == end()) | 388 | 3 | return nullptr; | 389 | 10.7k | return &*Next; | 390 | 10.7k | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::MachineBasicBlock>, llvm::ilist_traits<llvm::MachineBasicBlock> >::getNextNode(llvm::MachineBasicBlock&) const Line | Count | Source | 385 | 26.3M | pointer getNextNode(reference N) const { | 386 | 26.3M | auto Next = std::next(N.getIterator()); | 387 | 26.3M | if (Next == end()) | 388 | 142k | return nullptr; | 389 | 26.1M | return &*Next; | 390 | 26.3M | } |
llvm::iplist_impl<llvm::simple_ilist<llvm::BasicBlock>, llvm::SymbolTableListTraits<llvm::BasicBlock> >::getNextNode(llvm::BasicBlock&) const Line | Count | Source | 385 | 328k | pointer getNextNode(reference N) const { | 386 | 328k | auto Next = std::next(N.getIterator()); | 387 | 328k | if (Next == end()) | 388 | 19.7k | return nullptr; | 389 | 308k | return &*Next; | 390 | 328k | } |
|
391 | | /// \brief Get the next node, or \c nullptr for the list tail. |
392 | | const_pointer getNextNode(const_reference N) const { |
393 | | return getNextNode(const_cast<reference >(N)); |
394 | | } |
395 | | }; |
396 | | |
397 | | /// An intrusive list with ownership and callbacks specified/controlled by |
398 | | /// ilist_traits, only with API safe for polymorphic types. |
399 | | /// |
400 | | /// The \p Options parameters are the same as those for \a simple_ilist. See |
401 | | /// there for a description of what's available. |
402 | | template <class T, class... Options> |
403 | | class iplist |
404 | | : public iplist_impl<simple_ilist<T, Options...>, ilist_traits<T>> { |
405 | | typedef typename iplist::iplist_impl_type iplist_impl_type; |
406 | | |
407 | | public: |
408 | 13.1M | iplist() = default; llvm::iplist<llvm::SDNode>::iplist() Line | Count | Source | 408 | 35.1k | iplist() = default; |
llvm::iplist<llvm::IndexListEntry>::iplist() Line | Count | Source | 408 | 66.8k | iplist() = default; |
llvm::iplist<llvm::MachineBasicBlock>::iplist() Line | Count | Source | 408 | 598k | iplist() = default; |
llvm::iplist<llvm::MachineInstr, llvm::ilist_sentinel_tracking<true> >::iplist() Line | Count | Source | 408 | 5.99M | iplist() = default; |
llvm::iplist<llvm::MemoryAccess, llvm::ilist_tag<llvm::MSSAHelpers::AllAccessTag> >::iplist() Line | Count | Source | 408 | 2.78M | iplist() = default; |
llvm::iplist<llvm::IVStrideUse>::iplist() Line | Count | Source | 408 | 363k | iplist() = default; |
llvm::iplist<llvm::AliasSet>::iplist() Line | Count | Source | 408 | 932k | iplist() = default; |
llvm::iplist<clang::ento::BugReport>::iplist() Line | Count | Source | 408 | 6.88k | iplist() = default; |
llvm::iplist<llvm::MCFragment>::iplist() Line | Count | Source | 408 | 2.16M | iplist() = default; |
llvm::iplist<llvm::PredicateBase>::iplist() Line | Count | Source | 408 | 339 | iplist() = default; |
llvm::iplist<llvm::VPRecipeBase>::iplist() Line | Count | Source | 408 | 111k | iplist() = default; |
llvm::iplist<llvm::NamedMDNode>::iplist() Line | Count | Source | 408 | 53.6k | iplist() = default; |
|
409 | | |
410 | | iplist(const iplist &X) = delete; |
411 | | iplist &operator=(const iplist &X) = delete; |
412 | | |
413 | 24 | iplist(iplist &&X) : iplist_impl_type(std::move(X)) {} |
414 | | iplist &operator=(iplist &&X) { |
415 | | *static_cast<iplist_impl_type *>(this) = std::move(X); |
416 | | return *this; |
417 | | } |
418 | | }; |
419 | | |
420 | | template <class T, class... Options> using ilist = iplist<T, Options...>; |
421 | | |
422 | | } // end namespace llvm |
423 | | |
424 | | namespace std { |
425 | | |
426 | | // Ensure that swap uses the fast list swap... |
427 | | template<class Ty> |
428 | | void swap(llvm::iplist<Ty> &Left, llvm::iplist<Ty> &Right) { |
429 | | Left.swap(Right); |
430 | | } |
431 | | |
432 | | } // end namespace std |
433 | | |
434 | | #endif // LLVM_ADT_ILIST_H |