1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/include/llvm/ADT
Florian Hahn bd2bad88ac [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
..
AllocatorList.h Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
Any.h Fix compilation of Any.h header. 2020-02-12 08:25:14 -08:00
APFixedPoint.h [Fixed Point] Add floating point methods to APFixedPoint. 2020-10-09 10:27:42 +02:00
APFloat.h Stop traping on sNaN in __builtin_isnan 2021-02-05 18:28:48 +00:00
APInt.h Reland "[Support] Don't include <algorithm> in MathExtras.h" 2021-04-16 14:07:45 -04:00
APSInt.h [APSInt][NFC] Clean up doxygen comments 2021-01-22 09:23:41 +00:00
ArrayRef.h [ADT][NFC] Add extra typedefs to ArrayRef and MutableArrayRef 2021-02-26 18:37:08 +03:00
bit.h Fix SFINAE in llvm::bit_cast. 2020-02-12 08:26:10 -08:00
Bitfields.h [Bitfields][NFC] Make sure bitfields are contiguous 2020-07-07 14:35:13 +00:00
BitmaskEnum.h Add BitWidth trait to BitmaskEnum, and use for clang DependenceFlags. NFC 2020-03-27 22:40:21 +01:00
BitVector.h Simplify BitVector code 2021-04-16 22:48:33 +02:00
BreadthFirstIterator.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
CachedHashString.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
CoalescingBitVector.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
DAGDeltaAlgorithm.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00
DeltaAlgorithm.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00
DenseMap.h Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
DenseMapInfo.h [NFC] Fix "unused parameter" error revealed in the Linux self-build. 2021-03-12 10:26:40 -08:00
DenseSet.h Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
DepthFirstIterator.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
DirectedGraph.h [llvm] Use llvm::append_range (NFC) 2021-01-06 18:27:33 -08:00
edit_distance.h
EnumeratedArray.h Reland "[OpenMPOpt] ICV Tracking" 2020-07-11 02:25:57 +02:00
EpochTracker.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
EquivalenceClasses.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
fallible_iterator.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00
FloatingPointMode.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
FoldingSet.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00
FunctionExtras.h [ADT] Add SFINAE guards to unique_function constructor. 2021-02-17 10:36:07 +01:00
GraphTraits.h
Hashing.h Revert "[Support] Don't include <algorithm> in Hashing.h" 2021-04-16 12:17:42 -04:00
ilist_base.h
ilist_iterator.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
ilist_node_base.h
ilist_node_options.h
ilist_node.h
ilist.h Try to fix ilist.h after 529e6f8791b6 2020-02-06 12:33:44 +01:00
ImmutableList.h Revert "Replace std::foo with std::foo_t in LLVM." 2020-02-12 20:54:21 -08:00
ImmutableMap.h [ADT] Fix for ImmutableMapRef 2020-10-29 13:19:51 +01:00
ImmutableSet.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
IndexedMap.h
IntEqClasses.h
IntervalMap.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
IntrusiveRefCntPtr.h [NFC] Fix "unused parameter" error revealed in the Linux self-build. 2021-03-15 12:17:11 -04:00
iterator_range.h [ADT] Use alignas + sizeof for inline storage, NFC 2020-10-14 16:16:02 -07:00
iterator.h [ADT] Don't include <algorithm> in iterator.h 2021-04-16 12:21:08 -04:00
MapVector.h
None.h
Optional.h [NFC] Fix "unused parameter" error revealed in the Linux self-build. 2021-03-12 10:26:40 -08:00
PackedVector.h
PointerEmbeddedInt.h PointerLikeTypeTraits: Standardize NumLowBitsAvailable on static constexpr rather than anonymous enum 2020-01-16 15:30:50 -08:00
PointerIntPair.h Revert "Use std::is_trivially_copyable", breaks MSVC build 2020-12-02 14:30:46 -08:00
PointerSumType.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00
PointerUnion.h [ADT] Delete unused llvm::pointer_union_detail::AssignableFrom 2020-07-22 09:24:36 -07:00
PostOrderIterator.h [ADT] Update RPOT to work with specializations of different types. 2021-04-17 20:45:04 +01:00
PriorityQueue.h
PriorityWorklist.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
SCCIterator.h [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle() 2020-03-01 19:17:21 +02:00
ScopedHashTable.h [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
ScopeExit.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
Sequence.h [mlir][Inliner] Refactor the inliner to use nested pass pipelines instead of just canonicalization 2020-12-14 18:09:47 -08:00
SetOperations.h [NFC] Fix a compiler warning 2021-03-10 13:28:53 -08:00
SetVector.h [llvm] Add contains(KeyType) -> bool methods to SetVector 2020-07-17 11:26:27 -07:00
simple_ilist.h NFC: Remove simple_ilist comment mentioning ilist/iplist allocating 2021-01-22 03:24:54 -05:00
SmallBitVector.h Fix bug in SmallBitVector::find_next_unset 2020-04-24 13:50:30 -07:00
SmallPtrSet.h Allow SmallPtrSet to be used with a std::insert_iterator 2021-02-05 16:12:47 -05:00
SmallSet.h [llvm] Add contains(KeyType) -> bool methods to SmallSet 2020-07-17 11:26:27 -07:00
SmallString.h ADT: Use 'using' to inherit assign and append in SmallString 2021-01-22 16:17:58 -08:00
SmallVector.h ADT: Use 'using' to inherit assign and append in SmallString 2021-01-22 16:17:58 -08:00
SparseBitVector.h
SparseMultiSet.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
SparseSet.h [llvm] Add contains(KeyType) -> bool methods to SparseSet 2020-07-17 11:26:27 -07:00
Statistic.h fix some Wundef warnings in public headers 2020-11-23 20:17:46 -05:00
STLExtras.h [docs] Fix doxygen comments wrongly attached to the llvm namespace 2021-04-07 01:20:18 +02:00
StringExtras.h [StringExtras] Fix comment typos (NFC) 2021-01-16 09:40:51 -08:00
StringMap.h Make LLVM build in C++20 mode 2020-12-17 10:44:10 +00:00
StringMapEntry.h ADT: Sink the guts of StringMapEntry::Create into StringMapEntryBase 2021-04-08 17:57:47 -07:00
StringRef.h Make some static class members constexpr 2020-04-22 12:25:01 +02:00
StringSet.h [llvm] Add contains(KeyType) -> bool methods to StringSet 2020-07-17 11:26:27 -07:00
StringSwitch.h Revert "Forward declare Optional<T> in STLExtras.h" 2019-11-13 16:36:21 -08:00
TinyPtrVector.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
Triple.h [Triple][Driver] Add muslx32 environment and use /lib/ld-musl-x32.so.1 for -dynamic-linker 2021-03-25 16:25:47 -07:00
Twine.h Revert rGa3c715e9788d829031989b0a5ea4eb43c7288be9 "Twine - fix uninitialized variable warnings. NFCI." 2020-03-27 11:44:04 +00:00
TypeSwitch.h [mlir] Add support for walking locations similarly to Operations 2021-04-15 16:09:34 -07:00
UniqueVector.h
Waymarking.h [ADT] NFC: Fix typos in header comments 2020-05-21 17:43:00 +02:00