/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/include/llvm/ADT/BitVector.h
Line | Count | Source (jump to first uncovered line) |
1 | | //===- llvm/ADT/BitVector.h - Bit vectors -----------------------*- 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 implements the BitVector class. |
11 | | // |
12 | | //===----------------------------------------------------------------------===// |
13 | | |
14 | | #ifndef LLVM_ADT_BITVECTOR_H |
15 | | #define LLVM_ADT_BITVECTOR_H |
16 | | |
17 | | #include "llvm/ADT/ArrayRef.h" |
18 | | #include "llvm/ADT/iterator_range.h" |
19 | | #include "llvm/Support/MathExtras.h" |
20 | | #include <algorithm> |
21 | | #include <cassert> |
22 | | #include <climits> |
23 | | #include <cstdint> |
24 | | #include <cstdlib> |
25 | | #include <cstring> |
26 | | #include <utility> |
27 | | |
28 | | namespace llvm { |
29 | | |
30 | | /// ForwardIterator for the bits that are set. |
31 | | /// Iterators get invalidated when resize / reserve is called. |
32 | | template <typename BitVectorT> class const_set_bits_iterator_impl { |
33 | | const BitVectorT &Parent; |
34 | | int Current = 0; |
35 | | |
36 | 157M | void advance() { |
37 | 157M | assert(Current != -1 && "Trying to advance past end."); |
38 | 157M | Current = Parent.find_next(Current); |
39 | 157M | } llvm::const_set_bits_iterator_impl<llvm::BitVector>::advance() Line | Count | Source | 36 | 150M | void advance() { | 37 | 150M | assert(Current != -1 && "Trying to advance past end."); | 38 | 150M | Current = Parent.find_next(Current); | 39 | 150M | } |
llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::advance() Line | Count | Source | 36 | 7.01M | void advance() { | 37 | 7.01M | assert(Current != -1 && "Trying to advance past end."); | 38 | 7.01M | Current = Parent.find_next(Current); | 39 | 7.01M | } |
|
40 | | |
41 | | public: |
42 | | const_set_bits_iterator_impl(const BitVectorT &Parent, int Current) |
43 | 40.4M | : Parent(Parent), Current(Current) {} llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::const_set_bits_iterator_impl(llvm::SmallBitVector const&, int) Line | Count | Source | 43 | 8.81M | : Parent(Parent), Current(Current) {} |
llvm::const_set_bits_iterator_impl<llvm::BitVector>::const_set_bits_iterator_impl(llvm::BitVector const&, int) Line | Count | Source | 43 | 31.6M | : Parent(Parent), Current(Current) {} |
|
44 | | explicit const_set_bits_iterator_impl(const BitVectorT &Parent) |
45 | 20.2M | : const_set_bits_iterator_impl(Parent, Parent.find_first()) {} llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::const_set_bits_iterator_impl(llvm::SmallBitVector const&) Line | Count | Source | 45 | 4.40M | : const_set_bits_iterator_impl(Parent, Parent.find_first()) {} |
llvm::const_set_bits_iterator_impl<llvm::BitVector>::const_set_bits_iterator_impl(llvm::BitVector const&) Line | Count | Source | 45 | 15.8M | : const_set_bits_iterator_impl(Parent, Parent.find_first()) {} |
|
46 | | const_set_bits_iterator_impl(const const_set_bits_iterator_impl &) = default; |
47 | | |
48 | | const_set_bits_iterator_impl operator++(int) { |
49 | | auto Prev = *this; |
50 | | advance(); |
51 | | return Prev; |
52 | | } |
53 | | |
54 | 157M | const_set_bits_iterator_impl &operator++() { |
55 | 157M | advance(); |
56 | 157M | return *this; |
57 | 157M | } llvm::const_set_bits_iterator_impl<llvm::BitVector>::operator++() Line | Count | Source | 54 | 150M | const_set_bits_iterator_impl &operator++() { | 55 | 150M | advance(); | 56 | 150M | return *this; | 57 | 150M | } |
llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::operator++() Line | Count | Source | 54 | 7.01M | const_set_bits_iterator_impl &operator++() { | 55 | 7.01M | advance(); | 56 | 7.01M | return *this; | 57 | 7.01M | } |
|
58 | | |
59 | 157M | unsigned operator*() const { return Current; } llvm::const_set_bits_iterator_impl<llvm::BitVector>::operator*() const Line | Count | Source | 59 | 150M | unsigned operator*() const { return Current; } |
llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::operator*() const Line | Count | Source | 59 | 7.01M | unsigned operator*() const { return Current; } |
|
60 | | |
61 | | bool operator==(const const_set_bits_iterator_impl &Other) const { |
62 | | assert(&Parent == &Other.Parent && |
63 | | "Comparing iterators from different BitVectors"); |
64 | | return Current == Other.Current; |
65 | | } |
66 | | |
67 | 177M | bool operator!=(const const_set_bits_iterator_impl &Other) const { |
68 | 177M | assert(&Parent == &Other.Parent && |
69 | 177M | "Comparing iterators from different BitVectors"); |
70 | 177M | return Current != Other.Current; |
71 | 177M | } llvm::const_set_bits_iterator_impl<llvm::SmallBitVector>::operator!=(llvm::const_set_bits_iterator_impl<llvm::SmallBitVector> const&) const Line | Count | Source | 67 | 11.4M | bool operator!=(const const_set_bits_iterator_impl &Other) const { | 68 | 11.4M | assert(&Parent == &Other.Parent && | 69 | 11.4M | "Comparing iterators from different BitVectors"); | 70 | 11.4M | return Current != Other.Current; | 71 | 11.4M | } |
llvm::const_set_bits_iterator_impl<llvm::BitVector>::operator!=(llvm::const_set_bits_iterator_impl<llvm::BitVector> const&) const Line | Count | Source | 67 | 166M | bool operator!=(const const_set_bits_iterator_impl &Other) const { | 68 | 166M | assert(&Parent == &Other.Parent && | 69 | 166M | "Comparing iterators from different BitVectors"); | 70 | 166M | return Current != Other.Current; | 71 | 166M | } |
|
72 | | }; |
73 | | |
74 | | class BitVector { |
75 | | typedef unsigned long BitWord; |
76 | | |
77 | | enum { BITWORD_SIZE = (unsigned)sizeof(BitWord) * CHAR_BIT }; |
78 | | |
79 | | static_assert(BITWORD_SIZE == 64 || BITWORD_SIZE == 32, |
80 | | "Unsupported word size"); |
81 | | |
82 | | MutableArrayRef<BitWord> Bits; // Actual bits. |
83 | | unsigned Size; // Size of bitvector in bits. |
84 | | |
85 | | public: |
86 | | typedef unsigned size_type; |
87 | | // Encapsulation of a single bit. |
88 | | class reference { |
89 | | friend class BitVector; |
90 | | |
91 | | BitWord *WordRef; |
92 | | unsigned BitPos; |
93 | | |
94 | | public: |
95 | 86.7M | reference(BitVector &b, unsigned Idx) { |
96 | 86.7M | WordRef = &b.Bits[Idx / BITWORD_SIZE]; |
97 | 86.7M | BitPos = Idx % BITWORD_SIZE; |
98 | 86.7M | } |
99 | | |
100 | | reference() = delete; |
101 | | reference(const reference&) = default; |
102 | | |
103 | 0 | reference &operator=(reference t) { |
104 | 0 | *this = bool(t); |
105 | 0 | return *this; |
106 | 0 | } |
107 | | |
108 | 7.72M | reference& operator=(bool t) { |
109 | 7.72M | if (t) |
110 | 1.93M | *WordRef |= BitWord(1) << BitPos; |
111 | 7.72M | else |
112 | 5.78M | *WordRef &= ~(BitWord(1) << BitPos); |
113 | 7.72M | return *this; |
114 | 7.72M | } |
115 | | |
116 | 78.9M | operator bool() const { |
117 | 78.9M | return ((*WordRef) & (BitWord(1) << BitPos)) != 0; |
118 | 78.9M | } |
119 | | }; |
120 | | |
121 | | typedef const_set_bits_iterator_impl<BitVector> const_set_bits_iterator; |
122 | | typedef const_set_bits_iterator set_iterator; |
123 | | |
124 | 15.8M | const_set_bits_iterator set_bits_begin() const { |
125 | 15.8M | return const_set_bits_iterator(*this); |
126 | 15.8M | } |
127 | 15.8M | const_set_bits_iterator set_bits_end() const { |
128 | 15.8M | return const_set_bits_iterator(*this, -1); |
129 | 15.8M | } |
130 | 15.8M | iterator_range<const_set_bits_iterator> set_bits() const { |
131 | 15.8M | return make_range(set_bits_begin(), set_bits_end()); |
132 | 15.8M | } |
133 | | |
134 | | /// BitVector default ctor - Creates an empty bitvector. |
135 | 48.6M | BitVector() : Size(0) {} |
136 | | |
137 | | /// BitVector ctor - Creates a bitvector of specified number of bits. All |
138 | | /// bits are initialized to the specified value. |
139 | 25.4M | explicit BitVector(unsigned s, bool t = false) : Size(s) { |
140 | 25.4M | size_t Capacity = NumBitWords(s); |
141 | 25.4M | Bits = allocate(Capacity); |
142 | 25.4M | init_words(Bits, t); |
143 | 25.4M | if (t) |
144 | 30.4k | clear_unused_bits(); |
145 | 25.4M | } |
146 | | |
147 | | /// BitVector copy ctor. |
148 | 8.80M | BitVector(const BitVector &RHS) : Size(RHS.size()) { |
149 | 8.80M | if (Size == 08.80M ) { |
150 | 762k | Bits = MutableArrayRef<BitWord>(); |
151 | 762k | return; |
152 | 762k | } |
153 | 8.80M | |
154 | 8.04M | size_t Capacity = NumBitWords(RHS.size()); |
155 | 8.04M | Bits = allocate(Capacity); |
156 | 8.04M | std::memcpy(Bits.data(), RHS.Bits.data(), Capacity * sizeof(BitWord)); |
157 | 8.04M | } |
158 | | |
159 | 9.22M | BitVector(BitVector &&RHS) : Bits(RHS.Bits), Size(RHS.Size) { |
160 | 9.22M | RHS.Bits = MutableArrayRef<BitWord>(); |
161 | 9.22M | RHS.Size = 0; |
162 | 9.22M | } |
163 | | |
164 | 92.0M | ~BitVector() { std::free(Bits.data()); } |
165 | | |
166 | | /// empty - Tests whether there are no bits in this bitvector. |
167 | 126M | bool empty() const { return Size == 0; } |
168 | | |
169 | | /// size - Returns the number of bits in this bitvector. |
170 | 597M | size_type size() const { return Size; } |
171 | | |
172 | | /// count - Returns the number of bits which are set. |
173 | 1.47M | size_type count() const { |
174 | 1.47M | unsigned NumBits = 0; |
175 | 7.84M | for (unsigned i = 0; i < NumBitWords(size())7.84M ; ++i6.37M ) |
176 | 6.37M | NumBits += countPopulation(Bits[i]); |
177 | 1.47M | return NumBits; |
178 | 1.47M | } |
179 | | |
180 | | /// any - Returns true if any bit is set. |
181 | 4.83M | bool any() const { |
182 | 9.11M | for (unsigned i = 0; i < NumBitWords(size())9.11M ; ++i4.27M ) |
183 | 8.00M | if (8.00M Bits[i] != 08.00M ) |
184 | 3.72M | return true; |
185 | 1.10M | return false; |
186 | 4.83M | } |
187 | | |
188 | | /// all - Returns true if all bits are set. |
189 | 2.75k | bool all() const { |
190 | 2.75k | for (unsigned i = 0; i < Size / BITWORD_SIZE2.75k ; ++i6 ) |
191 | 10 | if (10 Bits[i] != ~0UL10 ) |
192 | 4 | return false; |
193 | 2.75k | |
194 | 2.75k | // If bits remain check that they are ones. The unused bits are always zero. |
195 | 2.74k | if (unsigned 2.74k Remainder2.74k = Size % BITWORD_SIZE) |
196 | 2.73k | return Bits[Size / BITWORD_SIZE] == (1UL << Remainder) - 1; |
197 | 2.74k | |
198 | 11 | return true; |
199 | 2.75k | } |
200 | | |
201 | | /// none - Returns true if none of the bits are set. |
202 | 402k | bool none() const { |
203 | 402k | return !any(); |
204 | 402k | } |
205 | | |
206 | | /// find_first_in - Returns the index of the first set bit in the range |
207 | | /// [Begin, End). Returns -1 if all bits in the range are unset. |
208 | 179M | int find_first_in(unsigned Begin, unsigned End) const { |
209 | 179M | assert(Begin <= End && End <= Size); |
210 | 179M | if (Begin == End) |
211 | 4.34M | return -1; |
212 | 179M | |
213 | 174M | unsigned FirstWord = Begin / BITWORD_SIZE; |
214 | 174M | unsigned LastWord = (End - 1) / BITWORD_SIZE; |
215 | 174M | |
216 | 174M | // Check subsequent words. |
217 | 245M | for (unsigned i = FirstWord; i <= LastWord245M ; ++i70.5M ) { |
218 | 230M | BitWord Copy = Bits[i]; |
219 | 230M | |
220 | 230M | if (i == FirstWord230M ) { |
221 | 174M | unsigned FirstBit = Begin % BITWORD_SIZE; |
222 | 174M | Copy &= maskTrailingZeros<BitWord>(FirstBit); |
223 | 174M | } |
224 | 230M | |
225 | 230M | if (i == LastWord230M ) { |
226 | 108M | unsigned LastBit = (End - 1) % BITWORD_SIZE; |
227 | 108M | Copy &= maskTrailingOnes<BitWord>(LastBit + 1); |
228 | 108M | } |
229 | 230M | if (Copy != 0) |
230 | 160M | return i * BITWORD_SIZE + countTrailingZeros(Copy); |
231 | 230M | } |
232 | 14.5M | return -1; |
233 | 179M | } |
234 | | |
235 | | /// find_last_in - Returns the index of the last set bit in the range |
236 | | /// [Begin, End). Returns -1 if all bits in the range are unset. |
237 | | int find_last_in(unsigned Begin, unsigned End) const { |
238 | | assert(Begin <= End && End <= Size); |
239 | | if (Begin == End) |
240 | | return -1; |
241 | | |
242 | | unsigned LastWord = (End - 1) / BITWORD_SIZE; |
243 | | unsigned FirstWord = Begin / BITWORD_SIZE; |
244 | | |
245 | | for (unsigned i = LastWord + 1; i >= FirstWord + 1; --i) { |
246 | | unsigned CurrentWord = i - 1; |
247 | | |
248 | | BitWord Copy = Bits[CurrentWord]; |
249 | | if (CurrentWord == LastWord) { |
250 | | unsigned LastBit = (End - 1) % BITWORD_SIZE; |
251 | | Copy &= maskTrailingOnes<BitWord>(LastBit + 1); |
252 | | } |
253 | | |
254 | | if (CurrentWord == FirstWord) { |
255 | | unsigned FirstBit = Begin % BITWORD_SIZE; |
256 | | Copy &= maskTrailingZeros<BitWord>(FirstBit); |
257 | | } |
258 | | |
259 | | if (Copy != 0) |
260 | | return (CurrentWord + 1) * BITWORD_SIZE - countLeadingZeros(Copy) - 1; |
261 | | } |
262 | | |
263 | | return -1; |
264 | | } |
265 | | |
266 | | /// find_first_unset_in - Returns the index of the first unset bit in the |
267 | | /// range [Begin, End). Returns -1 if all bits in the range are set. |
268 | | int find_first_unset_in(unsigned Begin, unsigned End) const { |
269 | | assert(Begin <= End && End <= Size); |
270 | | if (Begin == End) |
271 | | return -1; |
272 | | |
273 | | unsigned FirstWord = Begin / BITWORD_SIZE; |
274 | | unsigned LastWord = (End - 1) / BITWORD_SIZE; |
275 | | |
276 | | // Check subsequent words. |
277 | | for (unsigned i = FirstWord; i <= LastWord; ++i) { |
278 | | BitWord Copy = Bits[i]; |
279 | | |
280 | | if (i == FirstWord) { |
281 | | unsigned FirstBit = Begin % BITWORD_SIZE; |
282 | | Copy |= maskTrailingOnes<BitWord>(FirstBit); |
283 | | } |
284 | | |
285 | | if (i == LastWord) { |
286 | | unsigned LastBit = (End - 1) % BITWORD_SIZE; |
287 | | Copy |= maskTrailingZeros<BitWord>(LastBit + 1); |
288 | | } |
289 | | if (Copy != ~0UL) { |
290 | | unsigned Result = i * BITWORD_SIZE + countTrailingOnes(Copy); |
291 | | return Result < size() ? Result : -1; |
292 | | } |
293 | | } |
294 | | return -1; |
295 | | } |
296 | | |
297 | | /// find_last_unset_in - Returns the index of the last unset bit in the |
298 | | /// range [Begin, End). Returns -1 if all bits in the range are set. |
299 | | int find_last_unset_in(unsigned Begin, unsigned End) const { |
300 | | assert(Begin <= End && End <= Size); |
301 | | if (Begin == End) |
302 | | return -1; |
303 | | |
304 | | unsigned LastWord = (End - 1) / BITWORD_SIZE; |
305 | | unsigned FirstWord = Begin / BITWORD_SIZE; |
306 | | |
307 | | for (unsigned i = LastWord + 1; i >= FirstWord + 1; --i) { |
308 | | unsigned CurrentWord = i - 1; |
309 | | |
310 | | BitWord Copy = Bits[CurrentWord]; |
311 | | if (CurrentWord == LastWord) { |
312 | | unsigned LastBit = (End - 1) % BITWORD_SIZE; |
313 | | Copy |= maskTrailingZeros<BitWord>(LastBit + 1); |
314 | | } |
315 | | |
316 | | if (CurrentWord == FirstWord) { |
317 | | unsigned FirstBit = Begin % BITWORD_SIZE; |
318 | | Copy |= maskTrailingOnes<BitWord>(FirstBit); |
319 | | } |
320 | | |
321 | | if (Copy != ~0UL) { |
322 | | unsigned Result = |
323 | | (CurrentWord + 1) * BITWORD_SIZE - countLeadingOnes(Copy) - 1; |
324 | | return Result < Size ? Result : -1; |
325 | | } |
326 | | } |
327 | | return -1; |
328 | | } |
329 | | |
330 | | /// find_first - Returns the index of the first set bit, -1 if none |
331 | | /// of the bits are set. |
332 | 20.9M | int find_first() const { return find_first_in(0, Size); } |
333 | | |
334 | | /// find_last - Returns the index of the last set bit, -1 if none of the bits |
335 | | /// are set. |
336 | 0 | int find_last() const { return find_last_in(0, Size); } |
337 | | |
338 | | /// find_next - Returns the index of the next set bit following the |
339 | | /// "Prev" bit. Returns -1 if the next set bit is not found. |
340 | 158M | int find_next(unsigned Prev) const { return find_first_in(Prev + 1, Size); } |
341 | | |
342 | | /// find_prev - Returns the index of the first set bit that precedes the |
343 | | /// the bit at \p PriorTo. Returns -1 if all previous bits are unset. |
344 | 0 | int find_prev(unsigned PriorTo) const { return find_last_in(0, PriorTo); } |
345 | | |
346 | | /// find_first_unset - Returns the index of the first unset bit, -1 if all |
347 | | /// of the bits are set. |
348 | 0 | int find_first_unset() const { return find_first_unset_in(0, Size); } |
349 | | |
350 | | /// find_next_unset - Returns the index of the next unset bit following the |
351 | | /// "Prev" bit. Returns -1 if all remaining bits are set. |
352 | 0 | int find_next_unset(unsigned Prev) const { |
353 | 0 | return find_first_unset_in(Prev + 1, Size); |
354 | 0 | } |
355 | | |
356 | | /// find_last_unset - Returns the index of the last unset bit, -1 if all of |
357 | | /// the bits are set. |
358 | 0 | int find_last_unset() const { return find_last_unset_in(0, Size); } |
359 | | |
360 | | /// find_prev_unset - Returns the index of the first unset bit that precedes |
361 | | /// the bit at \p PriorTo. Returns -1 if all previous bits are set. |
362 | 0 | int find_prev_unset(unsigned PriorTo) { |
363 | 0 | return find_last_unset_in(0, PriorTo); |
364 | 0 | } |
365 | | |
366 | | /// clear - Removes all bits from the bitvector. Does not change capacity. |
367 | 75.9M | void clear() { |
368 | 75.9M | Size = 0; |
369 | 75.9M | } |
370 | | |
371 | | /// resize - Grow or shrink the bitvector. |
372 | 127M | void resize(unsigned N, bool t = false) { |
373 | 127M | if (N > getBitCapacity()127M ) { |
374 | 18.3M | unsigned OldCapacity = Bits.size(); |
375 | 18.3M | grow(N); |
376 | 18.3M | init_words(Bits.drop_front(OldCapacity), t); |
377 | 18.3M | } |
378 | 127M | |
379 | 127M | // Set any old unused bits that are now included in the BitVector. This |
380 | 127M | // may set bits that are not included in the new vector, but we will clear |
381 | 127M | // them back out below. |
382 | 127M | if (N > Size) |
383 | 72.4M | set_unused_bits(t); |
384 | 127M | |
385 | 127M | // Update the size, and clear out any bits that are now unused |
386 | 127M | unsigned OldSize = Size; |
387 | 127M | Size = N; |
388 | 127M | if (t || 127M N < OldSize124M ) |
389 | 38.8M | clear_unused_bits(); |
390 | 127M | } |
391 | | |
392 | 0 | void reserve(unsigned N) { |
393 | 0 | if (N > getBitCapacity()) |
394 | 0 | grow(N); |
395 | 0 | } |
396 | | |
397 | | // Set, reset, flip |
398 | 16 | BitVector &set() { |
399 | 16 | init_words(Bits, true); |
400 | 16 | clear_unused_bits(); |
401 | 16 | return *this; |
402 | 16 | } |
403 | | |
404 | 908M | BitVector &set(unsigned Idx) { |
405 | 908M | assert(Bits.data() && "Bits never allocated"); |
406 | 908M | Bits[Idx / BITWORD_SIZE] |= BitWord(1) << (Idx % BITWORD_SIZE); |
407 | 908M | return *this; |
408 | 908M | } |
409 | | |
410 | | /// set - Efficiently set a range of bits in [I, E) |
411 | 1.73k | BitVector &set(unsigned I, unsigned E) { |
412 | 1.73k | assert(I <= E && "Attempted to set backwards range!"); |
413 | 1.73k | assert(E <= size() && "Attempted to set out-of-bounds range!"); |
414 | 1.73k | |
415 | 1.73k | if (I == E1.73k ) return *this0 ; |
416 | 1.73k | |
417 | 1.73k | if (1.73k I / BITWORD_SIZE == E / BITWORD_SIZE1.73k ) { |
418 | 1.64k | BitWord EMask = 1UL << (E % BITWORD_SIZE); |
419 | 1.64k | BitWord IMask = 1UL << (I % BITWORD_SIZE); |
420 | 1.64k | BitWord Mask = EMask - IMask; |
421 | 1.64k | Bits[I / BITWORD_SIZE] |= Mask; |
422 | 1.64k | return *this; |
423 | 1.64k | } |
424 | 1.73k | |
425 | 98 | BitWord PrefixMask = ~0UL << (I % BITWORD_SIZE); |
426 | 98 | Bits[I / BITWORD_SIZE] |= PrefixMask; |
427 | 98 | I = alignTo(I, BITWORD_SIZE); |
428 | 98 | |
429 | 156 | for (; I + BITWORD_SIZE <= E156 ; I += BITWORD_SIZE58 ) |
430 | 58 | Bits[I / BITWORD_SIZE] = ~0UL; |
431 | 98 | |
432 | 98 | BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; |
433 | 98 | if (I < E) |
434 | 25 | Bits[I / BITWORD_SIZE] |= PostfixMask; |
435 | 98 | |
436 | 98 | return *this; |
437 | 1.73k | } |
438 | | |
439 | 20.9M | BitVector &reset() { |
440 | 20.9M | init_words(Bits, false); |
441 | 20.9M | return *this; |
442 | 20.9M | } |
443 | | |
444 | 288M | BitVector &reset(unsigned Idx) { |
445 | 288M | Bits[Idx / BITWORD_SIZE] &= ~(BitWord(1) << (Idx % BITWORD_SIZE)); |
446 | 288M | return *this; |
447 | 288M | } |
448 | | |
449 | | /// reset - Efficiently reset a range of bits in [I, E) |
450 | 367 | BitVector &reset(unsigned I, unsigned E) { |
451 | 367 | assert(I <= E && "Attempted to reset backwards range!"); |
452 | 367 | assert(E <= size() && "Attempted to reset out-of-bounds range!"); |
453 | 367 | |
454 | 367 | if (I == E367 ) return *this0 ; |
455 | 367 | |
456 | 367 | if (367 I / BITWORD_SIZE == E / BITWORD_SIZE367 ) { |
457 | 354 | BitWord EMask = 1UL << (E % BITWORD_SIZE); |
458 | 354 | BitWord IMask = 1UL << (I % BITWORD_SIZE); |
459 | 354 | BitWord Mask = EMask - IMask; |
460 | 354 | Bits[I / BITWORD_SIZE] &= ~Mask; |
461 | 354 | return *this; |
462 | 354 | } |
463 | 367 | |
464 | 13 | BitWord PrefixMask = ~0UL << (I % BITWORD_SIZE); |
465 | 13 | Bits[I / BITWORD_SIZE] &= ~PrefixMask; |
466 | 13 | I = alignTo(I, BITWORD_SIZE); |
467 | 13 | |
468 | 21 | for (; I + BITWORD_SIZE <= E21 ; I += BITWORD_SIZE8 ) |
469 | 8 | Bits[I / BITWORD_SIZE] = 0UL; |
470 | 13 | |
471 | 13 | BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; |
472 | 13 | if (I < E) |
473 | 5 | Bits[I / BITWORD_SIZE] &= ~PostfixMask; |
474 | 13 | |
475 | 13 | return *this; |
476 | 367 | } |
477 | | |
478 | 14.7k | BitVector &flip() { |
479 | 80.4k | for (unsigned i = 0; i < NumBitWords(size())80.4k ; ++i65.7k ) |
480 | 65.7k | Bits[i] = ~Bits[i]; |
481 | 14.7k | clear_unused_bits(); |
482 | 14.7k | return *this; |
483 | 14.7k | } |
484 | | |
485 | 0 | BitVector &flip(unsigned Idx) { |
486 | 0 | Bits[Idx / BITWORD_SIZE] ^= BitWord(1) << (Idx % BITWORD_SIZE); |
487 | 0 | return *this; |
488 | 0 | } |
489 | | |
490 | | // Indexing. |
491 | 86.7M | reference operator[](unsigned Idx) { |
492 | 86.7M | assert (Idx < Size && "Out-of-bounds Bit access."); |
493 | 86.7M | return reference(*this, Idx); |
494 | 86.7M | } |
495 | | |
496 | 1.45G | bool operator[](unsigned Idx) const { |
497 | 1.45G | assert (Idx < Size && "Out-of-bounds Bit access."); |
498 | 1.45G | BitWord Mask = BitWord(1) << (Idx % BITWORD_SIZE); |
499 | 1.45G | return (Bits[Idx / BITWORD_SIZE] & Mask) != 0; |
500 | 1.45G | } |
501 | | |
502 | 1.04G | bool test(unsigned Idx) const { |
503 | 1.04G | return (*this)[Idx]; |
504 | 1.04G | } |
505 | | |
506 | | /// Test if any common bits are set. |
507 | 1.86M | bool anyCommon(const BitVector &RHS) const { |
508 | 1.86M | unsigned ThisWords = NumBitWords(size()); |
509 | 1.86M | unsigned RHSWords = NumBitWords(RHS.size()); |
510 | 3.47M | for (unsigned i = 0, e = std::min(ThisWords, RHSWords); i != e3.47M ; ++i1.61M ) |
511 | 1.86M | if (1.86M Bits[i] & RHS.Bits[i]1.86M ) |
512 | 245k | return true; |
513 | 1.61M | return false; |
514 | 1.86M | } |
515 | | |
516 | | // Comparison operators. |
517 | 2.87M | bool operator==(const BitVector &RHS) const { |
518 | 2.87M | unsigned ThisWords = NumBitWords(size()); |
519 | 2.87M | unsigned RHSWords = NumBitWords(RHS.size()); |
520 | 2.87M | unsigned i; |
521 | 27.1M | for (i = 0; i != std::min(ThisWords, RHSWords)27.1M ; ++i24.2M ) |
522 | 24.3M | if (24.3M Bits[i] != RHS.Bits[i]24.3M ) |
523 | 18.7k | return false; |
524 | 2.87M | |
525 | 2.87M | // Verify that any extra words are all zeros. |
526 | 2.86M | if (2.86M i != ThisWords2.86M ) { |
527 | 0 | for (; i != ThisWords0 ; ++i0 ) |
528 | 0 | if (0 Bits[i]0 ) |
529 | 0 | return false; |
530 | 2.86M | } else if (2.86M i != RHSWords2.86M ) { |
531 | 0 | for (; i != RHSWords0 ; ++i0 ) |
532 | 0 | if (0 RHS.Bits[i]0 ) |
533 | 0 | return false; |
534 | 2.86M | } |
535 | 2.86M | return true; |
536 | 2.87M | } |
537 | | |
538 | 2.87M | bool operator!=(const BitVector &RHS) const { |
539 | 2.87M | return !(*this == RHS); |
540 | 2.87M | } |
541 | | |
542 | | /// Intersection, union, disjoint union. |
543 | 20.5k | BitVector &operator&=(const BitVector &RHS) { |
544 | 20.5k | unsigned ThisWords = NumBitWords(size()); |
545 | 20.5k | unsigned RHSWords = NumBitWords(RHS.size()); |
546 | 20.5k | unsigned i; |
547 | 106k | for (i = 0; i != std::min(ThisWords, RHSWords)106k ; ++i86.3k ) |
548 | 86.3k | Bits[i] &= RHS.Bits[i]; |
549 | 20.5k | |
550 | 20.5k | // Any bits that are just in this bitvector become zero, because they aren't |
551 | 20.5k | // in the RHS bit vector. Any words only in RHS are ignored because they |
552 | 20.5k | // are already zero in the LHS. |
553 | 20.5k | for (; i != ThisWords20.5k ; ++i0 ) |
554 | 0 | Bits[i] = 0; |
555 | 20.5k | |
556 | 20.5k | return *this; |
557 | 20.5k | } |
558 | | |
559 | | /// reset - Reset bits that are set in RHS. Same as *this &= ~RHS. |
560 | 59.3M | BitVector &reset(const BitVector &RHS) { |
561 | 59.3M | unsigned ThisWords = NumBitWords(size()); |
562 | 59.3M | unsigned RHSWords = NumBitWords(RHS.size()); |
563 | 59.3M | unsigned i; |
564 | 118M | for (i = 0; i != std::min(ThisWords, RHSWords)118M ; ++i58.7M ) |
565 | 58.7M | Bits[i] &= ~RHS.Bits[i]; |
566 | 59.3M | return *this; |
567 | 59.3M | } |
568 | | |
569 | | /// test - Check if (This - RHS) is zero. |
570 | | /// This is the same as reset(RHS) and any(). |
571 | 5.12M | bool test(const BitVector &RHS) const { |
572 | 5.12M | unsigned ThisWords = NumBitWords(size()); |
573 | 5.12M | unsigned RHSWords = NumBitWords(RHS.size()); |
574 | 5.12M | unsigned i; |
575 | 7.14M | for (i = 0; i != std::min(ThisWords, RHSWords)7.14M ; ++i2.01M ) |
576 | 2.07M | if (2.07M (Bits[i] & ~RHS.Bits[i]) != 02.07M ) |
577 | 61.1k | return true; |
578 | 5.12M | |
579 | 5.84M | for (; 5.06M i != ThisWords5.84M ; ++i778k ) |
580 | 2.29M | if (2.29M Bits[i] != 02.29M ) |
581 | 1.51M | return true; |
582 | 5.06M | |
583 | 3.55M | return false; |
584 | 5.12M | } |
585 | | |
586 | 68.1M | BitVector &operator|=(const BitVector &RHS) { |
587 | 68.1M | if (size() < RHS.size()) |
588 | 5.31M | resize(RHS.size()); |
589 | 135M | for (size_t i = 0, e = NumBitWords(RHS.size()); i != e135M ; ++i67.7M ) |
590 | 67.7M | Bits[i] |= RHS.Bits[i]; |
591 | 68.1M | return *this; |
592 | 68.1M | } |
593 | | |
594 | | BitVector &operator^=(const BitVector &RHS) { |
595 | | if (size() < RHS.size()) |
596 | | resize(RHS.size()); |
597 | | for (size_t i = 0, e = NumBitWords(RHS.size()); i != e; ++i) |
598 | | Bits[i] ^= RHS.Bits[i]; |
599 | | return *this; |
600 | | } |
601 | | |
602 | | BitVector &operator>>=(unsigned N) { |
603 | | assert(N <= Size); |
604 | | if (LLVM_UNLIKELY(empty() || N == 0)) |
605 | | return *this; |
606 | | |
607 | | unsigned NumWords = NumBitWords(Size); |
608 | | assert(NumWords >= 1); |
609 | | |
610 | | wordShr(N / BITWORD_SIZE); |
611 | | |
612 | | unsigned BitDistance = N % BITWORD_SIZE; |
613 | | if (BitDistance == 0) |
614 | | return *this; |
615 | | |
616 | | // When the shift size is not a multiple of the word size, then we have |
617 | | // a tricky situation where each word in succession needs to extract some |
618 | | // of the bits from the next word and or them into this word while |
619 | | // shifting this word to make room for the new bits. This has to be done |
620 | | // for every word in the array. |
621 | | |
622 | | // Since we're shifting each word right, some bits will fall off the end |
623 | | // of each word to the right, and empty space will be created on the left. |
624 | | // The final word in the array will lose bits permanently, so starting at |
625 | | // the beginning, work forwards shifting each word to the right, and |
626 | | // OR'ing in the bits from the end of the next word to the beginning of |
627 | | // the current word. |
628 | | |
629 | | // Example: |
630 | | // Starting with {0xAABBCCDD, 0xEEFF0011, 0x22334455} and shifting right |
631 | | // by 4 bits. |
632 | | // Step 1: Word[0] >>= 4 ; 0x0ABBCCDD |
633 | | // Step 2: Word[0] |= 0x10000000 ; 0x1ABBCCDD |
634 | | // Step 3: Word[1] >>= 4 ; 0x0EEFF001 |
635 | | // Step 4: Word[1] |= 0x50000000 ; 0x5EEFF001 |
636 | | // Step 5: Word[2] >>= 4 ; 0x02334455 |
637 | | // Result: { 0x1ABBCCDD, 0x5EEFF001, 0x02334455 } |
638 | | const BitWord Mask = maskTrailingOnes<BitWord>(BitDistance); |
639 | | const unsigned LSH = BITWORD_SIZE - BitDistance; |
640 | | |
641 | | for (unsigned I = 0; I < NumWords - 1; ++I) { |
642 | | Bits[I] >>= BitDistance; |
643 | | Bits[I] |= (Bits[I + 1] & Mask) << LSH; |
644 | | } |
645 | | |
646 | | Bits[NumWords - 1] >>= BitDistance; |
647 | | |
648 | | return *this; |
649 | | } |
650 | | |
651 | | BitVector &operator<<=(unsigned N) { |
652 | | assert(N <= Size); |
653 | | if (LLVM_UNLIKELY(empty() || N == 0)) |
654 | | return *this; |
655 | | |
656 | | unsigned NumWords = NumBitWords(Size); |
657 | | assert(NumWords >= 1); |
658 | | |
659 | | wordShl(N / BITWORD_SIZE); |
660 | | |
661 | | unsigned BitDistance = N % BITWORD_SIZE; |
662 | | if (BitDistance == 0) |
663 | | return *this; |
664 | | |
665 | | // When the shift size is not a multiple of the word size, then we have |
666 | | // a tricky situation where each word in succession needs to extract some |
667 | | // of the bits from the previous word and or them into this word while |
668 | | // shifting this word to make room for the new bits. This has to be done |
669 | | // for every word in the array. This is similar to the algorithm outlined |
670 | | // in operator>>=, but backwards. |
671 | | |
672 | | // Since we're shifting each word left, some bits will fall off the end |
673 | | // of each word to the left, and empty space will be created on the right. |
674 | | // The first word in the array will lose bits permanently, so starting at |
675 | | // the end, work backwards shifting each word to the left, and OR'ing |
676 | | // in the bits from the end of the next word to the beginning of the |
677 | | // current word. |
678 | | |
679 | | // Example: |
680 | | // Starting with {0xAABBCCDD, 0xEEFF0011, 0x22334455} and shifting left |
681 | | // by 4 bits. |
682 | | // Step 1: Word[2] <<= 4 ; 0x23344550 |
683 | | // Step 2: Word[2] |= 0x0000000E ; 0x2334455E |
684 | | // Step 3: Word[1] <<= 4 ; 0xEFF00110 |
685 | | // Step 4: Word[1] |= 0x0000000A ; 0xEFF0011A |
686 | | // Step 5: Word[0] <<= 4 ; 0xABBCCDD0 |
687 | | // Result: { 0xABBCCDD0, 0xEFF0011A, 0x2334455E } |
688 | | const BitWord Mask = maskLeadingOnes<BitWord>(BitDistance); |
689 | | const unsigned RSH = BITWORD_SIZE - BitDistance; |
690 | | |
691 | | for (int I = NumWords - 1; I > 0; --I) { |
692 | | Bits[I] <<= BitDistance; |
693 | | Bits[I] |= (Bits[I - 1] & Mask) >> RSH; |
694 | | } |
695 | | Bits[0] <<= BitDistance; |
696 | | clear_unused_bits(); |
697 | | |
698 | | return *this; |
699 | | } |
700 | | |
701 | | // Assignment operator. |
702 | 9.30M | const BitVector &operator=(const BitVector &RHS) { |
703 | 9.30M | if (this == &RHS9.30M ) return *this42 ; |
704 | 9.30M | |
705 | 9.30M | Size = RHS.size(); |
706 | 9.30M | unsigned RHSWords = NumBitWords(Size); |
707 | 9.30M | if (Size <= getBitCapacity()9.30M ) { |
708 | 7.90M | if (Size) |
709 | 7.90M | std::memcpy(Bits.data(), RHS.Bits.data(), RHSWords * sizeof(BitWord)); |
710 | 7.90M | clear_unused_bits(); |
711 | 7.90M | return *this; |
712 | 7.90M | } |
713 | 9.30M | |
714 | 9.30M | // Grow the bitvector to have enough elements. |
715 | 1.39M | unsigned NewCapacity = RHSWords; |
716 | 1.39M | assert(NewCapacity > 0 && "negative capacity?"); |
717 | 1.39M | auto NewBits = allocate(NewCapacity); |
718 | 1.39M | std::memcpy(NewBits.data(), RHS.Bits.data(), NewCapacity * sizeof(BitWord)); |
719 | 1.39M | |
720 | 1.39M | // Destroy the old bits. |
721 | 1.39M | std::free(Bits.data()); |
722 | 1.39M | Bits = NewBits; |
723 | 1.39M | |
724 | 1.39M | return *this; |
725 | 9.30M | } |
726 | | |
727 | 10.4M | const BitVector &operator=(BitVector &&RHS) { |
728 | 10.4M | if (this == &RHS10.4M ) return *this0 ; |
729 | 10.4M | |
730 | 10.4M | std::free(Bits.data()); |
731 | 10.4M | Bits = RHS.Bits; |
732 | 10.4M | Size = RHS.Size; |
733 | 10.4M | |
734 | 10.4M | RHS.Bits = MutableArrayRef<BitWord>(); |
735 | 10.4M | RHS.Size = 0; |
736 | 10.4M | |
737 | 10.4M | return *this; |
738 | 10.4M | } |
739 | | |
740 | 0 | void swap(BitVector &RHS) { |
741 | 0 | std::swap(Bits, RHS.Bits); |
742 | 0 | std::swap(Size, RHS.Size); |
743 | 0 | } |
744 | | |
745 | | //===--------------------------------------------------------------------===// |
746 | | // Portable bit mask operations. |
747 | | //===--------------------------------------------------------------------===// |
748 | | // |
749 | | // These methods all operate on arrays of uint32_t, each holding 32 bits. The |
750 | | // fixed word size makes it easier to work with literal bit vector constants |
751 | | // in portable code. |
752 | | // |
753 | | // The LSB in each word is the lowest numbered bit. The size of a portable |
754 | | // bit mask is always a whole multiple of 32 bits. If no bit mask size is |
755 | | // given, the bit mask is assumed to cover the entire BitVector. |
756 | | |
757 | | /// setBitsInMask - Add '1' bits from Mask to this vector. Don't resize. |
758 | | /// This computes "*this |= Mask". |
759 | 2.76M | void setBitsInMask(const uint32_t *Mask, unsigned MaskWords = ~0u) { |
760 | 2.76M | applyMask<true, false>(Mask, MaskWords); |
761 | 2.76M | } |
762 | | |
763 | | /// clearBitsInMask - Clear any bits in this vector that are set in Mask. |
764 | | /// Don't resize. This computes "*this &= ~Mask". |
765 | 0 | void clearBitsInMask(const uint32_t *Mask, unsigned MaskWords = ~0u) { |
766 | 0 | applyMask<false, false>(Mask, MaskWords); |
767 | 0 | } |
768 | | |
769 | | /// setBitsNotInMask - Add a bit to this vector for every '0' bit in Mask. |
770 | | /// Don't resize. This computes "*this |= ~Mask". |
771 | 4.19M | void setBitsNotInMask(const uint32_t *Mask, unsigned MaskWords = ~0u) { |
772 | 4.19M | applyMask<true, true>(Mask, MaskWords); |
773 | 4.19M | } |
774 | | |
775 | | /// clearBitsNotInMask - Clear a bit in this vector for every '0' bit in Mask. |
776 | | /// Don't resize. This computes "*this &= Mask". |
777 | 33.1M | void clearBitsNotInMask(const uint32_t *Mask, unsigned MaskWords = ~0u) { |
778 | 33.1M | applyMask<false, true>(Mask, MaskWords); |
779 | 33.1M | } |
780 | | |
781 | | private: |
782 | | /// \brief Perform a logical left shift of \p Count words by moving everything |
783 | | /// \p Count words to the right in memory. |
784 | | /// |
785 | | /// While confusing, words are stored from least significant at Bits[0] to |
786 | | /// most significant at Bits[NumWords-1]. A logical shift left, however, |
787 | | /// moves the current least significant bit to a higher logical index, and |
788 | | /// fills the previous least significant bits with 0. Thus, we actually |
789 | | /// need to move the bytes of the memory to the right, not to the left. |
790 | | /// Example: |
791 | | /// Words = [0xBBBBAAAA, 0xDDDDFFFF, 0x00000000, 0xDDDD0000] |
792 | | /// represents a BitVector where 0xBBBBAAAA contain the least significant |
793 | | /// bits. So if we want to shift the BitVector left by 2 words, we need to |
794 | | /// turn this into 0x00000000 0x00000000 0xBBBBAAAA 0xDDDDFFFF by using a |
795 | | /// memmove which moves right, not left. |
796 | | void wordShl(uint32_t Count) { |
797 | | if (Count == 0) |
798 | | return; |
799 | | |
800 | | uint32_t NumWords = NumBitWords(Size); |
801 | | |
802 | | auto Src = Bits.take_front(NumWords).drop_back(Count); |
803 | | auto Dest = Bits.take_front(NumWords).drop_front(Count); |
804 | | |
805 | | // Since we always move Word-sized chunks of data with src and dest both |
806 | | // aligned to a word-boundary, we don't need to worry about endianness |
807 | | // here. |
808 | | std::memmove(Dest.begin(), Src.begin(), Dest.size() * sizeof(BitWord)); |
809 | | std::memset(Bits.data(), 0, Count * sizeof(BitWord)); |
810 | | clear_unused_bits(); |
811 | | } |
812 | | |
813 | | /// \brief Perform a logical right shift of \p Count words by moving those |
814 | | /// words to the left in memory. See wordShl for more information. |
815 | | /// |
816 | | void wordShr(uint32_t Count) { |
817 | | if (Count == 0) |
818 | | return; |
819 | | |
820 | | uint32_t NumWords = NumBitWords(Size); |
821 | | |
822 | | auto Src = Bits.take_front(NumWords).drop_front(Count); |
823 | | auto Dest = Bits.take_front(NumWords).drop_back(Count); |
824 | | assert(Dest.size() == Src.size()); |
825 | | |
826 | | std::memmove(Dest.begin(), Src.begin(), Dest.size() * sizeof(BitWord)); |
827 | | std::memset(Dest.end(), 0, Count * sizeof(BitWord)); |
828 | | } |
829 | | |
830 | 34.8M | MutableArrayRef<BitWord> allocate(size_t NumWords) { |
831 | 34.8M | BitWord *RawBits = (BitWord *)std::malloc(NumWords * sizeof(BitWord)); |
832 | 34.8M | return MutableArrayRef<BitWord>(RawBits, NumWords); |
833 | 34.8M | } |
834 | | |
835 | 0 | int next_unset_in_word(int WordIndex, BitWord Word) const { |
836 | 0 | unsigned Result = WordIndex * BITWORD_SIZE + countTrailingOnes(Word); |
837 | 0 | return Result < size() ? Result : -1; |
838 | 0 | } |
839 | | |
840 | 429M | unsigned NumBitWords(unsigned S) const { |
841 | 429M | return (S + BITWORD_SIZE-1) / BITWORD_SIZE; |
842 | 429M | } |
843 | | |
844 | | // Set the unused bits in the high words. |
845 | 144M | void set_unused_bits(bool t = true) { |
846 | 144M | // Set high words first. |
847 | 144M | unsigned UsedWords = NumBitWords(Size); |
848 | 144M | if (Bits.size() > UsedWords) |
849 | 111M | init_words(Bits.drop_front(UsedWords), t); |
850 | 144M | |
851 | 144M | // Then set any stray high bits of the last used word. |
852 | 144M | unsigned ExtraBits = Size % BITWORD_SIZE; |
853 | 144M | if (ExtraBits144M ) { |
854 | 54.9M | BitWord ExtraBitMask = ~0UL << ExtraBits; |
855 | 54.9M | if (t) |
856 | 715 | Bits[UsedWords-1] |= ExtraBitMask; |
857 | 54.9M | else |
858 | 54.9M | Bits[UsedWords-1] &= ~ExtraBitMask; |
859 | 54.9M | } |
860 | 144M | } |
861 | | |
862 | | // Clear the unused bits in the high words. |
863 | 72.1M | void clear_unused_bits() { |
864 | 72.1M | set_unused_bits(false); |
865 | 72.1M | } |
866 | | |
867 | 18.3M | void grow(unsigned NewSize) { |
868 | 18.3M | size_t NewCapacity = std::max<size_t>(NumBitWords(NewSize), Bits.size() * 2); |
869 | 18.3M | assert(NewCapacity > 0 && "realloc-ing zero space"); |
870 | 18.3M | BitWord *NewBits = |
871 | 18.3M | (BitWord *)std::realloc(Bits.data(), NewCapacity * sizeof(BitWord)); |
872 | 18.3M | Bits = MutableArrayRef<BitWord>(NewBits, NewCapacity); |
873 | 18.3M | clear_unused_bits(); |
874 | 18.3M | } |
875 | | |
876 | 176M | void init_words(MutableArrayRef<BitWord> B, bool t) { |
877 | 176M | if (B.size() > 0) |
878 | 176M | memset(B.data(), 0 - (int)t, B.size() * sizeof(BitWord)); |
879 | 176M | } |
880 | | |
881 | | template<bool AddBits, bool InvertMask> |
882 | 40.1M | void applyMask(const uint32_t *Mask, unsigned MaskWords) { |
883 | 40.1M | static_assert(BITWORD_SIZE % 32 == 0, "Unsupported BitWord size."); |
884 | 40.1M | MaskWords = std::min(MaskWords, (size() + 31) / 32); |
885 | 40.1M | const unsigned Scale = BITWORD_SIZE / 32; |
886 | 40.1M | unsigned i; |
887 | 339M | for (i = 0; MaskWords >= Scale339M ; ++i, MaskWords -= Scale299M ) { |
888 | 299M | BitWord BW = Bits[i]; |
889 | 299M | // This inner loop should unroll completely when BITWORD_SIZE > 32. |
890 | 898M | for (unsigned b = 0; b != BITWORD_SIZE898M ; b += 32598M ) { |
891 | 598M | uint32_t M = *Mask++; |
892 | 598M | if (InvertMask598M ) M = ~M592M ; |
893 | 598M | if (AddBits598M ) BW |= BitWord(M) << b72.7M ; |
894 | 526M | else BW &= ~(BitWord(M) << b); |
895 | 598M | } |
896 | 299M | Bits[i] = BW; |
897 | 299M | } |
898 | 40.6M | for (unsigned b = 0; MaskWords40.6M ; b += 32, --MaskWords498k ) { |
899 | 498k | uint32_t M = *Mask++; |
900 | 498k | if (InvertMask498k ) M = ~M7.09k ; |
901 | 498k | if (AddBits498k ) Bits[i] |= BitWord(M) << b492k ; |
902 | 5.85k | else Bits[i] &= ~(BitWord(M) << b); |
903 | 498k | } |
904 | 40.1M | if (AddBits) |
905 | 6.96M | clear_unused_bits(); |
906 | 40.1M | } Unexecuted instantiation: void llvm::BitVector::applyMask<false, false>(unsigned int const*, unsigned int) void llvm::BitVector::applyMask<true, false>(unsigned int const*, unsigned int) Line | Count | Source | 882 | 2.76M | void applyMask(const uint32_t *Mask, unsigned MaskWords) { | 883 | 2.76M | static_assert(BITWORD_SIZE % 32 == 0, "Unsupported BitWord size."); | 884 | 2.76M | MaskWords = std::min(MaskWords, (size() + 31) / 32); | 885 | 2.76M | const unsigned Scale = BITWORD_SIZE / 32; | 886 | 2.76M | unsigned i; | 887 | 5.90M | for (i = 0; MaskWords >= Scale5.90M ; ++i, MaskWords -= Scale3.13M ) { | 888 | 3.13M | BitWord BW = Bits[i]; | 889 | 3.13M | // This inner loop should unroll completely when BITWORD_SIZE > 32. | 890 | 9.39M | for (unsigned b = 0; b != BITWORD_SIZE9.39M ; b += 326.26M ) { | 891 | 6.26M | uint32_t M = *Mask++; | 892 | 6.26M | if (InvertMask6.26M ) M = ~M0 ; | 893 | 6.26M | if (AddBits6.26M ) BW |= BitWord(M) << b6.26M ; | 894 | 0 | else BW &= ~(BitWord(M) << b); | 895 | 6.26M | } | 896 | 3.13M | Bits[i] = BW; | 897 | 3.13M | } | 898 | 3.26M | for (unsigned b = 0; MaskWords3.26M ; b += 32, --MaskWords491k ) { | 899 | 491k | uint32_t M = *Mask++; | 900 | 491k | if (InvertMask491k ) M = ~M0 ; | 901 | 491k | if (AddBits491k ) Bits[i] |= BitWord(M) << b491k ; | 902 | 0 | else Bits[i] &= ~(BitWord(M) << b); | 903 | 491k | } | 904 | 2.76M | if (AddBits) | 905 | 2.76M | clear_unused_bits(); | 906 | 2.76M | } |
void llvm::BitVector::applyMask<true, true>(unsigned int const*, unsigned int) Line | Count | Source | 882 | 4.19M | void applyMask(const uint32_t *Mask, unsigned MaskWords) { | 883 | 4.19M | static_assert(BITWORD_SIZE % 32 == 0, "Unsupported BitWord size."); | 884 | 4.19M | MaskWords = std::min(MaskWords, (size() + 31) / 32); | 885 | 4.19M | const unsigned Scale = BITWORD_SIZE / 32; | 886 | 4.19M | unsigned i; | 887 | 37.4M | for (i = 0; MaskWords >= Scale37.4M ; ++i, MaskWords -= Scale33.2M ) { | 888 | 33.2M | BitWord BW = Bits[i]; | 889 | 33.2M | // This inner loop should unroll completely when BITWORD_SIZE > 32. | 890 | 99.7M | for (unsigned b = 0; b != BITWORD_SIZE99.7M ; b += 3266.5M ) { | 891 | 66.5M | uint32_t M = *Mask++; | 892 | 66.5M | if (InvertMask66.5M ) M = ~M66.5M ; | 893 | 66.5M | if (AddBits66.5M ) BW |= BitWord(M) << b66.5M ; | 894 | 1 | else BW &= ~(BitWord(M) << b); | 895 | 66.5M | } | 896 | 33.2M | Bits[i] = BW; | 897 | 33.2M | } | 898 | 4.19M | for (unsigned b = 0; MaskWords4.19M ; b += 32, --MaskWords1.24k ) { | 899 | 1.24k | uint32_t M = *Mask++; | 900 | 1.24k | if (InvertMask1.24k ) M = ~M1.24k ; | 901 | 1.24k | if (AddBits1.24k ) Bits[i] |= BitWord(M) << b1.24k ; | 902 | 0 | else Bits[i] &= ~(BitWord(M) << b); | 903 | 1.24k | } | 904 | 4.19M | if (AddBits) | 905 | 4.19M | clear_unused_bits(); | 906 | 4.19M | } |
void llvm::BitVector::applyMask<false, true>(unsigned int const*, unsigned int) Line | Count | Source | 882 | 33.1M | void applyMask(const uint32_t *Mask, unsigned MaskWords) { | 883 | 33.1M | static_assert(BITWORD_SIZE % 32 == 0, "Unsupported BitWord size."); | 884 | 33.1M | MaskWords = std::min(MaskWords, (size() + 31) / 32); | 885 | 33.1M | const unsigned Scale = BITWORD_SIZE / 32; | 886 | 33.1M | unsigned i; | 887 | 296M | for (i = 0; MaskWords >= Scale296M ; ++i, MaskWords -= Scale263M ) { | 888 | 263M | BitWord BW = Bits[i]; | 889 | 263M | // This inner loop should unroll completely when BITWORD_SIZE > 32. | 890 | 789M | for (unsigned b = 0; b != BITWORD_SIZE789M ; b += 32526M ) { | 891 | 526M | uint32_t M = *Mask++; | 892 | 526M | if (InvertMask526M ) M = ~M526M ; | 893 | 526M | if (AddBits526M ) BW |= BitWord(M) << b0 ; | 894 | 526M | else BW &= ~(BitWord(M) << b); | 895 | 526M | } | 896 | 263M | Bits[i] = BW; | 897 | 263M | } | 898 | 33.1M | for (unsigned b = 0; MaskWords33.1M ; b += 32, --MaskWords5.85k ) { | 899 | 5.85k | uint32_t M = *Mask++; | 900 | 5.85k | if (InvertMask5.85k ) M = ~M5.85k ; | 901 | 5.85k | if (AddBits5.85k ) Bits[i] |= BitWord(M) << b0 ; | 902 | 5.85k | else Bits[i] &= ~(BitWord(M) << b); | 903 | 5.85k | } | 904 | 33.1M | if (AddBits) | 905 | 0 | clear_unused_bits(); | 906 | 33.1M | } |
|
907 | | |
908 | | public: |
909 | | /// Return the size (in bytes) of the bit vector. |
910 | 0 | size_t getMemorySize() const { return Bits.size() * sizeof(BitWord); } |
911 | 136M | size_t getBitCapacity() const { return Bits.size() * BITWORD_SIZE; } |
912 | | }; |
913 | | |
914 | 0 | static inline size_t capacity_in_bytes(const BitVector &X) { |
915 | 0 | return X.getMemorySize(); |
916 | 0 | } Unexecuted instantiation: AArch64CleanupLocalDynamicTLSPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64CollectLOH.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64CondBrTuning.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64ConditionalCompares.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64DeadRegisterDefinitionsPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64ExpandPseudoInsts.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64FalkorHWPFFix.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64FastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64A53Fix835769.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64ConditionOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64RedundantCopyElimination.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64ISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64ISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64InstructionSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64LegalizerInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64LoadStoreOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64MacroFusion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64MCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64PBQPRegAlloc.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64RegisterBankInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64RegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64SelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64StorePairSuppress.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64Subtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64TargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64TargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64TargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64VectorByElementOpt.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUAnnotateKernelFeatures.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUArgumentUsageInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUCallLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUCodeGenPrepare.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUInstructionSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUIntrinsicInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPULowerIntrinsics.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUMachineCFGStructurizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUMachineFunction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUMacroFusion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUPromoteAlloca.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPURegisterBankInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPURegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDILCFGStructurizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCNHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCNIterativeScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCNMinRegStrategy.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCNRegPressure.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCNSchedStrategy.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600ClauseMergePass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600ControlFlowFinalizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600EmitClauseMarkers.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600ExpandSpecialInstrs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600ISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600MachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600MachineScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600OptimizeVectorRegisters.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600Packetizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: R600RegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIDebuggerInsertNops.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIFixSGPRCopies.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIFixVGPRCopies.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIFixWWMLiveness.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIFoldOperands.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIInsertSkips.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIInsertWaitcnts.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIInsertWaits.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SILoadStoreOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SILowerControlFlow.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SILowerI1Copies.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIMachineScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIMemoryLegalizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIOptimizeExecMasking.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIOptimizeExecMaskingPreRA.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIPeepholeSDWA.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIShrinkInstructions.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SIWholeQuadMode.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUAsmParser.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AMDGPUTargetInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: A15SDOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMBaseInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMBaseRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMCallLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMConstantIslandPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMExpandPseudoInsts.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMFastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMInstructionSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMLegalizerInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMLoadStoreOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMMacroFusion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMOptimizeBarriersPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMRegisterBankInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMSelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MLxExpansionPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Thumb1FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Thumb1InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ThumbRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Thumb2ITBlockPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Thumb2InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Thumb2SizeReduction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMComputeBlockSize.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMTargetStreamer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BPFTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BitTracker.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonBitSimplify.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonBitTracker.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonBlockRanges.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonBranchRelaxation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonCFGOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonConstPropagation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonCopyToCombine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonEarlyIfConv.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonExpandCondsets.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonFixupHwLoops.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonGenInsert.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonGenMux.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonGenPredicate.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonHardwareLoops.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMachineScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonNewValueJump.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonOptAddrMode.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonOptimizeSZextends.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonPeephole.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonRDFOpt.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonSelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonSplitConst32AndConst64.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonSplitDouble.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonStoreWidening.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonVectorPrint.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonVLIWPacketizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RDFCopy.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RDFDeadCode.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RDFGraph.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RDFLiveness.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RDFRegisters.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonAsmParser.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonAsmBackend.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonELFObjectWriter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonInstPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCChecker.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCCodeEmitter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCCompound.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCELFStreamer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCShuffler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonMCTargetDesc.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonShuffler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: HexagonTargetInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiDelaySlotFiller.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiMemAluCombiner.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiSelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LanaiTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16HardFloat.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16ISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16ISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Mips16RegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsCCState.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsConstantIslandPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsDelaySlotFiller.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsFastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsHazardSchedule.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsLongBranch.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsMachineFunction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsModuleISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsOptimizePICCall.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSEFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSEInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSEISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSEISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSERegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MicroMipsSizeReduction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MipsInstPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430BranchSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430ISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430ISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430MachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430RegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430Subtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430TargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430AsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MSP430MCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXLowerArgs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXPeephole.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXPrologEpilogPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXReplaceImageHandles.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NVPTXTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCBoolRetToInt.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCBranchSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCBranchCoalescing.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCCCState.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCCTRLoops.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCHazardRecognizers.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCEarlyReturn.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCFastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCLoopPreIncPrep.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCMIPeephole.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64CallLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCQPXLoadSplat.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCTOCRegDeps.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCTLSDynamicCall.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCVSXCopy.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCVSXFMAMutate.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCVSXSwapRemoval.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCExpandISEL.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCInstPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCMCCodeEmitter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DelaySlotFiller.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LeonPasses.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SparcTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZCallingConv.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZElimCompare.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZExpandPseudo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZLDCleanup.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZLongBranch.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZMachineScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZSelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZShortenInst.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SystemZTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86AsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86CallFrameOptimization.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86CallLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86CmovConversion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86ExpandPseudo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FixupBWInsts.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FixupLEAs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FixupSetCC.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FloatingPoint.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86FrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86InstructionSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86ISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86ISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86InterleavedAccess.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86InstrFMA3Info.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86InstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86EvexToVex.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86LegalizerInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86MCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86MachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86MacroFusion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86OptimizeLEAs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86PadShortFunction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86RegisterBankInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86RegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86SelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86Subtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86TargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86TargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86TargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86VZeroUpper.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86WinAllocaExpander.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: X86CallingConv.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreAsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreFrameLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreISelDAGToDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreISelLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreMachineFunctionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreMCInstLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreSubtarget.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreTargetObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreSelectionDAGInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XCoreFrameToArgsOffsetElim.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DependenceAnalysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AggressiveAntiDepBreaker.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AllocationOrder.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Analysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AtomicExpandPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BasicTargetTransformInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BranchFolding.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: BranchRelaxation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CalcSpillWeights.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CallingConvLower.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CodeGenPrepare.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CriticalAntiDepBreaker.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DeadMachineInstructionElim.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DetectDeadLanes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DFAPacketizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfEHPrepare.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: EarlyIfConversion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: EdgeBundles.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ExecutionDepsFix.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ExpandISelPseudos.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ExpandPostRAPseudos.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: FaultMaps.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: FEntryInserter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: FuncletLayout.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GCRootLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: GlobalMerge.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: IfConversion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ImplicitNullChecks.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InlineSpiller.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InterferenceCache.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InterleavedAccessPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LatencyPriorityQueue.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LazyMachineBlockFrequencyInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LexicalScopes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveDebugValues.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveDebugVariables.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveIntervalAnalysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveInterval.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveIntervalUnion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LivePhysRegs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveRangeCalc.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveRangeEdit.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveRangeShrink.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveRegMatrix.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveRegUnits.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveStackAnalysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LiveVariables.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LLVMTargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LocalStackSlotAllocation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LowerEmuTLS.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineBasicBlock.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineBlockFrequencyInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineBlockPlacement.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineCombiner.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineCopyPropagation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineCSE.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineDominanceFrontier.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineDominators.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineFrameInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineFunction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineFunctionPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineFunctionPrinterPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineInstrBundle.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineInstr.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineLICM.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineLoopInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineModuleInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineOptimizationRemarkEmitter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineOutliner.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachinePipeliner.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachinePostDominators.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineRegionInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineScheduler.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineSink.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineSSAUpdater.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineTraceMetrics.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineVerifier.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PatchableFunction.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MIRPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MIRPrintingPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MacroFusion.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: OptimizePHIs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PeepholeOptimizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PHIElimination.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PHIEliminationUtils.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PostRAHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PostRASchedulerList.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ProcessImplicitDefs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PrologEpilogInserter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PseudoSourceValue.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegAllocBase.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegAllocBasic.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegAllocFast.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegAllocGreedy.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegAllocPBQP.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterClassInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterCoalescer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterPressure.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterScavenging.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RenameIndependentSubregs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegUsageInfoCollector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegUsageInfoPropagate.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ResetMachineFunctionPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SafeStack.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SafeStackColoring.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SafeStackLayout.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAGInstrs.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAGPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScoreboardHazardRecognizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ShrinkWrap.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SlotIndexes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SpillPlacement.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SplitKit.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StackColoring.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StackMapLivenessAnalysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StackMaps.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StackProtector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StackSlotColoring.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TailDuplication.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TailDuplicator.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetFrameLoweringImpl.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetInstrInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetLoweringBase.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetOptionsImpl.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetPassConfig.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetSchedule.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetSubtargetInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TwoAddressInstructionPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: UnreachableBlockElim.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: VirtRegMap.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: XRayInstrumentation.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CoroFrame.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LoopInterchange.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LoopRerollPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LoopSimplifyCFG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LoopStrengthReduce.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: NewGVN.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetLoweringObjectFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetMachine.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CtorUtils.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LoopSimplify.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PassBuilder.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CallLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: IRTranslator.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InstructionSelect.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InstructionSelector.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizerHelper.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Legalizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizerInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Localizer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: MachineIRBuilder.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegBankSelect.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterBank.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: RegisterBankInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: Utils.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AddressPool.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ARMException.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AsmPrinterDwarf.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AsmPrinterInlineAsm.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DbgValueHistoryCalculator.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DebugHandlerBase.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DebugLocStream.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DIE.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DIEHash.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfAccelTable.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfCFIException.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfCompileUnit.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfDebug.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfExpression.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfFile.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfStringPool.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DwarfUnit.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: EHStreamer.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: WinException.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: CodeViewDebug.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: DAGCombiner.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: FastISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: FunctionLoweringInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: InstrEmitter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeFloatTypes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeIntegerTypes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeTypes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeTypesGeneric.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeVectorOps.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: LegalizeVectorTypes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ResourcePriorityQueue.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAGRRList.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAGSDNodes.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: ScheduleDAGVLIW.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGBuilder.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAG.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGAddressAnalysis.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGDumper.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGISel.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: SelectionDAGTargetInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: StatepointLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: TargetLowering.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64AsmPrinter.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64AdvSIMDScalarPass.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: AArch64A57FPLoadBalancing.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) Unexecuted instantiation: PPCRegisterInfo.cpp:llvm::capacity_in_bytes(llvm::BitVector const&) |
917 | | |
918 | | } // end namespace llvm |
919 | | |
920 | | namespace std { |
921 | | /// Implement std::swap in terms of BitVector swap. |
922 | | inline void |
923 | 0 | swap(llvm::BitVector &LHS, llvm::BitVector &RHS) { |
924 | 0 | LHS.swap(RHS); |
925 | 0 | } |
926 | | } // end namespace std |
927 | | |
928 | | #endif // LLVM_ADT_BITVECTOR_H |