mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
ff647f94ab
A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector. llvm-svn: 173064
49 lines
959 B
CMake
49 lines
959 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
Support
|
|
)
|
|
|
|
set(ADTSources
|
|
APFloatTest.cpp
|
|
APIntTest.cpp
|
|
BitVectorTest.cpp
|
|
DAGDeltaAlgorithmTest.cpp
|
|
DeltaAlgorithmTest.cpp
|
|
DenseMapTest.cpp
|
|
DenseSetTest.cpp
|
|
FoldingSet.cpp
|
|
HashingTest.cpp
|
|
ilistTest.cpp
|
|
ImmutableMapTest.cpp
|
|
ImmutableSetTest.cpp
|
|
IntEqClassesTest.cpp
|
|
IntervalMapTest.cpp
|
|
IntrusiveRefCntPtrTest.cpp
|
|
PackedVectorTest.cpp
|
|
SCCIteratorTest.cpp
|
|
SmallPtrSetTest.cpp
|
|
SmallStringTest.cpp
|
|
SmallVectorTest.cpp
|
|
SparseBitVectorTest.cpp
|
|
SparseMultiSetTest.cpp
|
|
SparseSetTest.cpp
|
|
StringMapTest.cpp
|
|
StringRefTest.cpp
|
|
TinyPtrVectorTest.cpp
|
|
TripleTest.cpp
|
|
TwineTest.cpp
|
|
VariadicFunctionTest.cpp
|
|
)
|
|
|
|
# They cannot be compiled on MSVC9 due to its bug.
|
|
if(MSVC AND MSVC_VERSION LESS 1600)
|
|
set(LLVM_OPTIONAL_SOURCES
|
|
DenseMapTest.cpp
|
|
SmallVectorTest.cpp
|
|
)
|
|
list(REMOVE_ITEM ADTSources ${LLVM_OPTIONAL_SOURCES})
|
|
endif()
|
|
|
|
add_llvm_unittest(ADTTests
|
|
${ADTSources}
|
|
)
|