18 #ifndef MLIR_SUPPORT_LLVM_H
19 #define MLIR_SUPPORT_LLVM_H
23 #include "llvm/ADT/None.h"
24 #include "llvm/Support/Casting.h"
28 #if defined(__clang_major__)
29 #if __clang_major__ <= 5
30 #include "llvm/ADT/DenseMapInfo.h"
31 #include "llvm/ADT/SmallVector.h"
49 template <
typename KeyT,
typename ValueT>
52 template <
typename KeyT,
typename ValueT,
typename KeyInfoT,
typename BucketT>
54 template <
typename T,
typename Enable>
56 template <
typename ValueT,
typename ValueInfoT>
58 class MallocAllocator;
61 template <
typename T>
using Optional = std::optional<T>;
62 template <
typename... PT>
64 template <
typename T,
typename Vector,
typename Set>
66 template <
typename T,
unsigned N>
70 template <
typename T,
unsigned N>
74 template <
typename AllocatorTy>
76 template <
typename T,
typename R>
80 template <
typename T,
typename ResultT>
87 template <
typename Fn>
89 template <
typename IteratorT>
99 using llvm::cast_or_null;
100 using llvm::dyn_cast;
101 using llvm::dyn_cast_if_present;
102 using llvm::dyn_cast_or_null;
104 using llvm::isa_and_nonnull;
108 using llvm::StringLiteral;
109 using llvm::StringRef;
116 using llvm::BitVector;
117 template <
typename T,
typename Enable =
void>
119 template <
typename KeyT,
typename ValueT,
123 template <
typename ValueT,
typename ValueInfoT = DenseMapInfo<ValueT>>
125 template <
typename T,
typename Vector = std::vector<T>,
126 typename Set = DenseSet<T>>
128 template <
typename AllocatorTy = llvm::MallocAllocator>
137 template <
typename T,
typename R = T>
140 template <
typename T,
typename ResultT =
void>
147 template <
typename Fn>
150 using llvm::raw_ostream;
Include the generated interface declarations.
std::optional< T > Optional
Include the generated interface declarations.