Skip to content

Commit ffbc08d

Browse files
committed
[mlir][affineexpr] Changing AsmParser::parseAffineExpr API to use ArrayRef
The methods added by D154177 don't require the `symbolSet` parameter to be mutable nor to have the `SmallVectorImpl` type, so this commit changes them to accept `ArrayRef` instead: both for generality, and to make the non-mutation an explicit part of the API. Reviewed By: aartbik, Peiming Differential Revision: https://reviews.llvm.org/D154751
1 parent 1748694 commit ffbc08d

File tree

4 files changed

+11
-13
lines changed

4 files changed

+11
-13
lines changed

mlir/include/mlir/IR/OpImplementation.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1035,7 +1035,7 @@ class AsmParser {
10351035
/// Parse an affine expr instance into 'expr' using the already computed
10361036
/// mapping from symbols to affine expressions in 'symbolSet'.
10371037
virtual ParseResult
1038-
parseAffineExpr(SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
1038+
parseAffineExpr(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
10391039
AffineExpr &expr) = 0;
10401040

10411041
/// Parse an integer set instance into 'set'.

mlir/lib/AsmParser/AffineParser.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ class AffineParser : public Parser {
5353
ParseResult parseAffineMapRange(unsigned numDims, unsigned numSymbols,
5454
AffineMap &result);
5555
ParseResult parseAffineMapOrIntegerSetInline(AffineMap &map, IntegerSet &set);
56-
ParseResult parseAffineExprInline(
57-
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
58-
AffineExpr &expr);
56+
ParseResult
57+
parseAffineExprInline(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
58+
AffineExpr &expr);
5959
ParseResult parseIntegerSetConstraints(unsigned numDims, unsigned numSymbols,
6060
IntegerSet &result);
6161
ParseResult parseAffineMapOfSSAIds(AffineMap &map,
@@ -538,9 +538,8 @@ ParseResult AffineParser::parseAffineMapOrIntegerSetInline(AffineMap &map,
538538

539539
/// Parse an affine expresion definition inline, with given symbols.
540540
ParseResult AffineParser::parseAffineExprInline(
541-
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
542-
AffineExpr &expr) {
543-
dimsAndSymbols.assign(symbolSet);
541+
ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet, AffineExpr &expr) {
542+
dimsAndSymbols.assign(symbolSet.begin(), symbolSet.end());
544543
expr = parseAffineExpr();
545544
return success(expr != nullptr);
546545
}
@@ -716,8 +715,7 @@ ParseResult Parser::parseAffineMapReference(AffineMap &map) {
716715
return success();
717716
}
718717
ParseResult Parser::parseAffineExprReference(
719-
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
720-
AffineExpr &expr) {
718+
ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet, AffineExpr &expr) {
721719
return AffineParser(state).parseAffineExprInline(symbolSet, expr);
722720
}
723721
ParseResult Parser::parseIntegerSetReference(IntegerSet &set) {

mlir/lib/AsmParser/AsmParserImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ class AsmParserImpl : public BaseT {
459459
/// Parse an affine expr instance into 'expr' using the already computed
460460
/// mapping from symbols to affine expressions in 'symbolSet'.
461461
ParseResult
462-
parseAffineExpr(SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
462+
parseAffineExpr(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
463463
AffineExpr &expr) override {
464464
return parser.parseAffineExprReference(symbolSet, expr);
465465
}

mlir/lib/AsmParser/Parser.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ class Parser {
300300
ParseResult parseAffineMapOrIntegerSetReference(AffineMap &map,
301301
IntegerSet &set);
302302
ParseResult parseAffineMapReference(AffineMap &map);
303-
ParseResult parseAffineExprReference(
304-
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
305-
AffineExpr &expr);
303+
ParseResult
304+
parseAffineExprReference(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
305+
AffineExpr &expr);
306306
ParseResult parseIntegerSetReference(IntegerSet &set);
307307

308308
/// Parse an AffineMap where the dim and symbol identifiers are SSA ids.

0 commit comments

Comments
 (0)