25
25
26
26
// Forward declarations.
27
27
namespace llvm {
28
- // Containers.
28
+ // String types
29
+ template <unsigned N>
30
+ class SmallString ;
29
31
class StringRef ;
30
32
class StringLiteral ;
31
33
class Twine ;
32
- template <typename T> class SmallPtrSetImpl ;
33
- template <typename T, unsigned N> class SmallPtrSet ;
34
- template <typename T> class SmallVectorImpl ;
35
- template <typename T, unsigned N> class SmallVector ;
36
- template <unsigned N> class SmallString ;
34
+
35
+ // Containers.
37
36
template <typename T> class ArrayRef ;
38
- template <typename T> class MutableArrayRef ;
39
- template <typename T> class TinyPtrVector ;
40
- template <typename T> class Optional ;
41
- template <typename ... PT> class PointerUnion ;
42
37
namespace detail {
43
38
template <typename KeyT, typename ValueT> struct DenseMapPair ;
44
- }
45
- template <typename T> struct DenseMapInfo ;
46
- template <typename ValueT, typename ValueInfoT> class DenseSet ;
39
+ } // namespace detail
47
40
template <typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>
48
41
class DenseMap ;
49
- template <typename Fn> class function_ref ;
50
- template <typename IteratorT> class iterator_range ;
51
- template <typename T, typename ResultT> class TypeSwitch ;
42
+ template <typename T>
43
+ struct DenseMapInfo ;
44
+ template <typename ValueT, typename ValueInfoT>
45
+ class DenseSet ;
52
46
class MallocAllocator ;
47
+ template <typename T>
48
+ class MutableArrayRef ;
49
+ template <typename T>
50
+ class Optional ;
51
+ template <typename ... PT>
52
+ class PointerUnion ;
53
+ template <typename T, unsigned N>
54
+ class SmallPtrSet ;
55
+ template <typename T>
56
+ class SmallPtrSetImpl ;
57
+ template <typename T, unsigned N>
58
+ class SmallVector ;
59
+ template <typename T>
60
+ class SmallVectorImpl ;
53
61
template <typename AllocatorTy>
54
62
class StringSet ;
63
+ template <typename T>
64
+ class TinyPtrVector ;
65
+ template <typename T, typename ResultT>
66
+ class TypeSwitch ;
55
67
56
68
// Other common classes.
57
- class raw_ostream ;
58
69
class APInt ;
59
70
class APFloat ;
71
+ template <typename Fn>
72
+ class function_ref ;
73
+ template <typename IteratorT>
74
+ class iterator_range ;
75
+ class raw_ostream ;
60
76
} // end namespace llvm
61
77
62
78
namespace mlir {
@@ -68,6 +84,14 @@ using llvm::dyn_cast_or_null;
68
84
using llvm::isa;
69
85
using llvm::isa_and_nonnull;
70
86
87
+ // String types
88
+ using llvm::SmallString;
89
+ using llvm::StringLiteral;
90
+ using llvm::StringRef;
91
+ using llvm::Twine;
92
+
93
+ // Container Related types
94
+ //
71
95
// Containers.
72
96
using llvm::ArrayRef;
73
97
using llvm::DenseMapInfo;
@@ -79,27 +103,24 @@ template <typename ValueT, typename ValueInfoT = DenseMapInfo<ValueT>>
79
103
using DenseSet = llvm::DenseSet<ValueT, ValueInfoT>;
80
104
template <typename AllocatorTy = llvm::MallocAllocator>
81
105
using StringSet = llvm::StringSet<AllocatorTy>;
82
- template <typename Fn> using function_ref = llvm::function_ref<Fn>;
83
- using llvm::iterator_range;
84
106
using llvm::MutableArrayRef;
85
107
using llvm::None;
86
108
using llvm::Optional;
87
109
using llvm::PointerUnion;
88
110
using llvm::SmallPtrSet;
89
111
using llvm::SmallPtrSetImpl;
90
- using llvm::SmallString;
91
112
using llvm::SmallVector;
92
113
using llvm::SmallVectorImpl;
93
- using llvm::StringLiteral;
94
- using llvm::StringRef;
95
114
using llvm::TinyPtrVector;
96
- using llvm::Twine;
97
115
template <typename T, typename ResultT = void >
98
116
using TypeSwitch = llvm::TypeSwitch<T, ResultT>;
99
117
100
118
// Other common classes.
101
119
using llvm::APFloat;
102
120
using llvm::APInt;
121
+ template <typename Fn>
122
+ using function_ref = llvm::function_ref<Fn>;
123
+ using llvm::iterator_range;
103
124
using llvm::raw_ostream;
104
125
} // namespace mlir
105
126
0 commit comments