13 #ifndef INTEGERSETDETAIL_H_
14 #define INTEGERSETDETAIL_H_
18 #include "llvm/ADT/ArrayRef.h"
26 std::tuple<unsigned, unsigned, ArrayRef<AffineExpr>,
ArrayRef<bool>>;
47 res->dimCount = std::get<0>(key);
48 res->symbolCount = std::get<1>(key);
49 res->constraints = allocator.
copyInto(std::get<2>(key));
50 res->eqFlags = allocator.
copyInto(std::get<3>(key));
This class acts as the base storage that all storage classes must derived from.
This is a utility allocator used to allocate memory for instances of derived types.
ArrayRef< T > copyInto(ArrayRef< T > elements)
Copy the specified array of elements into memory managed by our bump pointer allocator.
T * allocate()
Allocate an instance of the provided type.
Include the generated interface declarations.
static IntegerSetStorage * construct(StorageUniquer::StorageAllocator &allocator, const KeyTy &key)
ArrayRef< AffineExpr > constraints
Array of affine constraints: a constraint is either an equality (affine_expr == 0) or an inequality (...
std::tuple< unsigned, unsigned, ArrayRef< AffineExpr >, ArrayRef< bool > > KeyTy
The hash key used for uniquing.
bool operator==(const KeyTy &key) const