Skip to content

Commit

Permalink
[mlir][affineexpr] Changing AsmParser::parseAffineExpr API to use A…
Browse files Browse the repository at this point in the history
…rrayRef

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
  • Loading branch information
wrengr committed Jul 8, 2023
1 parent 1748694 commit ffbc08d
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 13 deletions.
2 changes: 1 addition & 1 deletion mlir/include/mlir/IR/OpImplementation.h
Original file line number Diff line number Diff line change
Expand Up @@ -1035,7 +1035,7 @@ class AsmParser {
/// Parse an affine expr instance into 'expr' using the already computed
/// mapping from symbols to affine expressions in 'symbolSet'.
virtual ParseResult
parseAffineExpr(SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
parseAffineExpr(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
AffineExpr &expr) = 0;

/// Parse an integer set instance into 'set'.
Expand Down
14 changes: 6 additions & 8 deletions mlir/lib/AsmParser/AffineParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ class AffineParser : public Parser {
ParseResult parseAffineMapRange(unsigned numDims, unsigned numSymbols,
AffineMap &result);
ParseResult parseAffineMapOrIntegerSetInline(AffineMap &map, IntegerSet &set);
ParseResult parseAffineExprInline(
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
AffineExpr &expr);
ParseResult
parseAffineExprInline(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
AffineExpr &expr);
ParseResult parseIntegerSetConstraints(unsigned numDims, unsigned numSymbols,
IntegerSet &result);
ParseResult parseAffineMapOfSSAIds(AffineMap &map,
Expand Down Expand Up @@ -538,9 +538,8 @@ ParseResult AffineParser::parseAffineMapOrIntegerSetInline(AffineMap &map,

/// Parse an affine expresion definition inline, with given symbols.
ParseResult AffineParser::parseAffineExprInline(
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
AffineExpr &expr) {
dimsAndSymbols.assign(symbolSet);
ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet, AffineExpr &expr) {
dimsAndSymbols.assign(symbolSet.begin(), symbolSet.end());
expr = parseAffineExpr();
return success(expr != nullptr);
}
Expand Down Expand Up @@ -716,8 +715,7 @@ ParseResult Parser::parseAffineMapReference(AffineMap &map) {
return success();
}
ParseResult Parser::parseAffineExprReference(
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
AffineExpr &expr) {
ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet, AffineExpr &expr) {
return AffineParser(state).parseAffineExprInline(symbolSet, expr);
}
ParseResult Parser::parseIntegerSetReference(IntegerSet &set) {
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/AsmParser/AsmParserImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ class AsmParserImpl : public BaseT {
/// Parse an affine expr instance into 'expr' using the already computed
/// mapping from symbols to affine expressions in 'symbolSet'.
ParseResult
parseAffineExpr(SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
parseAffineExpr(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
AffineExpr &expr) override {
return parser.parseAffineExprReference(symbolSet, expr);
}
Expand Down
6 changes: 3 additions & 3 deletions mlir/lib/AsmParser/Parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -300,9 +300,9 @@ class Parser {
ParseResult parseAffineMapOrIntegerSetReference(AffineMap &map,
IntegerSet &set);
ParseResult parseAffineMapReference(AffineMap &map);
ParseResult parseAffineExprReference(
SmallVectorImpl<std::pair<StringRef, AffineExpr>> &symbolSet,
AffineExpr &expr);
ParseResult
parseAffineExprReference(ArrayRef<std::pair<StringRef, AffineExpr>> symbolSet,
AffineExpr &expr);
ParseResult parseIntegerSetReference(IntegerSet &set);

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

0 comments on commit ffbc08d

Please sign in to comment.