Skip to content

Commit

Permalink
[mlir] Add materializeOpFoldResults to turn OpFoldResult array into v…
Browse files Browse the repository at this point in the history
…alues.

Differential Revision: https://reviews.llvm.org/D133346
  • Loading branch information
pifon2a committed Sep 6, 2022
1 parent 4ce3848 commit c141c03
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,8 @@ Value materializeOpFoldResult(ImplicitLocOpBuilder &builder,
OpFoldResult opFoldResult);
Value materializeOpFoldResult(OpBuilder &b, Location loc,
OpFoldResult opFoldResult);
Value materializeOpFoldResult(OpBuilder &b, Location loc,
ArrayRef<OpFoldResult> opFoldResults);

/// A struct containg offsets-sizes-strides arguments of the tiled shape.
struct SliceParameters {
Expand Down
10 changes: 10 additions & 0 deletions mlir/lib/Dialect/Linalg/Utils/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -946,6 +946,16 @@ Value materializeOpFoldResult(OpBuilder &builder, Location loc,
return materializeOpFoldResult(b, opFoldResult);
}

SmallVector<Value>
materializeOpFoldResults(OpBuilder &builder, Location loc,
ArrayRef<OpFoldResult> opFoldResults) {
ImplicitLocOpBuilder b(loc, builder);
SmallVector<Value> values;
for (const auto &opFoldResult : opFoldResults)
values.push_back(materializeOpFoldResult(b, opFoldResult));
return values;
}

SmallVector<Optional<SliceParameters>>
computeAllSliceParameters(OpBuilder &builder, Location loc, LinalgOp linalgOp,
ValueRange valuesToTile, ArrayRef<OpFoldResult> ivs,
Expand Down

0 comments on commit c141c03

Please sign in to comment.