1 //===- IntegerSetDetail.h - MLIR IntegerSet storage details -----*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This holds implementation details of IntegerSet. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef INTEGERSETDETAIL_H_ 14 #define INTEGERSETDETAIL_H_ 15 16 #include "mlir/IR/AffineExpr.h" 17 #include "llvm/ADT/ArrayRef.h" 18 19 namespace mlir { 20 namespace detail { 21 22 struct IntegerSetStorage { 23 unsigned dimCount; 24 unsigned symbolCount; 25 26 /// Array of affine constraints: a constraint is either an equality 27 /// (affine_expr == 0) or an inequality (affine_expr >= 0). 28 ArrayRef<AffineExpr> constraints; 29 30 // Bits to check whether a constraint is an equality or an inequality. 31 ArrayRef<bool> eqFlags; 32 }; 33 34 } // end namespace detail 35 } // end namespace mlir 36 #endif // INTEGERSETDETAIL_H_ 37