From f9fa934c649749b30fc4be05d9cef78eb043f0e9 Mon Sep 17 00:00:00 2001 From: Vivian Date: Tue, 15 Oct 2024 18:13:22 -0700 Subject: [PATCH] Integrates LLVM @ a758bcdbd92efb64a3482eb95d2769d74e33f5bb (#18783) No local patch is carried. --------- Signed-off-by: yzhang93 --- .../Codegen/LLVMGPU/LLVMGPUPromoteMatmulToFitMMA.cpp | 4 ++-- .../LLVMGPU/test/set_transform_strategy_batch_matmul.mlir | 2 +- .../LLVMGPU/test/set_transform_strategy_convolution.mlir | 4 ++-- .../LLVMGPU/test/set_transform_strategy_matmul.mlir | 8 ++++---- third_party/llvm-project | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPUPromoteMatmulToFitMMA.cpp b/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPUPromoteMatmulToFitMMA.cpp index b11573bdb11c..bc2f7b1a65f2 100644 --- a/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPUPromoteMatmulToFitMMA.cpp +++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPUPromoteMatmulToFitMMA.cpp @@ -45,7 +45,7 @@ class LLVMGPUPromoteMatmulToFitMMAPass final OpBuilder::InsertionGuard guard(rewriter); rewriter.setInsertionPointAfter(op); - SmallVector packPaddings(op.getNumDpsInputs(), noFold); + SmallVector nofoldFlags(op.getNumDpsInputs(), noFold); SmallVector paddingValueAttributes; for (auto &operand : op->getOpOperands()) { @@ -58,7 +58,7 @@ class LLVMGPUPromoteMatmulToFitMMAPass final .setPaddingDimensions(paddingDims) .setPaddingValues(paddingValueAttributes) .setPadToMultipleOf(padToMultipleOf) - .setPackPaddings(packPaddings) + .setPackPaddings(nofoldFlags) .setCopyBackOp(linalg::LinalgPaddingOptions::CopyBackOp::None); FailureOr result = diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_batch_matmul.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_batch_matmul.mlir index f1ced7beb610..33d5f29e93be 100644 --- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_batch_matmul.mlir +++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_batch_matmul.mlir @@ -57,7 +57,7 @@ func.func @batch_matmul_dispatch_0_generic_128x80x320x32_f32() { // DEFAULT: [0, 0, 0, 16] // OPTIONS: [0, 0, 0, 8] // CHECK: %[[PADDED:.+]], %{{.*}}, %{{.+}} = transform.structured.pad %tiled_linalg_op pad_to_multiple_of [1, 1, 1, 1] -// CHECK: pack_paddings = [1, 1, 1, 1], padding_dimensions = [0, 1, 2, 3] +// CHECK: nofold_flags = [1, 1, 1, 1], padding_dimensions = [0, 1, 2, 3] // CHECK: padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} // CHECK: %[[V3:.+]] = transform.get_producer_of_operand %[[PADDED]][2] // CHECK: transform.structured.hoist_pad %{{.*}} by 1 loops diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_convolution.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_convolution.mlir index 445a64c13003..6ab8221d5351 100644 --- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_convolution.mlir +++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_convolution.mlir @@ -36,7 +36,7 @@ func.func @nchw_convolution() { // CHECK: transform.structured.fuse_into_containing_op // CHECK: transform.structured.tile_using_for %{{.*}}[0, 0, 0, 16] // CHECK: transform.structured.fuse_into_containing_op -// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1, 1] {copy_back_op = "none", pack_paddings = [1, 0, 1], padding_dimensions = [0, 1, 2, 3], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} +// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1, 1] {copy_back_op = "none", nofold_flags = [1, 0, 1], padding_dimensions = [0, 1, 2, 3], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} // CHECK: transform.structured.match ops{["linalg.fill"]} // CHECK: %[[RES:.+]] = transform.get_producer_of_operand %{{.*}}[2] // CHECK: transform.structured.rewrite_in_destination_passing_style %[[RES]] @@ -89,7 +89,7 @@ func.func @nhwc_convolution() { // CHECK: transform.named_sequence // CHECK: transform.structured.tile_using_forall %{{.*}} tile_sizes [1, 128, 128](mapping = [#gpu.block, #gpu.block, #gpu.block]) -// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1, 1] {copy_back_op = "none", pack_paddings = [0, 1, 1], padding_dimensions = [0, 1, 2, 3], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} +// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1, 1] {copy_back_op = "none", nofold_flags = [0, 1, 1], padding_dimensions = [0, 1, 2, 3], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} // CHECK: %[[RES:.+]] = transform.get_producer_of_operand %{{.*}}[2] // CHECK: transform.structured.rewrite_in_destination_passing_style %[[RES]] // CHECK: %[[LHS:.+]] = transform.get_producer_of_operand %{{.*}}[0] diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_matmul.mlir b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_matmul.mlir index 2e41bfe445c4..8943709e1c13 100644 --- a/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_matmul.mlir +++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/test/set_transform_strategy_matmul.mlir @@ -71,7 +71,7 @@ func.func @matmul_1() { // CHECK: transform.structured.fuse_into_containing_op // CHECK: transform.iree.populate_workgroup_count_region_using_num_threads_slice // CHECK: transform.structured.tile_using_for %{{.*}}[0, 0, 16] -// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1] {copy_back_op = "none", pack_paddings = [1, 1, 1], padding_dimensions = [0, 1, 2], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} +// CHECK: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1] {copy_back_op = "none", nofold_flags = [1, 1, 1], padding_dimensions = [0, 1, 2], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} // CHECK: transform.structured.hoist_pad %{{.}} by 1 loops // CHECK: transform.structured.insert_slice_to_copy %{{.*}} : (!transform.any_op) -> !transform.any_op // CHECK: transform.structured.tile_using_forall %{{.*}} num_threads [32, 4](mapping = [#gpu.thread, #gpu.thread]) @@ -133,7 +133,7 @@ func.func @matmul_1() { // WITH_OPTIONS: transform.iree.populate_workgroup_count_region_using_num_threads_slice // The tiling is affected by td-matmul-strategy-reduc-size: 8. // WITH_OPTIONS: transform.structured.tile_using_for %{{.*}}[0, 0, 8] -// WITH_OPTIONS: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1] {copy_back_op = "none", pack_paddings = [1, 1, 1], padding_dimensions = [0, 1, 2], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} +// WITH_OPTIONS: transform.structured.pad %{{.*}} pad_to_multiple_of [1, 1, 1] {copy_back_op = "none", nofold_flags = [1, 1, 1], padding_dimensions = [0, 1, 2], padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32]} // WITH_OPTIONS: transform.structured.hoist_pad %{{.}} by 1 loops // WITH_OPTIONS: transform.structured.insert_slice_to_copy %{{.*}} : (!transform.any_op) -> !transform.any_op // WITH_OPTIONS: transform.structured.tile_using_forall %{{.*}} num_threads [64, 2](mapping = [#gpu.thread, #gpu.thread]) @@ -308,7 +308,7 @@ func.func @matmul_4_partially_unaligned() { // Make sure we do not canonicalize because the result is still aligned. // CHECK-NEXT: transform.structured.pad %tiled_linalg_op // CHECK-SAME: copy_back_op = "none" -// CHECK-SAME: pack_paddings = [1, 1, 1] +// CHECK-SAME: nofold_flags = [1, 1, 1] // CHECK-SAME: padding_dimensions = [0, 1, 2] // CHECK-SAME: padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32] // CHECK: apply_patterns to %{{.*}} { @@ -375,7 +375,7 @@ func.func @aligned_matmul() { // Make sure we do not canonicalize if the result is aligned to avoid folding the extract_slice on the iterator. // CHECK-NEXT: transform.structured.pad %tiled_linalg_op // CHECK-SAME: copy_back_op = "none" -// CHECK-SAME: pack_paddings = [1, 1, 1] +// CHECK-SAME: nofold_flags = [1, 1, 1] // CHECK-SAME: padding_dimensions = [0, 1, 2] // CHECK-SAME: padding_values = [0.000000e+00 : f32, 0.000000e+00 : f32, 0.000000e+00 : f32] diff --git a/third_party/llvm-project b/third_party/llvm-project index 7900daaa7ba5..a758bcdbd92e 160000 --- a/third_party/llvm-project +++ b/third_party/llvm-project @@ -1 +1 @@ -Subproject commit 7900daaa7ba57b5f9729bbbdb54f4e0599a45cd7 +Subproject commit a758bcdbd92efb64a3482eb95d2769d74e33f5bb