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