llvm-project/llvm/unittests/ADT
Florian Hahn d91f864ced
[ADT] Update RPOT to work with specializations of different types.
At the moment, ReversePostOrderTraversal performs a post-order walk on
the entry node of the passed in graph, rather than the graph type
itself.

If GT::NodeRef is the same as GraphT, everything works as expected and
this is the case for the current uses in-tree. But it does not work as
expected if GraphT != GT::NodeRef. In that case, we either fail to build
(if there is no GraphTrait specialization for GT:NodeRef) or we pick the
GraphTrait specialization for GT::NodeRef, instead of the specialization
of GraphT.

Both the depth-first and post-order iterators pick the expected
specalization and this patch updates ReversePostOrderTraversal to
delegate to po_begin & po_end to pick the right specialization, rather
than forcing using GraphTraits<GT::NodeRef>, by first getting the entry
node.

This makes `ReversePostOrderTraversal<Graph<6>> RPOT(G);` build and
work as expected in the test.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D100169
2021-04-17 20:45:04 +01:00
..
APFixedPointTest.cpp [Fixed Point] Add floating point methods to APFixedPoint. 2020-10-09 10:27:42 +02:00
APFloatTest.cpp [APFloat] convert SNaN to QNaN in convert() and raise Invalid signal 2020-10-01 14:37:38 -04:00
APIntTest.cpp [APInt] Add the truncOrSelf resizing operator to APInt 2020-11-23 11:27:30 +00:00
APSIntTest.cpp ADT: Fix that APSInt's string constructor claims it requires 5 bits to store a zero 2020-06-10 16:36:33 +02:00
AnyTest.cpp
ArrayRefTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
BitFieldsTest.cpp [Bitfields][NFC] Make sure bitfields are contiguous 2020-07-07 14:35:13 +00:00
BitVectorTest.cpp Introduce a generic operator to apply complex operations to BitVector 2021-03-23 14:23:26 +01:00
BitmaskEnumTest.cpp
BreadthFirstIteratorTest.cpp
BumpPtrListTest.cpp
CMakeLists.txt [ADT] Move FixedPoint.h from Clang to LLVM. 2020-08-20 10:29:45 +02:00
CoalescingBitVectorTest.cpp [LiveDebugValues] Speed up removeEntryValue, NFC 2020-06-01 11:02:36 -07:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp
DenseSetTest.cpp [llvm] Add contains(KeyType) -> bool methods to DenseSet 2020-07-17 11:26:26 -07:00
DepthFirstIteratorTest.cpp
DirectedGraphTest.cpp
EnumeratedArrayTest.cpp
EquivalenceClassesTest.cpp
FallibleIteratorTest.cpp
FloatingPointMode.cpp
FoldingSet.cpp
FunctionExtrasTest.cpp [ADT] Add SFINAE guards to unique_function constructor. 2021-02-17 10:36:07 +01:00
FunctionRefTest.cpp [ADT] Fix accidental pointer comparison in test 2020-10-27 18:11:45 +01:00
HashingTest.cpp Add hashing support for std::tuple 2020-07-16 19:01:25 +02:00
IListBaseTest.cpp
IListIteratorTest.cpp
IListNodeBaseTest.cpp
IListNodeTest.cpp
IListSentinelTest.cpp
IListTest.cpp
ImmutableListTest.cpp [RGT] Recode more unreachable assertions and tautologies 2021-03-19 09:17:22 -07:00
ImmutableMapTest.cpp [ADT] Fix for ImmutableMapRef 2020-10-29 13:19:51 +01:00
ImmutableSetTest.cpp [RGT][ADT] Remove test assertion that will not be executed 2021-01-22 14:52:55 -08:00
IntEqClassesTest.cpp
IntervalMapTest.cpp
IntrusiveRefCntPtrTest.cpp ADT: Fix typo in static assert message from 17c584551d 2021-01-28 15:14:46 -08:00
IteratorTest.cpp
MapVectorTest.cpp Github access test: remove unnecessary whitespaces. 2020-05-20 09:53:44 +01:00
MappedIteratorTest.cpp
OptionalTest.cpp Fix llvm::Optional build breaks in MSVC using std::is_trivially_copyable 2021-01-16 09:37:04 -05:00
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp
PointerIntPairTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
PointerSumTypeTest.cpp
PointerUnionTest.cpp
PostOrderIteratorTest.cpp [ADT] Update RPOT to work with specializations of different types. 2021-04-17 20:45:04 +01:00
PriorityWorklistTest.cpp
RangeAdapterTest.cpp
SCCIteratorTest.cpp
STLExtrasTest.cpp [STLExtras] Add a default value to drop_begin 2021-01-18 10:16:34 -08:00
ScopeExitTest.cpp
SequenceTest.cpp
SetVectorTest.cpp [llvm] Add contains(KeyType) -> bool methods to SetVector 2020-07-17 11:26:27 -07:00
SimpleIListTest.cpp
SmallPtrSetTest.cpp Allow SmallPtrSet to be used with a std::insert_iterator 2021-02-05 16:12:47 -05:00
SmallSetTest.cpp [llvm] Add contains(KeyType) -> bool methods to SmallSet 2020-07-17 11:26:27 -07:00
SmallStringTest.cpp [ADT] Add methods to SmallString for efficient concatenation 2020-10-30 10:07:40 +00:00
SmallVectorTest.cpp ADT: Use 'using' to inherit assign and append in SmallString 2021-01-22 16:17:58 -08:00
SparseBitVectorTest.cpp
SparseMultiSetTest.cpp
SparseSetTest.cpp [llvm] Add contains(KeyType) -> bool methods to SparseSet 2020-07-17 11:26:27 -07:00
StatisticTest.cpp
StringExtrasTest.cpp [StringExtras] Rename SubsequentDelim to ListSeparator 2021-01-15 21:00:56 -08:00
StringMapTest.cpp [clang-tidy] remove duplicate fixes of alias checkers 2020-06-19 20:40:59 +01:00
StringRefTest.cpp [RGT] Recode more unreachable assertions and tautologies 2021-03-19 09:17:22 -07:00
StringSetTest.cpp [llvm] Add contains(KeyType) -> bool methods to StringSet 2020-07-17 11:26:27 -07:00
StringSwitchTest.cpp
TestGraph.h
TinyPtrVectorTest.cpp
TripleTest.cpp [Triple][Driver] Add muslx32 environment and use /lib/ld-musl-x32.so.1 for -dynamic-linker 2021-03-25 16:25:47 -07:00
TwineTest.cpp [llvm][NFC] Add missing 'override's in unittests/ 2020-07-17 17:35:59 -07:00
TypeSwitchTest.cpp [mlir] Add support for walking locations similarly to Operations 2021-04-15 16:09:34 -07:00
TypeTraitsTest.cpp
WaymarkingTest.cpp