Integrate LLVM at llvm/llvm-project@89eb85ac6eab
Updates LLVM usage to match
[89eb85ac6eab](https://github.com/llvm/llvm-project/commit/89eb85ac6eab)
PiperOrigin-RevId: 414542383
diff --git a/SUBMODULE_VERSIONS.txt b/SUBMODULE_VERSIONS.txt
index f54c2ff..b4adbd0 100644
--- a/SUBMODULE_VERSIONS.txt
+++ b/SUBMODULE_VERSIONS.txt
@@ -4,7 +4,7 @@
aa533abfd4232b01f9e57041d70114d5a77e6de0 third_party/googletest
88b845dee001723c4a0db1fe5477de735b6d3bb0 third_party/liburing
acd6f6f014c25e46363e718381e0b35205df2d83 third_party/libyaml
-311dd55c9eb9342b1c889f6db7728f15b05378bb third_party/llvm-project
+89eb85ac6eab6431ef72ef705d560c72c5ed71f3 third_party/llvm-project
6ee3d5fb61b3b1861c79676092c4d7769f5f2da0 third_party/mlir-hlo
3f701faace7addc75d16dea8a6cd769fa5b3f260 third_party/musl
4c7697dbe973ed01ae6fbec37d186ebd05982e1f third_party/pybind11
diff --git a/iree/compiler/Dialect/Flow/Transforms/PadTensorToSubTensorInsert.cpp b/iree/compiler/Dialect/Flow/Transforms/PadTensorToSubTensorInsert.cpp
index 8c2b6eb..9667be2 100644
--- a/iree/compiler/Dialect/Flow/Transforms/PadTensorToSubTensorInsert.cpp
+++ b/iree/compiler/Dialect/Flow/Transforms/PadTensorToSubTensorInsert.cpp
@@ -63,7 +63,10 @@
SmallVector<Value> mapValues;
Value sourceDim = rewriter.createOrFold<tensor::DimOp>(loc, source, dim);
mapValues.push_back(sourceDim);
- sourceShape.push_back(sourceDim);
+ if (auto cstDim = sourceDim.getDefiningOp<arith::ConstantIndexOp>())
+ sourceShape.push_back(cstDim.getValue());
+ else
+ sourceShape.push_back(sourceDim);
AffineExpr expr = rewriter.getAffineDimExpr(0);
unsigned numSymbols = 0;
auto addValueOrAttr = [&](AffineExpr e, OpFoldResult valueOrAttr) {
diff --git a/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp b/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
index cabeb37..a719872 100644
--- a/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
+++ b/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
@@ -71,14 +71,15 @@
SmallVector<Value, 3> offsets, sizes, strides;
for (int i = 0; i < rank; ++i) {
offsets.push_back(rewriter.create<arith::ConstantIndexOp>(loc, 0));
- sizes.push_back(
- rewriter.create<tensor::DimOp>(loc, adaptor.getOperands()[0], i));
+ sizes.push_back(rewriter.createOrFold<tensor::DimOp>(
+ loc, adaptor.getOperands()[0], i));
strides.push_back(rewriter.create<arith::ConstantIndexOp>(loc, 1));
}
Value resultDimSize = rewriter.create<arith::ConstantIndexOp>(loc, 0);
for (auto arg : adaptor.getOperands()) {
- auto size = rewriter.create<tensor::DimOp>(loc, arg, dim);
- resultDimSize = rewriter.create<arith::AddIOp>(loc, resultDimSize, size);
+ auto size = rewriter.createOrFold<tensor::DimOp>(loc, arg, dim);
+ resultDimSize =
+ rewriter.createOrFold<arith::AddIOp>(loc, resultDimSize, size);
}
sizes[dim] = resultDimSize;
auto initTensor = rewriter.create<linalg::InitTensorOp>(
@@ -88,12 +89,21 @@
Value result =
rewriter.create<linalg::FillOp>(loc, zero, initTensor).getResult(0);
+ auto toOpFoldResult = [](Value v) -> OpFoldResult {
+ auto op = v.getDefiningOp<arith::ConstantIndexOp>();
+ if (!op) return v;
+ return op.getValue();
+ };
+
Value accBound = rewriter.create<arith::ConstantIndexOp>(loc, 0);
for (auto arg : adaptor.getOperands()) {
offsets[dim] = accBound;
- sizes[dim] = rewriter.create<tensor::DimOp>(loc, arg, dim);
- result = rewriter.create<tensor::InsertSliceOp>(loc, arg, result, offsets,
- sizes, strides);
+ sizes[dim] = rewriter.createOrFold<tensor::DimOp>(loc, arg, dim);
+ result = rewriter.create<tensor::InsertSliceOp>(
+ loc, arg, result,
+ llvm::to_vector(llvm::map_range(offsets, toOpFoldResult)),
+ llvm::to_vector(llvm::map_range(sizes, toOpFoldResult)),
+ llvm::to_vector(llvm::map_range(strides, toOpFoldResult)));
accBound = rewriter.create<arith::AddIOp>(loc, accBound, sizes[dim]);
}
rewriter.replaceOp(op, result);
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 311dd55..89eb85a 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 311dd55c9eb9342b1c889f6db7728f15b05378bb
+Subproject commit 89eb85ac6eab6431ef72ef705d560c72c5ed71f3