Merge pull request #7723 from rsuderman:main-to-google
PiperOrigin-RevId: 411660910
diff --git a/SUBMODULE_VERSIONS.txt b/SUBMODULE_VERSIONS.txt
index 018ac78..7896a76 100644
--- a/SUBMODULE_VERSIONS.txt
+++ b/SUBMODULE_VERSIONS.txt
@@ -4,14 +4,14 @@
aa533abfd4232b01f9e57041d70114d5a77e6de0 third_party/googletest
88b845dee001723c4a0db1fe5477de735b6d3bb0 third_party/liburing
acd6f6f014c25e46363e718381e0b35205df2d83 third_party/libyaml
-274f12a44c606ecd20152f3e63c4f186793d9a8c third_party/llvm-project
-d1aa0659cedd784e91adc99fff435138a28ca1f7 third_party/mlir-hlo
+4348cd42c385e71b63e5da7e492172cff6a79d7b third_party/llvm-project
+d059fb99f7be3cf412ff9179fffa548829aa7731 third_party/mlir-hlo
3f701faace7addc75d16dea8a6cd769fa5b3f260 third_party/musl
4c7697dbe973ed01ae6fbec37d186ebd05982e1f third_party/pybind11
2e1b5fb39ebc2ef4cb77005f8267e4f3a6241ba1 third_party/spirv_cross
f5417a4b6633c3217c9a1bc2f0c70b1454975ba7 third_party/spirv_headers
b42009b3b9d4ca35bc703f5310eedc74f584be58 third_party/stblib
-548efc0654f4e10ca5ecc541a545b49e769830d4 third_party/tensorflow
+276d16f16c7db0906ca20e7df96ecda5999e1074 third_party/tensorflow
058e89011fceca912d43638ebb6b85992147fcfe third_party/tracy
9d10a96f2d57c3c37e167f2e73c9a31ac2e51fa5 third_party/vulkan_headers
8d4a9e9174a9c6ad6a3a3ae981b915ef13fc12c4 third_party/vulkan_memory_allocator
diff --git a/integrations/tensorflow/iree_tf_compiler/MHLO/FlattenTuplesInCFG.cpp b/integrations/tensorflow/iree_tf_compiler/MHLO/FlattenTuplesInCFG.cpp
index 840f198..0fcf381 100644
--- a/integrations/tensorflow/iree_tf_compiler/MHLO/FlattenTuplesInCFG.cpp
+++ b/integrations/tensorflow/iree_tf_compiler/MHLO/FlattenTuplesInCFG.cpp
@@ -53,11 +53,11 @@
for (const auto &oldAttr : oldOp->getAttrs()) {
// Don't copy segment attributes as these correspond to the number operands,
// which may be different.
- if (oldAttr.first == "operand_segment_sizes" ||
- oldAttr.first == "result_segment_sizes")
+ if (oldAttr.getName() == "operand_segment_sizes" ||
+ oldAttr.getName() == "result_segment_sizes")
continue;
- newOp->setAttr(oldAttr.first, oldAttr.second);
+ newOp->setAttr(oldAttr.getName(), oldAttr.getValue());
}
}
@@ -237,8 +237,8 @@
BlockAndValueMapping mapping;
for (auto attr : oldFunction->getAttrs()) {
- if (attr.first != oldFunction.getTypeAttrName()) {
- newFunction->setAttr(attr.first, attr.second);
+ if (attr.getName() != oldFunction.getTypeAttrName()) {
+ newFunction->setAttr(attr.getName(), attr.getValue());
}
}
diff --git a/integrations/tensorflow/iree_tf_compiler/TF/ConvertToMHLO.cpp b/integrations/tensorflow/iree_tf_compiler/TF/ConvertToMHLO.cpp
index daedf83..ba3c421 100644
--- a/integrations/tensorflow/iree_tf_compiler/TF/ConvertToMHLO.cpp
+++ b/integrations/tensorflow/iree_tf_compiler/TF/ConvertToMHLO.cpp
@@ -62,8 +62,8 @@
mlir::TF::PopulateTFLoweringBeforeHLOPatterns(context, &lowerTfPatterns);
OwningRewritePatternList canonicalizePatterns(&getContext());
- for (auto *op : context->getRegisteredOperations()) {
- op->getCanonicalizationPatterns(canonicalizePatterns, context);
+ for (auto op : context->getRegisteredOperations()) {
+ op.getCanonicalizationPatterns(canonicalizePatterns, context);
}
OwningRewritePatternList patterns(&getContext());
diff --git a/integrations/tensorflow/iree_tf_compiler/TF/StripMetadata.cpp b/integrations/tensorflow/iree_tf_compiler/TF/StripMetadata.cpp
index b44db44..f1fc99c 100644
--- a/integrations/tensorflow/iree_tf_compiler/TF/StripMetadata.cpp
+++ b/integrations/tensorflow/iree_tf_compiler/TF/StripMetadata.cpp
@@ -17,11 +17,11 @@
namespace TF {
static bool isTFAttr(NamedAttribute &namedAttr) {
- auto name = namedAttr.first.strref();
+ auto name = namedAttr.getName().strref();
if (name.startswith("tf.") || name.startswith("tf_")) {
return true;
}
- StringRef attrNamespace = namedAttr.second.getDialect().getNamespace();
+ StringRef attrNamespace = namedAttr.getValue().getDialect().getNamespace();
return attrNamespace == mlir::TF::TensorFlowDialect::getDialectNamespace() ||
attrNamespace == mlir::tf_executor::TensorFlowExecutorDialect::
getDialectNamespace() ||
@@ -48,7 +48,7 @@
moduleOp->getAttrs(),
[](NamedAttribute namedAttr) { return isTFAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- moduleOp->removeAttr(namedAttr.first);
+ moduleOp->removeAttr(namedAttr.getName());
}
}
};
@@ -70,7 +70,7 @@
funcOp->getAttrs(),
[](NamedAttribute namedAttr) { return isTFAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp->removeAttr(namedAttr.first);
+ funcOp->removeAttr(namedAttr.getName());
}
for (int i = 0; i < funcOp.getNumArguments(); ++i) {
@@ -78,7 +78,7 @@
funcOp.getArgAttrs(i),
[](NamedAttribute namedAttr) { return isTFAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp.removeArgAttr(i, namedAttr.first);
+ funcOp.removeArgAttr(i, namedAttr.getName());
}
}
@@ -87,7 +87,7 @@
funcOp.getResultAttrs(i),
[](NamedAttribute namedAttr) { return isTFAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp.removeResultAttr(i, namedAttr.first);
+ funcOp.removeResultAttr(i, namedAttr.getName());
}
}
}
diff --git a/integrations/tensorflow/iree_tf_compiler/TFL/StripMetadata.cpp b/integrations/tensorflow/iree_tf_compiler/TFL/StripMetadata.cpp
index 0ba99e6..af1dbe6 100644
--- a/integrations/tensorflow/iree_tf_compiler/TFL/StripMetadata.cpp
+++ b/integrations/tensorflow/iree_tf_compiler/TFL/StripMetadata.cpp
@@ -16,12 +16,12 @@
static bool isTFLAttr(NamedAttribute &namedAttr) {
// NOTE: tflite mixes tf and tfl, for some reason.
- auto name = namedAttr.first.strref();
+ auto name = namedAttr.getName().strref();
if (name.startswith("tf.") || name.startswith("tf_") ||
name.startswith("tfl.") || name.startswith("tfl_")) {
return true;
}
- StringRef attrNamespace = namedAttr.second.getDialect().getNamespace();
+ StringRef attrNamespace = namedAttr.getValue().getDialect().getNamespace();
return attrNamespace == "tf" || attrNamespace == "tfl";
}
@@ -35,7 +35,7 @@
moduleOp->getAttrs(),
[](NamedAttribute namedAttr) { return isTFLAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- moduleOp->removeAttr(namedAttr.first);
+ moduleOp->removeAttr(namedAttr.getName());
}
}
};
@@ -50,7 +50,7 @@
funcOp->getAttrs(),
[](NamedAttribute namedAttr) { return isTFLAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp->removeAttr(namedAttr.first);
+ funcOp->removeAttr(namedAttr.getName());
}
for (int i = 0; i < funcOp.getNumArguments(); ++i) {
@@ -58,7 +58,7 @@
funcOp.getArgAttrs(i),
[](NamedAttribute namedAttr) { return isTFLAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp.removeArgAttr(i, namedAttr.first);
+ funcOp.removeArgAttr(i, namedAttr.getName());
}
}
@@ -67,7 +67,7 @@
funcOp.getResultAttrs(i),
[](NamedAttribute namedAttr) { return isTFLAttr(namedAttr); }));
for (auto namedAttr : stripAttrs) {
- funcOp.removeResultAttr(i, namedAttr.first);
+ funcOp.removeResultAttr(i, namedAttr.getName());
}
}
}
diff --git a/iree/builtins/musl/bin/build.sh b/iree/builtins/musl/bin/build.sh
old mode 100644
new mode 100755
diff --git a/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp b/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp
index 03ff4d7..4e102d2 100644
--- a/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp
+++ b/iree/compiler/Bindings/Native/Transforms/WrapEntryPoints.cpp
@@ -169,8 +169,8 @@
SmallVector<NamedAttribute, 4> attrs;
auto abiAttr = entryFuncOp->getAttr("iree.abi");
if (abiAttr) {
- attrs.push_back(std::make_pair(
- Identifier::get("iree.abi", entryFuncOp.getContext()), abiAttr));
+ attrs.emplace_back(StringAttr::get(entryFuncOp.getContext(), "iree.abi"),
+ abiAttr);
}
if (!attrs.empty()) {
auto reflectionAttr = DictionaryAttr::get(&getContext(), attrs);
diff --git a/iree/compiler/Codegen/Common/DemoteF32ToF16.cpp b/iree/compiler/Codegen/Common/DemoteF32ToF16.cpp
index 2025fbd..c96e44d 100644
--- a/iree/compiler/Codegen/Common/DemoteF32ToF16.cpp
+++ b/iree/compiler/Codegen/Common/DemoteF32ToF16.cpp
@@ -97,7 +97,7 @@
ConversionPatternRewriter &rewriter,
SmallVectorImpl<NamedAttribute> &newAttrs) {
for (auto attr : attrs) {
- if (auto fpAttr = attr.second.dyn_cast<DenseFPElementsAttr>()) {
+ if (auto fpAttr = attr.getValue().dyn_cast<DenseFPElementsAttr>()) {
std::vector<llvm::APFloat> args;
if (!fpAttr.getType().getElementType().isF32()) continue;
for (llvm::APFloat f : fpAttr.getValues<APFloat>()) {
@@ -107,16 +107,15 @@
}
auto tensorType = RankedTensorType::get(fpAttr.getType().getShape(),
rewriter.getF16Type());
- newAttrs.push_back(std::make_pair(
- attr.first, DenseElementsAttr::get(tensorType, args)));
- } else if (auto typeAttr = attr.second.dyn_cast<TypeAttr>()) {
+ newAttrs.emplace_back(attr.getName(),
+ DenseElementsAttr::get(tensorType, args));
+ } else if (auto typeAttr = attr.getValue().dyn_cast<TypeAttr>()) {
if (isIllegalType(typeAttr.getValue())) {
if (auto tensorType =
typeAttr.getValue().dyn_cast<RankedTensorType>()) {
Type newType = RankedTensorType::get(tensorType.getShape(),
rewriter.getF16Type());
- newAttrs.push_back(
- std::make_pair(attr.first, TypeAttr::get(newType)));
+ newAttrs.emplace_back(attr.getName(), TypeAttr::get(newType));
}
}
} else {
diff --git a/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp b/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
index d89fd17..62eeb4e 100644
--- a/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
+++ b/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
@@ -434,8 +434,8 @@
// MLIR implicitly.
SmallVector<NamedAttribute, 4> funcAttrs;
for (auto attr : stdFuncOp->getAttrs()) {
- if (attr.first == SymbolTable::getSymbolAttrName() ||
- attr.first == mlir::function_like_impl::getTypeAttrName()) {
+ if (attr.getName() == SymbolTable::getSymbolAttrName() ||
+ attr.getName() == mlir::function_like_impl::getTypeAttrName()) {
continue;
}
funcAttrs.push_back(attr);
diff --git a/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp b/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp
index 116680f..e7c8e95 100644
--- a/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp
+++ b/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp
@@ -192,8 +192,8 @@
// Construct newFunc with all attributes except return type & symbol name.
SmallVector<NamedAttribute, 4> funcAttrs;
for (auto attr : funcOp->getAttrs()) {
- if (attr.first == SymbolTable::getSymbolAttrName() ||
- attr.first == mlir::function_like_impl::getTypeAttrName()) {
+ if (attr.getName() == SymbolTable::getSymbolAttrName() ||
+ attr.getName() == mlir::function_like_impl::getTypeAttrName()) {
continue;
}
funcAttrs.push_back(attr);
diff --git a/iree/compiler/Codegen/SPIRV/KernelConfig.cpp b/iree/compiler/Codegen/SPIRV/KernelConfig.cpp
index dff4182..339e4d5 100644
--- a/iree/compiler/Codegen/SPIRV/KernelConfig.cpp
+++ b/iree/compiler/Codegen/SPIRV/KernelConfig.cpp
@@ -308,6 +308,12 @@
// No tiled loops means we cannot tile (and distribute) at all. Use just one
// single thread to run everything.
auto pipeline = IREE::Codegen::DispatchLoweringPassPipeline::SPIRVVectorize;
+ if (auto linalgOp = dyn_cast<linalg::GenericOp>(op)) {
+ auto untiledResultShape = getUntiledResultShape(linalgOp, 0);
+ if (untiledResultShape.empty()) {
+ pipeline = IREE::Codegen::DispatchLoweringPassPipeline::SPIRVDistribute;
+ }
+ }
std::array<int64_t, 3> workgroupSize = {1, 1, 1};
return setOpConfigAndEntryPointFnTranslation(funcOp, op, {}, {}, pipeline,
workgroupSize);
@@ -388,6 +394,7 @@
};
// Whether we can try to use the vectorization pipeline.
+ auto untiledResultShape = getUntiledResultShape(linalgOp, 0);
bool vectorizable =
!linalgOp.hasIndexSemantics() &&
// Skip vectorization for non-minor identity inputs as it generates
@@ -400,7 +407,8 @@
// TODO: Lowering of integers other than i32 may require emulation.
// This is currently not supported for vector operation.
llvm::all_of(linalgOp->getOperands(), has32BitElementType) &&
- llvm::none_of(getUntiledResultShape(linalgOp, 0), ShapedType::isDynamic);
+ !untiledResultShape.empty() &&
+ llvm::none_of(untiledResultShape, ShapedType::isDynamic);
LLVM_DEBUG({
llvm::dbgs() << "Linalg op " << linalgOp << "\n partitioned loops: [";
diff --git a/iree/compiler/Codegen/Transforms/Transforms.cpp b/iree/compiler/Codegen/Transforms/Transforms.cpp
index b4b6056..7d65ba4 100644
--- a/iree/compiler/Codegen/Transforms/Transforms.cpp
+++ b/iree/compiler/Codegen/Transforms/Transforms.cpp
@@ -48,12 +48,12 @@
entryPointOp.workgroup_local_memoryAttr(), 1);
// Copy over all attributes
for (auto attr : entryPointOp->getAttrs()) {
- if (attr.first != entryPointOp.sym_nameAttrName() &&
- attr.first != entryPointOp.ordinalAttrName() &&
- attr.first != entryPointOp.interfaceAttrName() &&
- attr.first != entryPointOp.workgroup_sizeAttrName() &&
- attr.first != entryPointOp.workgroup_local_memoryAttrName()) {
- clonedOp->setAttr(attr.first, attr.second);
+ if (attr.getName() != entryPointOp.sym_nameAttrName() &&
+ attr.getName() != entryPointOp.ordinalAttrName() &&
+ attr.getName() != entryPointOp.interfaceAttrName() &&
+ attr.getName() != entryPointOp.workgroup_sizeAttrName() &&
+ attr.getName() != entryPointOp.workgroup_local_memoryAttrName()) {
+ clonedOp->setAttr(attr.getName(), attr.getValue());
}
}
Region *region = clonedOp.getBody();
diff --git a/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp b/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp
index 8989fbc..359919c 100644
--- a/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp
+++ b/iree/compiler/Dialect/Flow/Transforms/DeduplicateExecutables.cpp
@@ -132,8 +132,8 @@
if (!compare_ranges(
lhs.getAttrs(), rhs.getAttrs(),
[&](const NamedAttribute &lhs, const NamedAttribute &rhs) {
- if (lhs.first == "function_ref" ||
- lhs.first == SymbolTable::getSymbolAttrName()) {
+ if (lhs.getName() == "function_ref" ||
+ lhs.getName() == SymbolTable::getSymbolAttrName()) {
return true;
}
return lhs == rhs;
diff --git a/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp b/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp
index 55f6cdf..6c0e24e 100644
--- a/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp
+++ b/iree/compiler/Dialect/HAL/Target/CUDA/CUDATarget.cpp
@@ -165,7 +165,7 @@
Builder b(context);
SmallVector<NamedAttribute> configItems;
- configItems.emplace_back(b.getIdentifier("executable_targets"),
+ configItems.emplace_back(b.getStringAttr("executable_targets"),
getExecutableTargets(context));
auto configAttr = b.getDictionaryAttr(configItems);
@@ -323,8 +323,7 @@
SmallVector<NamedAttribute> configItems;
// Add some configurations to the `hal.executable.target` attribute.
auto addConfig = [&](StringRef name, Attribute value) {
- configItems.emplace_back(
- std::make_pair(Identifier::get(name, context), value));
+ configItems.emplace_back(StringAttr::get(context, name), value);
};
// Set target arch
addConfig("target_arch", StringAttr::get(context, clTargetChip));
diff --git a/iree/compiler/Dialect/HAL/Target/LLVM/LLVMAOTTarget.cpp b/iree/compiler/Dialect/HAL/Target/LLVM/LLVMAOTTarget.cpp
index 13d0a53..ecc8906 100644
--- a/iree/compiler/Dialect/HAL/Target/LLVM/LLVMAOTTarget.cpp
+++ b/iree/compiler/Dialect/HAL/Target/LLVM/LLVMAOTTarget.cpp
@@ -618,8 +618,7 @@
// Add some configurations to the `hal.executable.target` attribute.
SmallVector<NamedAttribute> config;
auto addConfig = [&](StringRef name, Attribute value) {
- config.emplace_back(
- std::make_pair(Identifier::get(name, context), value));
+ config.emplace_back(StringAttr::get(context, name), value);
};
// Set target triple.
diff --git a/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp b/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp
index b75e7bc..42747ac 100644
--- a/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp
+++ b/iree/compiler/Dialect/Stream/Transforms/ScheduleExecution.cpp
@@ -323,8 +323,8 @@
for (auto *dialect : context->getLoadedDialects()) {
dialect->getCanonicalizationPatterns(patterns);
}
- for (auto *op : context->getRegisteredOperations()) {
- op->getCanonicalizationPatterns(patterns, context);
+ for (auto op : context->getRegisteredOperations()) {
+ op.getCanonicalizationPatterns(patterns, context);
}
FrozenRewritePatternSet frozenPatterns(std::move(patterns));
if (failed(applyPatternsAndFoldGreedily(getOperation(), frozenPatterns))) {
diff --git a/iree/compiler/Dialect/Util/Analysis/Position.h b/iree/compiler/Dialect/Util/Analysis/Position.h
index 38e4f1a..b86ab5c 100644
--- a/iree/compiler/Dialect/Util/Analysis/Position.h
+++ b/iree/compiler/Dialect/Util/Analysis/Position.h
@@ -82,7 +82,7 @@
void print(llvm::raw_ostream &os, AsmState &asmState) const;
private:
- template <typename T>
+ template <typename T, typename Enable>
friend struct llvm::DenseMapInfo;
friend llvm::raw_ostream &operator<<(llvm::raw_ostream &os, Position pos);
diff --git a/iree/compiler/Dialect/Util/IR/BUILD b/iree/compiler/Dialect/Util/IR/BUILD
index c602293..e68c1c9 100644
--- a/iree/compiler/Dialect/Util/IR/BUILD
+++ b/iree/compiler/Dialect/Util/IR/BUILD
@@ -30,6 +30,7 @@
deps = [
"@llvm-project//mlir:CallInterfacesTdFiles",
"@llvm-project//mlir:ControlFlowInterfacesTdFiles",
+ "@llvm-project//mlir:InferTypeOpInterfaceTdFiles",
"@llvm-project//mlir:OpBaseTdFiles",
"@llvm-project//mlir:SideEffectTdFiles",
"@llvm-project//mlir:SubElementInterfacesTdFiles",
diff --git a/iree/compiler/Dialect/Util/IR/UtilBase.td b/iree/compiler/Dialect/Util/IR/UtilBase.td
index 42a1f46..ca0ba39 100644
--- a/iree/compiler/Dialect/Util/IR/UtilBase.td
+++ b/iree/compiler/Dialect/Util/IR/UtilBase.td
@@ -147,7 +147,6 @@
let description = [{
Pointer to a typed value.
}];
- let builderCall = "$_builder.getType<IREE::Util::PtrType>()";
}
class Util_PtrOf<Type type> :
diff --git a/iree/compiler/Dialect/Util/IR/UtilOps.h b/iree/compiler/Dialect/Util/IR/UtilOps.h
index 02cc7ad..ce84b3f 100644
--- a/iree/compiler/Dialect/Util/IR/UtilOps.h
+++ b/iree/compiler/Dialect/Util/IR/UtilOps.h
@@ -15,6 +15,7 @@
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
+#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Transforms/DialectConversion.h"
diff --git a/iree/compiler/Dialect/Util/IR/UtilOps.td b/iree/compiler/Dialect/Util/IR/UtilOps.td
index fb3b917..ef8a064 100644
--- a/iree/compiler/Dialect/Util/IR/UtilOps.td
+++ b/iree/compiler/Dialect/Util/IR/UtilOps.td
@@ -12,6 +12,7 @@
include "mlir/IR/SymbolInterfaces.td"
include "mlir/Interfaces/CallInterfaces.td"
include "mlir/Interfaces/ControlFlowInterfaces.td"
+include "mlir/Interfaces/InferTypeOpInterface.td"
include "mlir/Interfaces/SideEffectInterfaces.td"
//===----------------------------------------------------------------------===//
diff --git a/iree/compiler/Dialect/Util/Transforms/ApplyPatterns.cpp b/iree/compiler/Dialect/Util/Transforms/ApplyPatterns.cpp
index 7dfb296..69d41cb 100644
--- a/iree/compiler/Dialect/Util/Transforms/ApplyPatterns.cpp
+++ b/iree/compiler/Dialect/Util/Transforms/ApplyPatterns.cpp
@@ -41,8 +41,8 @@
for (auto *dialect : context->getLoadedDialects()) {
dialect->getCanonicalizationPatterns(patterns);
}
- for (auto *op : context->getRegisteredOperations()) {
- op->getCanonicalizationPatterns(patterns, context);
+ for (auto op : context->getRegisteredOperations()) {
+ op.getCanonicalizationPatterns(patterns, context);
}
IREE::Util::populateCommonPatterns(context, patterns);
diff --git a/iree/compiler/Dialect/Util/Transforms/FoldGlobals.cpp b/iree/compiler/Dialect/Util/Transforms/FoldGlobals.cpp
index 10b012c..6f9c37d 100644
--- a/iree/compiler/Dialect/Util/Transforms/FoldGlobals.cpp
+++ b/iree/compiler/Dialect/Util/Transforms/FoldGlobals.cpp
@@ -383,8 +383,8 @@
for (auto *dialect : context->getLoadedDialects()) {
dialect->getCanonicalizationPatterns(patterns);
}
- for (auto *op : context->getRegisteredOperations()) {
- op->getCanonicalizationPatterns(patterns, context);
+ for (auto op : context->getRegisteredOperations()) {
+ op.getCanonicalizationPatterns(patterns, context);
}
FrozenRewritePatternSet frozenPatterns(std::move(patterns));
diff --git a/iree/compiler/Dialect/VM/Analysis/ValueLiveness.cpp b/iree/compiler/Dialect/VM/Analysis/ValueLiveness.cpp
index 9ffe386..06d60ad 100644
--- a/iree/compiler/Dialect/VM/Analysis/ValueLiveness.cpp
+++ b/iree/compiler/Dialect/VM/Analysis/ValueLiveness.cpp
@@ -120,7 +120,7 @@
// Markup all ops with their attributes.
for (auto &opAttrs : livenessAttrs) {
for (auto nameAttr : opAttrs.getSecond().getAttrs()) {
- opAttrs.getFirst()->setAttr(nameAttr.first, nameAttr.second);
+ opAttrs.getFirst()->setAttr(nameAttr.getName(), nameAttr.getValue());
}
}
diff --git a/iree/compiler/Dialect/VM/IR/VMOps.cpp b/iree/compiler/Dialect/VM/IR/VMOps.cpp
index 35213d0..e4008de 100644
--- a/iree/compiler/Dialect/VM/IR/VMOps.cpp
+++ b/iree/compiler/Dialect/VM/IR/VMOps.cpp
@@ -102,8 +102,8 @@
SmallVector<NamedAttribute> attrs(existingAttr.begin(), existingAttr.end());
bool didFind = false;
for (size_t i = 0; i < attrs.size(); ++i) {
- if (attrs[i].first == name) {
- attrs[i].second = value;
+ if (attrs[i].getName() == name) {
+ attrs[i].setValue(value);
didFind = true;
break;
}
diff --git a/iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.cpp b/iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.cpp
index 0f052e1..a4ee999 100644
--- a/iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.cpp
+++ b/iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.cpp
@@ -386,20 +386,18 @@
// Add all VM canonicalization patterns and mark pseudo-ops illegal.
auto *context = moduleOp.getContext();
- for (auto *op : context->getRegisteredOperations()) {
+ for (auto op : context->getRegisteredOperations()) {
// Non-serializable ops must be removed prior to serialization.
- if (op->hasTrait<OpTrait::IREE::VM::PseudoOp>()) {
- op->getCanonicalizationPatterns(patterns, context);
- target.setOpAction(OperationName(op->name, context),
- ConversionTarget::LegalizationAction::Illegal);
+ if (op.hasTrait<OpTrait::IREE::VM::PseudoOp>()) {
+ op.getCanonicalizationPatterns(patterns, context);
+ target.setOpAction(op, ConversionTarget::LegalizationAction::Illegal);
}
// Debug ops must not be present when stripping.
// TODO(benvanik): add RemoveDisabledDebugOp pattern.
- if (op->hasTrait<OpTrait::IREE::VM::DebugOnly>() &&
+ if (op.hasTrait<OpTrait::IREE::VM::DebugOnly>() &&
targetOptions.stripDebugOps) {
- target.setOpAction(OperationName(op->name, context),
- ConversionTarget::LegalizationAction::Illegal);
+ target.setOpAction(op, ConversionTarget::LegalizationAction::Illegal);
}
}
@@ -502,8 +500,8 @@
funcOp->getAttrOfType<DictionaryAttr>("iree.reflection")) {
SmallVector<iree_vm_ReflectionAttrDef_ref_t, 4> reflectionAttrRefs;
for (auto reflectionAttr : reflectionAttrs) {
- auto key = reflectionAttr.first.strref();
- auto value = reflectionAttr.second.dyn_cast<StringAttr>();
+ auto key = reflectionAttr.getName().strref();
+ auto value = reflectionAttr.getValue().dyn_cast<StringAttr>();
if (!value || key.empty()) continue;
// NOTE: if we actually want to keep these we should dedupe them (as the
// keys and likely several of the values are shared across all functions).
diff --git a/iree/compiler/Dialect/VM/Target/C/CModuleTarget.cpp b/iree/compiler/Dialect/VM/Target/C/CModuleTarget.cpp
index 90c8bc8..0effb7a 100644
--- a/iree/compiler/Dialect/VM/Target/C/CModuleTarget.cpp
+++ b/iree/compiler/Dialect/VM/Target/C/CModuleTarget.cpp
@@ -264,20 +264,18 @@
// Add all VM canonicalization patterns and mark pseudo-ops illegal.
auto *context = moduleOp.getContext();
- for (auto *op : context->getRegisteredOperations()) {
+ for (auto op : context->getRegisteredOperations()) {
// Non-serializable ops must be removed prior to serialization.
- if (op->hasTrait<OpTrait::IREE::VM::PseudoOp>()) {
- op->getCanonicalizationPatterns(patterns, context);
- target.setOpAction(OperationName(op->name, context),
- ConversionTarget::LegalizationAction::Illegal);
+ if (op.hasTrait<OpTrait::IREE::VM::PseudoOp>()) {
+ op.getCanonicalizationPatterns(patterns, context);
+ target.setOpAction(op, ConversionTarget::LegalizationAction::Illegal);
}
// Debug ops must not be present when stripping.
// TODO(benvanik): add RemoveDisabledDebugOp pattern.
- if (op->hasTrait<OpTrait::IREE::VM::DebugOnly>() &&
+ if (op.hasTrait<OpTrait::IREE::VM::DebugOnly>() &&
targetOptions.stripDebugOps) {
- target.setOpAction(OperationName(op->name, context),
- ConversionTarget::LegalizationAction::Illegal);
+ target.setOpAction(op, ConversionTarget::LegalizationAction::Illegal);
}
}
diff --git a/iree/compiler/InputConversion/MHLO/LegalizeInputTypes.cpp b/iree/compiler/InputConversion/MHLO/LegalizeInputTypes.cpp
index 5cf8e42..5d99e15 100644
--- a/iree/compiler/InputConversion/MHLO/LegalizeInputTypes.cpp
+++ b/iree/compiler/InputConversion/MHLO/LegalizeInputTypes.cpp
@@ -99,12 +99,12 @@
llvm::isa<IREE::Util::GlobalOp>(oldOp)) {
for (auto attr : oldOp->getAttrs()) {
auto newAttr =
- convertAttribute(oldOp->getLoc(), attr.second, typeConverter);
+ convertAttribute(oldOp->getLoc(), attr.getValue(), typeConverter);
if (!newAttr) {
return oldOp->emitOpError()
- << "failed to convert attribute " << attr.first;
+ << "failed to convert attribute " << attr.getName();
}
- state.addAttribute(attr.first, newAttr);
+ state.addAttribute(attr.getName(), newAttr);
}
} else {
state.attributes = llvm::to_vector<4>(oldOp->getAttrs());
diff --git a/llvm-external-projects/iree-dialects/BUILD b/llvm-external-projects/iree-dialects/BUILD
index d5bd80f..38059f7 100644
--- a/llvm-external-projects/iree-dialects/BUILD
+++ b/llvm-external-projects/iree-dialects/BUILD
@@ -71,6 +71,7 @@
],
includes = ["include"],
deps = [
+ "@llvm-project//mlir:InferTypeOpInterfaceTdFiles",
"@llvm-project//mlir:OpBaseTdFiles",
"@llvm-project//mlir:SideEffectTdFiles",
],
@@ -126,6 +127,7 @@
"@llvm-project//llvm:Support",
"@llvm-project//mlir:ArithmeticDialect",
"@llvm-project//mlir:IR",
+ "@llvm-project//mlir:InferTypeOpInterface",
"@llvm-project//mlir:Support",
],
)
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.h
index 6d7cc49..abf07a3 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.h
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.h
@@ -13,6 +13,7 @@
#include "mlir/IR/Dialect.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/SymbolTable.h"
+#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#define GET_OP_CLASSES
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.td b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.td
index ec2f019..f9706dd 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.td
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/Input/InputOps.td
@@ -8,6 +8,7 @@
#define IREE_DIALECTS_DIALECT_INPUT_OPS_TD
include "iree-dialects/Dialect/Input/InputDialect.td"
+include "mlir/Interfaces/InferTypeOpInterface.td"
include "mlir/Interfaces/SideEffectInterfaces.td"
include "mlir/IR/SymbolInterfaces.td"
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/PyDM/IR/PyDMOps.td b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/PyDM/IR/PyDMOps.td
index 5d5e821..ad82868 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/PyDM/IR/PyDMOps.td
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/PyDM/IR/PyDMOps.td
@@ -221,7 +221,7 @@
$exc_result `:` type($exc_result) attr-dict
}];
- let hasFolder = 1;
+ let hasCanonicalizeMethod = 1;
}
def IREEPyDM_CallOp : IREEPyDM_Op<"call", [
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
index 7ef7bfc..3b3e961 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/PyDM/IR/PyDMOps.cpp
@@ -697,12 +697,10 @@
// RaiseOnFailureOp
//===----------------------------------------------------------------------===//
-LogicalResult PYDM::RaiseOnFailureOp::fold(
- ArrayRef<Attribute> operands, SmallVectorImpl<OpFoldResult> &results) {
- assert(operands.size() == 1 && "expected one fold operand");
- // Unit exception result is success. Just elide.
- if (operands[0] && operands[0].isa<UnitAttr>()) {
- erase();
+LogicalResult PYDM::RaiseOnFailureOp::canonicalize(RaiseOnFailureOp op,
+ PatternRewriter &rewriter) {
+ if (op.exc_result().getDefiningOp<SuccessOp>()) {
+ op.getOperation()->erase();
return success();
}
return failure();
diff --git a/llvm-external-projects/iree-dialects/test/iree_linalgext/convert_to_loops.mlir b/llvm-external-projects/iree-dialects/test/iree_linalgext/convert_to_loops.mlir
index a50a1b2..f96850f 100644
--- a/llvm-external-projects/iree-dialects/test/iree_linalgext/convert_to_loops.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_linalgext/convert_to_loops.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file -iree-linalg-ext-to-loops %s | FileCheck --enable-var-scope --dump-input=fail %s
+// RUN: iree-dialects-opt -split-input-file -iree-linalg-ext-to-loops %s | FileCheck %s
func @sort_1d(%arg0: memref<128xi32>) {
iree_linalg_ext.sort dimension(0)
diff --git a/llvm-external-projects/iree-dialects/test/iree_linalgext/tiling.mlir b/llvm-external-projects/iree-dialects/test/iree_linalgext/tiling.mlir
index c0352ef..219ee59 100644
--- a/llvm-external-projects/iree-dialects/test/iree_linalgext/tiling.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_linalgext/tiling.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -iree-linalg-ext-tile -split-input-file %s | FileCheck --enable-var-scope --dump-input=fail %s
+// RUN: iree-dialects-opt -iree-linalg-ext-tile -split-input-file %s | FileCheck %s
func @scatter_tiling(
%original: tensor<?x?xf32>, %indices: tensor<?x1xi32>,
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
index a0c134d..b6e2a44 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @fold_none
iree_pydm.func @fold_none(%arg0 : !iree_pydm.none) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/boxing.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/boxing.mlir
index f6dcccb..37bd985 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/boxing.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/boxing.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @elide_boxing_noop
iree_pydm.func @elide_boxing_noop(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/exceptions.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/exceptions.mlir
index 363af77..420ed6a 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/exceptions.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/exceptions.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @elide_raise_on_failure_success
iree_pydm.func @elide_raise_on_failure_success() -> (!iree_pydm.exception_result, !iree_pydm.none) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
index 3f84984..0020ab6 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file --allow-unregistered-dialect -canonicalize %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @dynamic_binary_promote_same_type
iree_pydm.func @dynamic_binary_promote_same_type(%arg0 : !iree_pydm.bool, %arg1 : !iree_pydm.bool) -> (!iree_pydm.exception_result, !iree_pydm.none) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/ops_types_parse.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/ops_types_parse.mlir
index 3c7488b..ee7547b 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/ops_types_parse.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/ops_types_parse.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt %s | iree-dialects-opt | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt %s | iree-dialects-opt | FileCheck --dump-input-filter=all %s
iree_pydm.func @free_var(%arg0 : !iree_pydm.bool) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
%var = alloc_free_var "foo" -> !iree_pydm.free_var_ref
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/local_propagate_types.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/local_propagate_types.mlir
index 517e673..6038c0d 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/local_propagate_types.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/local_propagate_types.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -pydm-local-propagate-types --allow-unregistered-dialect %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -pydm-local-propagate-types --allow-unregistered-dialect %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @sink_static_info_cast_into_refinable
// "neg" implements TypeRefinableOpInterface and thus can have casts sunk
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/variables_to_ssa.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/variables_to_ssa.mlir
index 516038b..c8b38fe 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/variables_to_ssa.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/optimize/variables_to_ssa.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -pydm-variables-to-ssa --allow-unregistered-dialect %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -pydm-variables-to-ssa --allow-unregistered-dialect %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @entry_block_does_not_hoist
// Hoisting must be disabled for the entry block as that would change the
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
index 52a6daa..dcaeeae 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -verify-diagnostics -split-input-file -lower-iree-pydm-to-rtl -link-iree-pydm-rtl='rtl-file=%resources_dir/PyDMRTL/PyDMRTLBase.mlir' %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -verify-diagnostics -split-input-file -lower-iree-pydm-to-rtl -link-iree-pydm-rtl='rtl-file=%resources_dir/PyDMRTL/PyDMRTLBase.mlir' %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: module @multi_with_private
// A multiple module import with additional private symbols included.
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/lower_to_rtl.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/lower_to_rtl.mlir
index 6214782..a6462a9 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/lower_to_rtl.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/lower_to_rtl.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file -lower-iree-pydm-to-rtl %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file -lower-iree-pydm-to-rtl %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @object_as_bool
// Doubles as a check for the general machinery.
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
index 73e8268..5bd0341 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @none_constant
iree_pydm.func @none_constant() -> (!iree_pydm.exception_result, !iree_pydm.none) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/integer_compare.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/integer_compare.mlir
index c0dfc32..f42426d 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/integer_compare.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/integer_compare.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -convert-iree-pydm-to-iree %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @lt
iree_pydm.func @lt(%arg0 : !iree_pydm.integer, %arg1 : !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/numeric.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/numeric.mlir
index f1c395a..7e2b849 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/numeric.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/numeric.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: func @neg_integer(
// CHECK-SAME: %[[VAL_0:.*]]: i32) -> (i32, i32) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/real_compare.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/real_compare.mlir
index fb38be0..bd7a19f 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/real_compare.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/real_compare.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -convert-iree-pydm-to-iree %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @lt
iree_pydm.func @lt(%arg0 : !iree_pydm.real, %arg1 : !iree_pydm.real) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
index 7b0d4b0..b863f80 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --enable-var-scope --dump-input-filter=all %s
+// RUN: iree-dialects-opt -split-input-file -convert-iree-pydm-to-iree %s | FileCheck --dump-input-filter=all %s
// CHECK-LABEL: @bool_to_pred
// NOTE: Also tests cond_br conversion.
diff --git a/third_party/llvm-project b/third_party/llvm-project
index 274f12a..4348cd4 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit 274f12a44c606ecd20152f3e63c4f186793d9a8c
+Subproject commit 4348cd42c385e71b63e5da7e492172cff6a79d7b
diff --git a/third_party/mlir-hlo b/third_party/mlir-hlo
index d1aa065..d059fb9 160000
--- a/third_party/mlir-hlo
+++ b/third_party/mlir-hlo
@@ -1 +1 @@
-Subproject commit d1aa0659cedd784e91adc99fff435138a28ca1f7
+Subproject commit d059fb99f7be3cf412ff9179fffa548829aa7731
diff --git a/third_party/tensorflow b/third_party/tensorflow
index 548efc0..276d16f 160000
--- a/third_party/tensorflow
+++ b/third_party/tensorflow
@@ -1 +1 @@
-Subproject commit 548efc0654f4e10ca5ecc541a545b49e769830d4
+Subproject commit 276d16f16c7db0906ca20e7df96ecda5999e1074