Integrate llvm/llvm-project@279d294d26c3 (#11461)
* Reset third_party/llvm-project:
279d294d26c39e86dd7baabf5cd3385676d9a7a4 (2022-12-06 12:13:02 -0800):
Use consistent spacing before custom directives for op and attr/type
assemblyFormat.
* Updated tensorflow/tensorflow@1392623
* Updated tensorflow/mlir-hlo@2a102df
* Removed `let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed`
* Calling `mhlo::populateScalarHloToArithmeticConversionPatterns`
Co-authored-by: Hanhan Wang <hanchung@google.com>
diff --git a/compiler/src/iree/compiler/Codegen/Common/FlattenMemRefSubspanPass.cpp b/compiler/src/iree/compiler/Codegen/Common/FlattenMemRefSubspanPass.cpp
index 6bc9b7f..5413097 100644
--- a/compiler/src/iree/compiler/Codegen/Common/FlattenMemRefSubspanPass.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/FlattenMemRefSubspanPass.cpp
@@ -463,7 +463,7 @@
rewriter.replaceOpWithNewOp<gpu::SubgroupMmaStoreMatrixOp>(
storeOp, adaptor.getSrc(), adaptor.getDstMemref(), linearIndex,
- storeOp.getLeadDimension());
+ storeOp.getLeadDimension(), storeOp.getTransposeAttr());
return success();
}
};
@@ -683,7 +683,8 @@
} else if constexpr (std::is_same<OpType,
gpu::SubgroupMmaStoreMatrixOp>::value) {
rewriter.replaceOpWithNewOp<gpu::SubgroupMmaStoreMatrixOp>(
- op, op.getSrc(), newSubspan, newIndex, op.getLeadDimension());
+ op, op.getSrc(), newSubspan, newIndex, op.getLeadDimension(),
+ op.getTransposeAttr());
} else if constexpr (std::is_same<OpType, memref::LoadOp>::value) {
rewriter.replaceOpWithNewOp<memref::LoadOp>(
op, memrefType.getElementType(), ValueRange{newSubspan, newIndex});
diff --git a/compiler/src/iree/compiler/Codegen/Common/FoldAffineMinInDistributedLoops.cpp b/compiler/src/iree/compiler/Codegen/Common/FoldAffineMinInDistributedLoops.cpp
index 780ac60..d26fbd8 100644
--- a/compiler/src/iree/compiler/Codegen/Common/FoldAffineMinInDistributedLoops.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/FoldAffineMinInDistributedLoops.cpp
@@ -104,8 +104,8 @@
};
return scf::canonicalizeMinMaxOpInLoop(
- rewriter, minOp, minOp.getAffineMap(), minOp.operands(), /*isMin=*/true,
- loopMatcher);
+ rewriter, minOp, minOp.getAffineMap(), minOp.getOperands(),
+ /*isMin=*/true, loopMatcher);
}
};
diff --git a/compiler/src/iree/compiler/Codegen/Common/TileAndDistributeToWorkgroupsPass.cpp b/compiler/src/iree/compiler/Codegen/Common/TileAndDistributeToWorkgroupsPass.cpp
index 450dbd5..25180bf 100644
--- a/compiler/src/iree/compiler/Codegen/Common/TileAndDistributeToWorkgroupsPass.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/TileAndDistributeToWorkgroupsPass.cpp
@@ -154,7 +154,7 @@
LogicalResult matchAndRewrite(
IREE::Flow::DispatchWorkgroupCountFromDagRootOp workgroupCountOp,
PatternRewriter &rewriter) const override {
- auto workloadValues = workgroupCountOp.operands();
+ auto workloadValues = workgroupCountOp.getOperands();
SmallVector<OpFoldResult> tileSizes = llvm::to_vector(llvm::map_range(
givenTileSizes,
[&](int64_t v) -> OpFoldResult { return rewriter.getIndexAttr(v); }));
diff --git a/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp b/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp
index edb28c2..bfb93dd 100644
--- a/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp
+++ b/compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp
@@ -549,7 +549,7 @@
rewriter.replaceOpWithNewOp<gpu::SubgroupMmaStoreMatrixOp>(
storeOp, adaptor.getSrc(), adaptor.getDstMemref(), indices.value(),
- newLeadDimSize);
+ newLeadDimSize, storeOp.getTransposeAttr());
return success();
}
};
diff --git a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowBase.td b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowBase.td
index 7728ff6..4fa4144 100644
--- a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowBase.td
+++ b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowBase.td
@@ -19,7 +19,6 @@
def Flow_Dialect : Dialect {
let name = "flow";
let cppNamespace = "::mlir::iree_compiler::IREE::Flow";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
A dialect designed to model execution data flow and partitioning.
diff --git a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp
index f7376d7..b2492f0 100644
--- a/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp
+++ b/compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp
@@ -452,7 +452,7 @@
if (!unusedResults.contains(it.index()))
yieldedValues.push_back(it.value());
rewriter.updateRootInPlace(
- returnOp, [&]() { returnOp.operandsMutable().assign(yieldedValues); });
+ returnOp, [&]() { returnOp.getOperandsMutable().assign(yieldedValues); });
// Replace all uses of the old op.
SmallVector<Value> replacements(regionOp->getNumResults(), nullptr);
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp
index 2a0eb34..3f4110b 100644
--- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp
+++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/ExpandTensorShapes.cpp
@@ -348,7 +348,7 @@
// Build the new call op with expanded operands and results.
OpBuilder builder(op);
- auto operands = expandOperands(op.getLoc(), op.operands(), tensorDimMap,
+ auto operands = expandOperands(op.getLoc(), op.getOperands(), tensorDimMap,
indexSet, builder);
auto resultTypes = expandTypes(op.getResultTypes());
auto newOp = builder.create<mlir::func::CallOp>(op.getLoc(), op.getCallee(),
@@ -394,7 +394,7 @@
TensorDimMap &tensorDimMap) {
if (!usesDynamicTensors(op)) return;
OpBuilder builder(op);
- auto operands = expandOperands(op.getLoc(), op.operands(), tensorDimMap,
+ auto operands = expandOperands(op.getLoc(), op.getOperands(), tensorDimMap,
indexSet, builder);
builder.create<mlir::func::ReturnOp>(op.getLoc(), operands);
op.erase();
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp
index 7bf7904..843ffad 100644
--- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp
+++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp
@@ -189,7 +189,7 @@
SmallVector<Value> returnedValues(returnOp.getOperands().begin(),
returnOp.getOperands().end());
returnedValues.push_back(result);
- returnOp.operandsMutable().assign(returnedValues);
+ returnOp.getOperandsMutable().assign(returnedValues);
return newRegionOp;
}
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp b/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp
index 644248d..8bcd7c9 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp
@@ -674,7 +674,7 @@
IREE::Stream::TensorTraceOp traceOp, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
rewriter.replaceOpWithNewOp<IREE::HAL::BufferViewTraceOp>(
- traceOp, traceOp.getKeyAttr(), adaptor.operands());
+ traceOp, traceOp.getKeyAttr(), adaptor.getOperands());
return success();
}
};
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.td b/compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.td
index 69ce6ac..b619186 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.td
+++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALDialect.td
@@ -16,7 +16,6 @@
def HAL_Dialect : Dialect {
let name = "hal";
let cppNamespace = "::mlir::iree_compiler::IREE::HAL";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
A dialect representing operations against the IREE HAL.
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp
index edb2fe9..c152b96 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp
@@ -654,7 +654,7 @@
for (auto [i, operand] : llvm::enumerate(returnOp.getOperands())) {
if (preservedIndices.test(i)) operands.push_back(operand);
}
- returnOp.operandsMutable().assign(operands);
+ returnOp.getOperandsMutable().assign(operands);
}
}
diff --git a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp
index 178ebfd..efa16f9 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp
@@ -139,7 +139,8 @@
<< op.getNumOperands() << ", expected "
<< expectedTypes.size() << ")";
}
- for (auto pair : llvm::enumerate(llvm::zip(op.operands(), expectedTypes))) {
+ for (auto pair :
+ llvm::enumerate(llvm::zip(op.getOperands(), expectedTypes))) {
auto operand = std::get<0>(pair.value());
auto expectedType = std::get<1>(pair.value());
if (operand.getType() != expectedType) {
@@ -754,7 +755,7 @@
// TODO(ravishankarm): The SingleBlockImplicitTerminator<"HAL::ReturnOp">
// should generate this check, but it doesnt.
auto returnOp = dyn_cast<ReturnOp>(body->getTerminator());
- if (!returnOp || returnOp.operands().size() != getNumWorkgroupDims()) {
+ if (!returnOp || returnOp.getOperands().size() != getNumWorkgroupDims()) {
return op.emitOpError("expected operation to yield ")
<< getNumWorkgroupDims() << " values";
}
@@ -831,9 +832,9 @@
auto returnOp = cast<IREE::HAL::ReturnOp>(body->getTerminator());
assert(returnOp.getNumOperands() == 3 && "must return xyz");
return {
- bvm.lookup(returnOp.operands()[0]),
- bvm.lookup(returnOp.operands()[1]),
- bvm.lookup(returnOp.operands()[2]),
+ bvm.lookup(returnOp.getOperands()[0]),
+ bvm.lookup(returnOp.getOperands()[1]),
+ bvm.lookup(returnOp.getOperands()[2]),
};
}
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp b/compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp
index 85b808d..3e9eb13 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp
@@ -348,7 +348,7 @@
using OpRewritePattern<IREE::Stream::ReturnOp>::OpRewritePattern;
LogicalResult matchAndRewrite(IREE::Stream::ReturnOp op,
PatternRewriter &rewriter) const override {
- rewriter.replaceOpWithNewOp<IREE::HAL::ReturnOp>(op, op.operands());
+ rewriter.replaceOpWithNewOp<IREE::HAL::ReturnOp>(op, op.getOperands());
return success();
}
};
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp b/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp
index 2b96754..3b51b03 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp
@@ -229,7 +229,7 @@
IREE::Flow::TensorTraceOp op, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
SmallVector<Value> exportedTensors;
- for (auto it : llvm::zip(op.operands(), adaptor.operands())) {
+ for (auto it : llvm::zip(op.getOperands(), adaptor.getOperands())) {
auto tensorOperand = std::get<0>(it);
auto resourceOperand = std::get<1>(it);
auto source =
@@ -394,7 +394,7 @@
static void convertReturnOps(Region ®ion) {
region.walk([](IREE::Flow::ReturnOp oldOp) {
OpBuilder(oldOp).create<IREE::Stream::ReturnOp>(oldOp.getLoc(),
- oldOp.operands());
+ oldOp.getOperands());
oldOp.erase();
});
}
@@ -479,7 +479,8 @@
LogicalResult matchAndRewrite(
IREE::Flow::ReturnOp op, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
- rewriter.replaceOpWithNewOp<IREE::Stream::ReturnOp>(op, adaptor.operands());
+ rewriter.replaceOpWithNewOp<IREE::Stream::ReturnOp>(op,
+ adaptor.getOperands());
return success();
}
};
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamBase.td b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamBase.td
index 9167d93..e256aeb 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamBase.td
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamBase.td
@@ -23,7 +23,6 @@
def Stream_Dialect : Dialect {
let name = "stream";
let cppNamespace = "::mlir::iree_compiler::IREE::Stream";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
A dialect designed to model execution partitioning and scheduling.
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
index 76f80ec..1a2f70f 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp
@@ -2251,7 +2251,7 @@
if (auto importOp = dyn_cast_or_null<TimepointImportOp>(
getAwaitTimepoint().getDefiningOp())) {
if (llvm::equal(importOp.getOperandTypes(), getResultTypes())) {
- llvm::append_range(results, importOp.operands());
+ llvm::append_range(results, importOp.getOperands());
return success();
}
}
diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp
index d668223..728b912 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp
@@ -2623,7 +2623,7 @@
MutableOperandRange ReturnOp::getMutableSuccessorOperands(
Optional<unsigned> index) {
- return operandsMutable();
+ return getOperandsMutable();
}
//===----------------------------------------------------------------------===//
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp
index ac02b17..7c91b76 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/PropagateTimepoints.cpp
@@ -418,8 +418,8 @@
// Build the new call op with expanded operands and results.
OpBuilder builder(op);
- auto operands =
- expandOperands(op.getLoc(), op.operands(), resourceTimepointMap, builder);
+ auto operands = expandOperands(op.getLoc(), op.getOperands(),
+ resourceTimepointMap, builder);
auto resultTypes = expandTypes(op.getResultTypes());
auto newOp = builder.create<mlir::func::CallOp>(op.getLoc(), op.getCallee(),
resultTypes, operands);
@@ -464,8 +464,8 @@
if (!usesResources(op)) return;
if (isPublicOrExternal(op->getParentOfType<mlir::func::FuncOp>())) return;
OpBuilder builder(op);
- auto operands =
- expandOperands(op.getLoc(), op.operands(), resourceTimepointMap, builder);
+ auto operands = expandOperands(op.getLoc(), op.getOperands(),
+ resourceTimepointMap, builder);
builder.create<mlir::func::ReturnOp>(op.getLoc(), operands);
op.erase();
}
diff --git a/compiler/src/iree/compiler/Dialect/Util/Conversion/ConversionPatterns.cpp b/compiler/src/iree/compiler/Dialect/Util/Conversion/ConversionPatterns.cpp
index 0913855..77b2606 100644
--- a/compiler/src/iree/compiler/Dialect/Util/Conversion/ConversionPatterns.cpp
+++ b/compiler/src/iree/compiler/Dialect/Util/Conversion/ConversionPatterns.cpp
@@ -149,7 +149,7 @@
return rewriter.notifyMatchFailure(op, "unable to convert result types");
}
rewriter.replaceOpWithNewOp<mlir::func::CallOp>(
- op, resultTypes, op.getCallee(), adaptor.operands());
+ op, resultTypes, op.getCallee(), adaptor.getOperands());
return success();
}
};
@@ -160,7 +160,7 @@
mlir::func::ReturnOp returnOp, OpAdaptor adaptor,
ConversionPatternRewriter &rewriter) const override {
rewriter.replaceOpWithNewOp<mlir::func::ReturnOp>(returnOp,
- adaptor.operands());
+ adaptor.getOperands());
return success();
}
};
diff --git a/compiler/src/iree/compiler/Dialect/Util/IR/UtilBase.td b/compiler/src/iree/compiler/Dialect/Util/IR/UtilBase.td
index a5246fa..bbf52f8 100644
--- a/compiler/src/iree/compiler/Dialect/Util/IR/UtilBase.td
+++ b/compiler/src/iree/compiler/Dialect/Util/IR/UtilBase.td
@@ -17,7 +17,6 @@
def Util_Dialect : Dialect {
let name = "util";
let cppNamespace = "::mlir::iree_compiler::IREE::Util";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
A dialect used for types common across IREE subdialects.
diff --git a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp
index 461eeb2..ab3192e 100644
--- a/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp
+++ b/compiler/src/iree/compiler/Dialect/Util/IR/UtilOpFolders.cpp
@@ -73,11 +73,11 @@
}
OpFoldResult RangeMinOp::fold(ArrayRef<Attribute> operands) {
- return foldRangeOp<INT64_MAX, xmin>(getType(), this->operands(), operands);
+ return foldRangeOp<INT64_MAX, xmin>(getType(), this->getOperands(), operands);
}
OpFoldResult RangeMaxOp::fold(ArrayRef<Attribute> operands) {
- return foldRangeOp<INT64_MIN, xmax>(getType(), this->operands(), operands);
+ return foldRangeOp<INT64_MIN, xmax>(getType(), this->getOperands(), operands);
}
namespace {
@@ -129,7 +129,7 @@
}
}
if (operands.size() + (constantValue != initialValue ? 1 : 0) ==
- op.operands().size()) {
+ op.getOperands().size()) {
// No change in operand count.
return failure();
}
diff --git a/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp b/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp
index b0e2f1c..52cc4ea 100644
--- a/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp
+++ b/compiler/src/iree/compiler/Dialect/Util/Transforms/IPO.cpp
@@ -461,7 +461,7 @@
// Erase dead results from all return sites.
funcOp.walk([&](func::ReturnOp returnOp) {
for (int i = deadResults.size() - 1; i >= 0; --i) {
- if (deadResults.test(i)) returnOp.operandsMutable().erase(i);
+ if (deadResults.test(i)) returnOp.getOperandsMutable().erase(i);
}
});
diff --git a/compiler/src/iree/compiler/Dialect/Util/Transforms/PropagateSubranges.cpp b/compiler/src/iree/compiler/Dialect/Util/Transforms/PropagateSubranges.cpp
index af0cbc6..19cee25 100644
--- a/compiler/src/iree/compiler/Dialect/Util/Transforms/PropagateSubranges.cpp
+++ b/compiler/src/iree/compiler/Dialect/Util/Transforms/PropagateSubranges.cpp
@@ -454,7 +454,7 @@
// Build the new call op with expanded operands and results.
OpBuilder builder(op);
- auto operands = expandOperands(op.getLoc(), op.operands(), subrangeMap,
+ auto operands = expandOperands(op.getLoc(), op.getOperands(), subrangeMap,
indexSet, builder);
auto resultTypes = expandTypes(op.getResultTypes());
auto newOp = builder.create<mlir::func::CallOp>(op.getLoc(), op.getCallee(),
@@ -501,7 +501,7 @@
if (!usesResources(op)) return;
if (isPublicOrExternal(op->getParentOfType<mlir::func::FuncOp>())) return;
OpBuilder builder(op);
- auto operands = expandOperands(op.getLoc(), op.operands(), subrangeMap,
+ auto operands = expandOperands(op.getLoc(), op.getOperands(), subrangeMap,
indexSet, builder);
builder.create<mlir::func::ReturnOp>(op.getLoc(), operands);
op.erase();
diff --git a/compiler/src/iree/compiler/Dialect/VM/IR/VMBase.td b/compiler/src/iree/compiler/Dialect/VM/IR/VMBase.td
index 1255449..6d813f0 100644
--- a/compiler/src/iree/compiler/Dialect/VM/IR/VMBase.td
+++ b/compiler/src/iree/compiler/Dialect/VM/IR/VMBase.td
@@ -16,7 +16,6 @@
def VM_Dialect : Dialect {
let name = "vm";
let cppNamespace = "::mlir::iree_compiler::IREE::VM";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
A dialect representing operations against an abstract virtual machine.
diff --git a/compiler/src/iree/compiler/Dialect/VMVX/IR/VMVXBase.td b/compiler/src/iree/compiler/Dialect/VMVX/IR/VMVXBase.td
index 84db114..77c5fdf 100644
--- a/compiler/src/iree/compiler/Dialect/VMVX/IR/VMVXBase.td
+++ b/compiler/src/iree/compiler/Dialect/VMVX/IR/VMVXBase.td
@@ -17,7 +17,6 @@
def VMVX_Dialect : Dialect {
let name = "vmvx";
let cppNamespace = "::mlir::iree_compiler::IREE::VMVX";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
Vector extensions to the IREE VM.
diff --git a/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp b/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
index e53811d..f8aadfa 100644
--- a/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
+++ b/compiler/src/iree/compiler/InputConversion/MHLO/MHLOToLinalgOnTensors.cpp
@@ -358,6 +358,9 @@
populateMHLOToFlowPatterns(context, patterns);
chlo::populateDecomposeChloPatterns(context, &patterns);
populateMHLOBroadcastingToLinalgPatterns(context, *typeConverter, patterns);
+ mhlo::populateScalarHloToArithmeticConversionPatterns(
+ context, *typeConverter, &patterns,
+ [](Operation *op) { return mhlo::isInBodyOfLinalgOps(op); });
populateMHLOToLinalgOnTensorsConversionPatterns(context, *typeConverter,
patterns);
populateMHLOComplexToRealPatterns(context, *typeConverter, patterns);
diff --git a/compiler/src/iree/compiler/Modules/HAL/Inline/IR/HALInlineBase.td b/compiler/src/iree/compiler/Modules/HAL/Inline/IR/HALInlineBase.td
index c8bb807..81cba90 100644
--- a/compiler/src/iree/compiler/Modules/HAL/Inline/IR/HALInlineBase.td
+++ b/compiler/src/iree/compiler/Modules/HAL/Inline/IR/HALInlineBase.td
@@ -16,7 +16,6 @@
def HALInline_Dialect : Dialect {
let name = "hal_inline";
let cppNamespace = "::mlir::iree_compiler::IREE::HAL::Inline";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
IREE inline HAL interop runtime module dialect.
diff --git a/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderBase.td b/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderBase.td
index 13a4f93..6b7bc3a 100644
--- a/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderBase.td
+++ b/compiler/src/iree/compiler/Modules/HAL/Loader/IR/HALLoaderBase.td
@@ -16,7 +16,6 @@
def HALLoader_Dialect : Dialect {
let name = "hal_loader";
let cppNamespace = "::mlir::iree_compiler::IREE::HAL::Loader";
- let emitAccessorPrefix = kEmitAccessorPrefix_Prefixed;
let summary = [{
IREE HAL inline executable loader runtime module dialect.
diff --git a/integrations/tensorflow/WORKSPACE b/integrations/tensorflow/WORKSPACE
index e1b8fc6..ec469ab 100644
--- a/integrations/tensorflow/WORKSPACE
+++ b/integrations/tensorflow/WORKSPACE
@@ -7,7 +7,7 @@
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
-TENSORFLOW_COMMIT = "a4ed969207533e0e82cdda414d1eb78cb1072f6d"
+TENSORFLOW_COMMIT = "139262352e646b622ea7275815097fc162f1f8b9"
git_repository(
name = "org_tensorflow",
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Transforms.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Transforms.cpp
index 725d2ad..619345a 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Transforms.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Transforms.cpp
@@ -9,7 +9,6 @@
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h"
#include "iree-dialects/Dialect/LinalgExt/Passes/PassDetail.h"
#include "iree-dialects/Dialect/LinalgExt/Passes/Passes.h"
-#include "iree-dialects/Dialect/LinalgExt/Passes/Transforms.h"
#include "iree-dialects/Dialect/LinalgExt/Utils/Utils.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/LoopUtils.h"
@@ -21,7 +20,6 @@
#include "mlir/Dialect/Tensor/Utils/Utils.h"
#include "mlir/Dialect/Utils/IndexingUtils.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
-#include "mlir/Dialect/Vector/Transforms/VectorTransforms.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Pass/PassManager.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
@@ -45,7 +43,7 @@
const Optional<linalg::LinalgLoopDistributionOptions> &tileDistribution) {
assert(tileSizes.size() == tileInterchange.size() &&
"expect the number of tile sizes and interchange dims to match");
- assert(linalg::isPermutation(tileInterchange) &&
+ assert(isPermutationVector(tileInterchange) &&
"expect tile interchange is a permutation");
// Create an empty tile loop nest.
diff --git a/third_party/llvm-project b/third_party/llvm-project
index ca23b7c..279d294 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit ca23b7ca476fb66771d1c6d02c6837938fde6c7e
+Subproject commit 279d294d26c39e86dd7baabf5cd3385676d9a7a4
diff --git a/third_party/mlir-hlo b/third_party/mlir-hlo
index 9e3d164..2a102df 160000
--- a/third_party/mlir-hlo
+++ b/third_party/mlir-hlo
@@ -1 +1 @@
-Subproject commit 9e3d164c0e7f4bd4eee80ce95cef0941755d5a8e
+Subproject commit 2a102dfc718c48e52c79de37557f29b3f76d0e9a