Integrate LLVM to llvm/llvm-project@6cce5bca3b90 (#24912)
* Add prop-dict to IREE operations for strict property assembly formats
introduced by llvm/llvm-project#196269 and enabled for Transform by
llvm/llvm-project#217290.
* Preserve StableHLO's bare enum syntax after llvm/llvm-project#220608
changed EnumAttr's default assembly format to angle brackets.
* Replace deprecated setName() calls with setSymbolName() following
llvm/llvm-project#218921.
* Cherry-pick e45b19d32e7c (llvm/llvm-project#222395) to fix the missing
RemarkStreamer Bazel dependency exposed by llvm/llvm-project#222300.
Assisted by Codex.
---------
Signed-off-by: Juan I. Pisula <pisula@roofline.ai>
diff --git a/compiler/plugins/target/ROCM/test/tuning_spec_mmt_tile_and_fuse.mlir b/compiler/plugins/target/ROCM/test/tuning_spec_mmt_tile_and_fuse.mlir
index ea2e9a9..d11f982 100644
--- a/compiler/plugins/target/ROCM/test/tuning_spec_mmt_tile_and_fuse.mlir
+++ b/compiler/plugins/target/ROCM/test/tuning_spec_mmt_tile_and_fuse.mlir
@@ -24,7 +24,7 @@
transform.named_sequence @main(%variant_op: !transform.any_op {transform.consumed}) -> (!transform.any_op)
attributes { iree_codegen.tuning_spec_entrypoint } {
- transform.print %variant_op {name="Custom spec"} : !transform.any_op
+ transform.print %variant_op name="Custom spec" : !transform.any_op
%res = transform.foreach_match in %variant_op
@match_mmt -> @apply_op_config
: (!transform.any_op) -> !transform.any_op
diff --git a/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_nested_layout_vector_distribution.mlir b/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_nested_layout_vector_distribution.mlir
index 31bc004..d63740d 100644
--- a/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_nested_layout_vector_distribution.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_nested_layout_vector_distribution.mlir
@@ -1504,7 +1504,7 @@
builtin.module attributes { transform.with_named_sequence } {
transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
%top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
- transform.iree.test_gpu_vector_distribution %top_level_func {workgroup_size = array<i64: 256, 1, 1>} : !transform.any_op
+ transform.iree.test_gpu_vector_distribution %top_level_func <{workgroup_size = array<i64: 256, 1, 1>}> : !transform.any_op
transform.yield
}
}
@@ -1538,7 +1538,7 @@
builtin.module attributes { transform.with_named_sequence } {
transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
%top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
- transform.iree.test_gpu_vector_distribution %top_level_func {workgroup_size = array<i64: 64, 1, 1>} : !transform.any_op
+ transform.iree.test_gpu_vector_distribution %top_level_func <{workgroup_size = array<i64: 64, 1, 1>}> : !transform.any_op
transform.yield
}
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_vector_distribution.mlir b/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_vector_distribution.mlir
index 37e825c..7a83986 100644
--- a/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_vector_distribution.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_vector_distribution.mlir
@@ -190,7 +190,7 @@
builtin.module attributes { transform.with_named_sequence } {
transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
%top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
- transform.iree.test_gpu_vector_distribution %top_level_func {workgroup_size = array<i64: 512, 1, 1>}
+ transform.iree.test_gpu_vector_distribution %top_level_func <{workgroup_size = array<i64: 512, 1, 1>}>
: !transform.any_op
transform.yield
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/GPU/test/transform_gpu_reduce_bank_conflicts.mlir b/compiler/src/iree/compiler/Codegen/Common/GPU/test/transform_gpu_reduce_bank_conflicts.mlir
index 74139e0..b401dbd 100644
--- a/compiler/src/iree/compiler/Codegen/Common/GPU/test/transform_gpu_reduce_bank_conflicts.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/GPU/test/transform_gpu_reduce_bank_conflicts.mlir
@@ -24,7 +24,7 @@
transform.named_sequence @__transform_main(
%variant_op: !transform.any_op {transform.readonly}) {
%0 = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
- transform.iree.reduce_shared_memory_bank_conflicts %0 { padding_size_bits = 64 } : (!transform.any_op) -> ()
+ transform.iree.reduce_shared_memory_bank_conflicts %0 <{ padding_size_bits = 64 }> : (!transform.any_op) -> ()
transform.yield
}
} // module
diff --git a/compiler/src/iree/compiler/Codegen/Common/TransformExtensions/CommonExtensionsOps.td b/compiler/src/iree/compiler/Codegen/Common/TransformExtensions/CommonExtensionsOps.td
index bdff088..1a62a26 100644
--- a/compiler/src/iree/compiler/Codegen/Common/TransformExtensions/CommonExtensionsOps.td
+++ b/compiler/src/iree/compiler/Codegen/Common/TransformExtensions/CommonExtensionsOps.td
@@ -159,7 +159,7 @@
let arguments = (ins DefaultValuedAttr<BoolAttr, "true">:$useNvGpu);
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
- let assemblyFormat = "attr-dict";
+ let assemblyFormat = "prop-dict attr-dict";
}
def ApplyUnrollVectorsGpuMmaSyncPatternsOp : Op<Transform_Dialect,
@@ -435,7 +435,7 @@
);
let results = (outs TransformHandleTypeInterface:$result);
- let assemblyFormat = "attr-dict $target `:` functional-type($target, results)";
+ let assemblyFormat = "prop-dict attr-dict $target `:` functional-type($target, results)";
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
let builders = [
@@ -561,7 +561,7 @@
);
let results = (outs);
- let assemblyFormat = "$target attr-dict `:` functional-type(operands, results)";
+ let assemblyFormat = "$target prop-dict attr-dict `:` functional-type(operands, results)";
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
let extraClassDeclaration = [{
@@ -675,7 +675,7 @@
DefaultValuedOptionalAttr<I64Attr, "64">:$subgroup_size);
let results = (outs);
- let assemblyFormat = [{ $target attr-dict `:` type($target)}];
+ let assemblyFormat = [{ $target prop-dict attr-dict `:` type($target)}];
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
let extraClassDeclaration = [{
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/external_strategy_spec.mlir b/compiler/src/iree/compiler/Codegen/Common/test/external_strategy_spec.mlir
index 7dc54d3..c206027 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/external_strategy_spec.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/external_strategy_spec.mlir
@@ -2,7 +2,7 @@
module @user_spec attributes { transform.with_named_sequence } {
transform.named_sequence @lowering_strategy(%op: !transform.any_op {transform.readonly}) {
- transform.print {name = "I am external", skip_regions}
+ transform.print name = "I am external" skip_regions
transform.yield
}
transform.named_sequence @import_lowering_strategy(%op: !transform.any_op {transform.readonly}) -> !transform.any_op
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/link_tuning_specs.mlir b/compiler/src/iree/compiler/Codegen/Common/test/link_tuning_specs.mlir
index 19fd909..b0be421 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/link_tuning_specs.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/link_tuning_specs.mlir
@@ -17,7 +17,7 @@
module @foo_module attributes { transform.with_named_sequence } {
transform.named_sequence @foo(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op
attributes { iree_codegen.tuning_spec_entrypoint } {
- transform.print {name = "Foo", skip_regions}
+ transform.print name = "Foo" skip_regions
transform.yield %arg0 : !transform.any_op
}
}
@@ -26,7 +26,7 @@
transform.named_sequence @bar(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op
attributes { iree_codegen.tuning_spec_entrypoint } {
transform.match.operation_name %arg0 ["func.func"] : !transform.any_op
- transform.print {name = "Bar", skip_regions}
+ transform.print name = "Bar" skip_regions
transform.yield %arg0 : !transform.any_op
}
}
@@ -34,7 +34,7 @@
module @baz_module attributes { transform.with_named_sequence } {
transform.named_sequence @baz(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op
attributes { iree_codegen.tuning_spec_entrypoint } {
- transform.print {name = "Baz", skip_regions}
+ transform.print name = "Baz" skip_regions
transform.yield %arg0 : !transform.any_op
}
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/lowering_config_interpreter.mlir b/compiler/src/iree/compiler/Codegen/Common/test/lowering_config_interpreter.mlir
index 02f2944..7b446c7 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/lowering_config_interpreter.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/lowering_config_interpreter.mlir
@@ -31,15 +31,15 @@
}
transform.named_sequence @print_one(%op: !transform.any_op {transform.readonly}) {
- transform.print %op {name = "one"} : !transform.any_op
+ transform.print %op name = "one" : !transform.any_op
transform.yield
}
transform.named_sequence @print_two(%op: !transform.any_op {transform.readonly}) {
- transform.print %op {name = "two"} : !transform.any_op
+ transform.print %op name = "two" : !transform.any_op
transform.yield
}
transform.named_sequence @print_three(%op: !transform.any_op {transform.readonly}) {
- transform.print %op {name = "three"} : !transform.any_op
+ transform.print %op name = "three" : !transform.any_op
transform.yield
}
}
@@ -73,7 +73,7 @@
}
transform.named_sequence @lowering_strategy(%op: !transform.any_op {transform.readonly}) {
- transform.print {name = "I am internal"}
+ transform.print name = "I am internal"
transform.yield
}
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/materialize_tuning_specs.mlir b/compiler/src/iree/compiler/Codegen/Common/test/materialize_tuning_specs.mlir
index c34d403..26a470a 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/materialize_tuning_specs.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/materialize_tuning_specs.mlir
@@ -31,7 +31,7 @@
// SKIPLINK-LABEL: module @user_spec
// SKIPLINK-SAME: iree_codegen.tuning_spec_with_default_entrypoint
// SKIPLINK-SAME: transform.with_named_sequence
-// SKIPLINK: transform.print {name = "Hello Tuning Spec"}
+// SKIPLINK: transform.print name = "Hello Tuning Spec"
// SKIPLINK-NOT: module @{{.+}}
// SKIPLINK: module attributes
// SKIPLINK-SAME: iree_codegen.tuning_spec_mlirbc = dense<{{.+}}> : vector<{{[0-9]+}}xi8>
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec.mlir b/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec.mlir
index 78fddf7..9e9e86d 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec.mlir
@@ -3,7 +3,7 @@
module @user_spec attributes { transform.with_named_sequence } {
transform.named_sequence @hello(%arg0: !transform.any_op {transform.readonly}) -> !transform.any_op
attributes { iree_codegen.tuning_spec_entrypoint } {
- transform.print {name = "Hello Tuning Spec", skip_regions}
+ transform.print name = "Hello Tuning Spec" skip_regions
transform.yield %arg0 : !transform.any_op
}
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec_default.mlir b/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec_default.mlir
index d5f83b9..671dcfb 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec_default.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/tuning_spec_default.mlir
@@ -2,7 +2,7 @@
module @user_spec attributes { transform.with_named_sequence, iree_codegen.tuning_spec_with_default_entrypoint } {
transform.named_sequence @match(%arg: !transform.any_op {transform.readonly}) -> (!transform.any_op) {
- transform.print {name = "Hello Tuning Spec"}
+ transform.print name = "Hello Tuning Spec"
transform.yield %arg : !transform.any_op
}
diff --git a/compiler/src/iree/compiler/Codegen/Common/test/verify_tuning_specs.mlir b/compiler/src/iree/compiler/Codegen/Common/test/verify_tuning_specs.mlir
index 610e0ba..24474fa 100644
--- a/compiler/src/iree/compiler/Codegen/Common/test/verify_tuning_specs.mlir
+++ b/compiler/src/iree/compiler/Codegen/Common/test/verify_tuning_specs.mlir
@@ -147,7 +147,7 @@
// expected-error @+1{{'__kernel_config' must start with 'ForeachMatchOp' (required by 'iree_codegen.tuning_spec_with_default_entrypoint')}}
transform.named_sequence @__kernel_config(%arg0: !transform.any_op {transform.consumed})
-> (!transform.any_op) attributes { iree_codegen.tuning_spec_entrypoint } {
- transform.print {name = "Hello"}
+ transform.print name = "Hello"
transform.yield %arg0 : !transform.any_op
}
}
diff --git a/compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/IREEGPUAttrs.td b/compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/IREEGPUAttrs.td
index 724d541..b6cac8a 100644
--- a/compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/IREEGPUAttrs.td
+++ b/compiler/src/iree/compiler/Codegen/Dialect/GPU/IR/IREEGPUAttrs.td
@@ -242,7 +242,9 @@
//===----------------------------------------------------------------------===//
class IREEGPU_MmaEnumAttr<EnumAttrInfo enumInfo, string name = "">
- : EnumAttr<IREEGPU_Dialect, enumInfo, name>;
+ : EnumAttr<IREEGPU_Dialect, enumInfo, name> {
+ let assemblyFormat = "$value";
+}
def IREEGPU_MMAIntrinsicAttr
: IREEGPU_MmaEnumAttr<IREEGPU_MMAIntrinsic, "mma_intrinsic">;
diff --git a/compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td b/compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td
index 09f39e4..0d18aa4 100644
--- a/compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td
+++ b/compiler/src/iree/compiler/Codegen/Dialect/GPU/TransformExtensions/IREEGPUExtensionsOps.td
@@ -209,7 +209,7 @@
let results = (outs TransformHandleTypeInterface:$result);
let assemblyFormat = [{
- $producer `into` $consumer attr-dict
+ $producer `into` $consumer prop-dict attr-dict
`:` functional-type(operands, results)
}];
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
index 86beadd..b4cf271 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/VectorContractCustomKernels.cpp
@@ -873,7 +873,7 @@
LLVM::InlineAsmOp asmOp = LLVM::InlineAsmOp::create(
rewriter, loc, returnType, inputs, code, constraints,
/*has_side_effects=*/false, /*is_align_stack=*/false,
- LLVM::TailCallKind::None, dialectAttr,
+ LLVM::TailCallKind::None, /*convergent=*/false, dialectAttr,
/*operand_attrs=*/ArrayAttr());
// Extract result vectors from the asm op.
SmallVector<Value> resVec;
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToROCDL.cpp b/compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToROCDL.cpp
index e677a71..1236653 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToROCDL.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToROCDL.cpp
@@ -78,6 +78,7 @@
/*asm_string=*/asmStr, /*constraints=*/"",
/*has_side_effects=*/true,
/*is_align_stack=*/false, LLVM::TailCallKind::None,
+ /*convergent=*/true,
/*asm_dialect=*/asmDialectAttr,
/*operand_attrs=*/ArrayAttr());
} else if (chipset.majorVersion < 12) {
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensionsOps.td b/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensionsOps.td
index a84197f..d733d61 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensionsOps.td
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensionsOps.td
@@ -205,7 +205,7 @@
DefaultValuedAttr<I64Attr, "{}">:$warp_size);
let results = (outs TransformHandleTypeInterface:$result);
- let assemblyFormat = "$target attr-dict `:` functional-type($target, $result)";
+ let assemblyFormat = "$target prop-dict attr-dict `:` functional-type($target, $result)";
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
let builders = [
@@ -359,7 +359,7 @@
let assemblyFormat = [{
$target
- attr-dict
+ prop-dict attr-dict
`:` functional-type($target, results)
}];
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
@@ -442,7 +442,7 @@
let assemblyFormat = [{
$for_op
- attr-dict
+ prop-dict attr-dict
`:` functional-type(operands, results)}];
let extraClassDeclaration = [{
@@ -514,7 +514,7 @@
let assemblyFormat = [{
$target
- attr-dict
+ prop-dict attr-dict
`:` functional-type(operands, results)}];
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
@@ -702,7 +702,7 @@
let assemblyFormat = [{
$target (`test_conversion` $test_conversion^)?
- attr-dict `:` functional-type(operands, results)
+ prop-dict attr-dict `:` functional-type(operands, results)
}];
let cppNamespace = "mlir::iree_compiler::IREE::transform_dialect";
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/convert_to_rocdl.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/convert_to_rocdl.mlir
index 73c2e6b..a15ca43 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/convert_to_rocdl.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/convert_to_rocdl.mlir
@@ -344,4 +344,4 @@
}
// CHECK-LABEL: llvm.func @global_subgroup_barrier
-// CHECK: llvm.inline_asm has_side_effects asm_dialect = att ";;;WARNING: BREAKS DEBUG WATCHES{{.*}}s_barrier"
+// CHECK: llvm.inline_asm has_side_effects convergent asm_dialect = att ";;;WARNING: BREAKS DEBUG WATCHES{{.*}}s_barrier"
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/create_async_groups.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/create_async_groups.mlir
index 5bfb282..ea5d6b2 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/create_async_groups.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/create_async_groups.mlir
@@ -26,7 +26,7 @@
module attributes { transform.with_named_sequence } {
transform.named_sequence @__transform_main(%variant_op: !transform.any_op {transform.readonly}) {
%top_level_func = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
- transform.iree.create_async_groups %top_level_func {use_mma_sync} : (!transform.any_op) -> ()
+ transform.iree.create_async_groups %top_level_func <{use_mma_sync}> : (!transform.any_op) -> ()
transform.yield
}
} // module
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_bufferize.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_bufferize.mlir
index c07aa76..6cf7e0b 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_bufferize.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_bufferize.mlir
@@ -34,7 +34,7 @@
transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
%func = transform.structured.match ops{["func.func"]} in %arg0 : (!transform.any_op) -> !transform.any_op
transform.iree.eliminate_empty_tensors %func : (!transform.any_op) -> ()
- %_ = transform.iree.bufferize { target_gpu } %func: (!transform.any_op) -> !transform.any_op
+ %_ = transform.iree.bufferize <{ target_gpu }> %func: (!transform.any_op) -> !transform.any_op
transform.yield
} // @__transform_main
} // module
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_distribution_spec.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_distribution_spec.mlir
index a24fecf..f67d7eb 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_distribution_spec.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_distribution_spec.mlir
@@ -3,9 +3,9 @@
%if_op = transform.structured.match ops{["scf.if"]} in %variant_op
: (!transform.any_op) -> !transform.any_op
- %warp = transform.iree.vector.to_warp_execute_on_lane_0 %if_op { warp_size = 32 }
+ %warp = transform.iree.vector.to_warp_execute_on_lane_0 %if_op <{ warp_size = 32 }>
: (!transform.any_op) -> !transform.any_op
- %isolated = transform.get_parent_op %warp {isolated_from_above}
+ %isolated = transform.get_parent_op %warp <{isolated_from_above}>
: (!transform.any_op) -> !transform.any_op
transform.iree.vector.warp_distribute %isolated
: (!transform.any_op) -> ()
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_warp_execute_on_lane_0_spec.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_warp_execute_on_lane_0_spec.mlir
index ddf7542..1b48151 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_warp_execute_on_lane_0_spec.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_codegen_vector_warp_execute_on_lane_0_spec.mlir
@@ -3,7 +3,7 @@
%if_op = transform.structured.match ops{["scf.if"]} in %variant_op
: (!transform.any_op) -> !transform.any_op
- transform.iree.vector.to_warp_execute_on_lane_0 %if_op { warp_size = 32 }
+ transform.iree.vector.to_warp_execute_on_lane_0 %if_op <{ warp_size = 32 }>
: (!transform.any_op) -> !transform.any_op
// Late canonicalizations to cleanup and pass the checks.
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_vector_to_nvgpu_mma.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_vector_to_nvgpu_mma.mlir
index 9cf6560..d144dcd 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_vector_to_nvgpu_mma.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_vector_to_nvgpu_mma.mlir
@@ -35,7 +35,7 @@
transform.apply_patterns to %func {
transform.apply_patterns.iree.unroll_vectors_gpu_wmma_sync
} : !transform.any_op
- transform.iree.vector.vector_to_mma_conversion %func { use_wmma } : (!transform.any_op) -> ()
+ transform.iree.vector.vector_to_mma_conversion %func <{ use_wmma }> : (!transform.any_op) -> ()
// Apply canonicalization post-hoc to trigger DCE and pass the test
// (i.e. all vector.contract are dead).
@@ -83,7 +83,7 @@
transform.apply_patterns to %func {
transform.apply_patterns.iree.unroll_vectors_gpu_mma_sync
} : !transform.any_op
- transform.iree.vector.vector_to_mma_conversion %func { use_mma_sync } : (!transform.any_op) -> ()
+ transform.iree.vector.vector_to_mma_conversion %func <{ use_mma_sync }> : (!transform.any_op) -> ()
// Apply canonicalization post-hoc to trigger DCE and pass the test
// (i.e. all vector.contract are dead).
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_gpu_pipelining.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_gpu_pipelining.mlir
index 6a4ea9e..a6a013b 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_gpu_pipelining.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_gpu_pipelining.mlir
@@ -60,7 +60,7 @@
transform.named_sequence @__transform_main(%root: !transform.any_op {transform.readonly}) {
%for = transform.structured.match ops{["scf.for"]} in %root : (!transform.any_op) -> !transform.any_op
%1 = transform.cast %for : !transform.any_op to !transform.op<"scf.for">
- %2 = transform.iree.pipeline_shared_memory_copies %1 { depth = 4 } : (!transform.op<"scf.for">) -> !transform.op<"scf.for">
+ %2 = transform.iree.pipeline_shared_memory_copies %1 <{ depth = 4 }> : (!transform.op<"scf.for">) -> !transform.op<"scf.for">
transform.yield
} // @__transform_main
} // module
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_vector_to_mma.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_vector_to_mma.mlir
index 1b6f81c..68f7b6b 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_vector_to_mma.mlir
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_vector_to_mma.mlir
@@ -56,7 +56,7 @@
transform.apply_patterns to %func {
transform.apply_patterns.iree.unroll_vectors_gpu_wmma_sync
} : !transform.any_op
- transform.iree.vector.vector_to_mma_conversion %func { use_wmma } : (!transform.any_op) -> ()
+ transform.iree.vector.vector_to_mma_conversion %func <{ use_wmma }> : (!transform.any_op) -> ()
// Apply canonicalization post-hoc to trigger DCE and pass the test
// (i.e. all vector.contract are dead).
@@ -140,7 +140,7 @@
transform.apply_patterns to %func {
transform.apply_patterns.iree.unroll_vectors_gpu_wmma_sync
} : !transform.any_op
- transform.iree.vector.vector_to_mma_conversion %func { use_wmma } : (!transform.any_op) -> ()
+ transform.iree.vector.vector_to_mma_conversion %func <{ use_wmma }> : (!transform.any_op) -> ()
transform.apply_patterns to %func {
transform.apply_patterns.canonicalization
} : !transform.any_op
diff --git a/compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td b/compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td
index 875855a..d6ef389 100644
--- a/compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td
+++ b/compiler/src/iree/compiler/Dialect/Encoding/IR/EncodingAttrs.td
@@ -24,7 +24,9 @@
}
class IREEEncoding_EnumAttr<EnumAttrInfo enumInfo, string name = "">
- : EnumAttr<IREEEncoding_Dialect, enumInfo, name>;
+ : EnumAttr<IREEEncoding_Dialect, enumInfo, name> {
+ let assemblyFormat = "$value";
+}
// Enums for tagging operand operation in an EncodingAttr
def MATMUL : I32EnumAttrCase<"matmul", 0>;
diff --git a/compiler/src/iree/compiler/Dialect/Flow/Transforms/AnnotateDispatches.cpp b/compiler/src/iree/compiler/Dialect/Flow/Transforms/AnnotateDispatches.cpp
index c377b47..7d6dd50 100644
--- a/compiler/src/iree/compiler/Dialect/Flow/Transforms/AnnotateDispatches.cpp
+++ b/compiler/src/iree/compiler/Dialect/Flow/Transforms/AnnotateDispatches.cpp
@@ -519,7 +519,7 @@
exportOp.setSymName(newName);
exportOp.setFunctionRef(newName);
- funcOp.setName(newName);
+ funcOp.setSymbolName(newName);
auto newSymbolRefAttr =
SymbolRefAttr::get(&getContext(), executableOp.getName(),
diff --git a/compiler/src/iree/compiler/Dialect/LinalgExt/TransformExtensions/LinalgExtExtensionsOps.td b/compiler/src/iree/compiler/Dialect/LinalgExt/TransformExtensions/LinalgExtExtensionsOps.td
index c89de92..6662621 100644
--- a/compiler/src/iree/compiler/Dialect/LinalgExt/TransformExtensions/LinalgExtExtensionsOps.td
+++ b/compiler/src/iree/compiler/Dialect/LinalgExt/TransformExtensions/LinalgExtExtensionsOps.td
@@ -29,11 +29,10 @@
);
let results = (outs Variadic<TransformHandleTypeInterface>:$result);
- let assemblyFormat = "attr-dict $target `:` functional-type(operands, results)";
let cppNamespace = "mlir::iree_compiler::IREE::LinalgExt";
let assemblyFormat = [{
- $target attr-dict `:` functional-type(operands, results)
+ $target prop-dict attr-dict `:` functional-type(operands, results)
}];
let extraClassDeclaration = [{
diff --git a/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/distribution.mlir b/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/distribution.mlir
index c348d52..c09cc16 100644
--- a/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/distribution.mlir
+++ b/compiler/src/iree/compiler/Dialect/LinalgExt/Transforms/test/distribution.mlir
@@ -17,7 +17,7 @@
module attributes { transform.with_named_sequence } {
transform.named_sequence @__transform_main(%module_op: !transform.any_op {transform.readonly}) {
%0 = transform.structured.match ops{["iree_linalg_ext.scatter"]} in %module_op : (!transform.any_op) -> !transform.any_op
- %forall, %tiled_op = transform.structured.tile_using_forall %0 tile_sizes [10, 30, 0] { mapping = [#gpu.thread<y>, #gpu.thread<x>] } : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
+ %forall, %tiled_op = transform.structured.tile_using_forall %0 tile_sizes [10, 30, 0] ( mapping = [#gpu.thread<y>, #gpu.thread<x>] ) : (!transform.any_op) -> (!transform.any_op, !transform.any_op)
transform.yield
}
}
diff --git a/compiler/src/iree/compiler/Dialect/Util/Transforms/LinkModules.cpp b/compiler/src/iree/compiler/Dialect/Util/Transforms/LinkModules.cpp
index 75c9f75..83f13f2 100644
--- a/compiler/src/iree/compiler/Dialect/Util/Transforms/LinkModules.cpp
+++ b/compiler/src/iree/compiler/Dialect/Util/Transforms/LinkModules.cpp
@@ -695,9 +695,9 @@
// Rename the operation.
if (auto funcOp = dyn_cast<FunctionOpInterface>(info->op)) {
- funcOp.setName(rename.newName);
+ funcOp.setSymbolName(rename.newName);
} else if (auto symOp = dyn_cast<SymbolOpInterface>(info->op)) {
- symOp.setName(rename.newName);
+ symOp.setSymbolName(rename.newName);
}
// Update SymbolInfo's names to reflect the rename.
diff --git a/samples/transform_dialect/transform_library.mlir b/samples/transform_dialect/transform_library.mlir
index fda287d..6e6f52c 100644
--- a/samples/transform_dialect/transform_library.mlir
+++ b/samples/transform_dialect/transform_library.mlir
@@ -40,7 +40,7 @@
transform.apply_patterns to %func_1 {
transform.apply_patterns.linalg.erase_unnecessary_inputs
} : !transform.any_op
- %memref_func = transform.iree.bufferize { target_gpu } %func_1 : (!transform.any_op) -> (!transform.any_op)
+ %memref_func = transform.iree.bufferize <{ target_gpu }> %func_1 : (!transform.any_op) -> (!transform.any_op)
// Step 6. Post-bufferization vector distribution
// ===========================================================================
@@ -48,30 +48,30 @@
transform.iree.forall_to_workgroup %func_7 : (!transform.any_op) -> ()
transform.iree.map_nested_forall_to_gpu_threads %func_7
workgroup_dims = [4, 8, 1] : (!transform.any_op) -> ()
- transform.print {name = "Ran custom_transform_strategy"}
+ transform.print name = "Ran custom_transform_strategy"
transform.yield
}
// Send it down a custom transform dialect pipeline.
transform.named_sequence @custom_matmul(%matmul: !transform.any_op {transform.readonly}) {
- %variant_op = transform.get_parent_op %matmul {op_name = "hal.executable.variant"} : (!transform.any_op) -> !transform.any_op
+ %variant_op = transform.get_parent_op %matmul <{op_name = "hal.executable.variant"}> : (!transform.any_op) -> !transform.any_op
%funcs = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
%subgroup_reduce = transform.param.constant #iree_codegen.translation_info<pipeline = #iree_codegen.transform_dialect_codegen
codegen_spec = @custom_transform_strategy> -> !transform.any_param
transform.annotate %funcs "translation_info" = %subgroup_reduce : !transform.any_op, !transform.any_param
- transform.print {name = "Setting matmul strategy to custom_transform_strategy"}
+ transform.print name = "Setting matmul strategy to custom_transform_strategy"
transform.yield
}
// Send it down subgroup reduce with a custom tiling configuration.
transform.named_sequence @use_base_vectorize(%reduce: !transform.any_op {transform.readonly}) {
- %variant_op = transform.get_parent_op %reduce {op_name = "hal.executable.variant"} : (!transform.any_op) -> !transform.any_op
+ %variant_op = transform.get_parent_op %reduce <{op_name = "hal.executable.variant"}> : (!transform.any_op) -> !transform.any_op
%lowering_config = transform.param.constant #iree_codegen.lowering_config<tile_sizes = [[8, 0], [1, 0], [0, 0, 4]]> -> !transform.any_param
transform.annotate %reduce "lowering_config" = %lowering_config : !transform.any_op, !transform.any_param
%funcs = transform.structured.match ops{["func.func"]} in %variant_op : (!transform.any_op) -> !transform.any_op
%subgroup_reduce = transform.param.constant #iree_codegen.translation_info<pipeline = #iree_gpu.spirv_pipeline<BaseVectorize> workgroup_size = [16, 1, 1]> -> !transform.any_param
transform.annotate %funcs "translation_info" = %subgroup_reduce : !transform.any_op, !transform.any_param
- transform.print {name = "Setting reduce strategy to base vectorize"}
+ transform.print name = "Setting reduce strategy to base vectorize"
transform.yield
}
@@ -105,7 +105,7 @@
%c2 = transform.param.constant 2 : i64 -> !transform.param<i64>
%rank = transform.match.structured.rank %arg1 : (!transform.any_op) -> !transform.param<i64>
transform.match.param.cmpi eq %rank, %c2 : !transform.param<i64>
- transform.match.structured.dim %arg1[-1] {reduction} : !transform.any_op
+ transform.match.structured.dim %arg1[-1] reduction : !transform.any_op
transform.match.structured.yield %arg1 : !transform.any_op
}
transform.yield %matched : !transform.any_op
diff --git a/third_party/llvm-project b/third_party/llvm-project
index d1a9d89..6cce5bc 160000
--- a/third_party/llvm-project
+++ b/third_party/llvm-project
@@ -1 +1 @@
-Subproject commit d1a9d89827aaf5badac754cdae6ac9d47b9c306f
+Subproject commit 6cce5bca3b901ec32e250fb43e88eb0fe511af93
diff --git a/third_party/stablehlo b/third_party/stablehlo
index a2727e5..50a9d75 160000
--- a/third_party/stablehlo
+++ b/third_party/stablehlo
@@ -1 +1 @@
-Subproject commit a2727e576ec6f18acc561333dfd70ef49d5f1cdf
+Subproject commit 50a9d75a404653fe5bbf284b5af8b3ffeda42ee0