Skip to content

Commit c2cb24e

Browse files
committed
modify tests
1 parent 710a954 commit c2cb24e

File tree

9 files changed

+241
-33
lines changed

9 files changed

+241
-33
lines changed

lib/Conversion/TaskflowToNeura/TaskflowToNeuraPass.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,20 @@ static LogicalResult wrapInnermostLoopAsKernel(affine::AffineForOp for_op,
4545

4646
// Collects values that need to be captured by the kernel.
4747
llvm::SetVector<Value> captured_values;
48+
49+
// 1. Values used in the loop body (loads, stores, computations).
4850
getUsedValuesDefinedAbove(for_op.getRegion(), captured_values);
4951

52+
// 2. Explicitly collect loop operands (iter_args init values, bounds if
53+
// dynamic). For affine.for, bounds are usually constant, but iter_args init
54+
// values are operands.
55+
for (Value operand : for_op.getInits()) {
56+
// Only adds if defined outside (not a constant or in the loop itself).
57+
if (operand.getParentRegion() != &for_op.getRegion()) {
58+
captured_values.insert(operand);
59+
}
60+
}
61+
5062
// Checks if the loop has output values.
5163
bool has_outputs = !for_op.getResults().empty();
5264

test/Conversion/TosaToTaskflow/affine-to-taskflow.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module {
1616
}
1717

1818
// CHECK: func.func @simple_add(%arg0: memref<16xf32>, %arg1: memref<16xf32>, %arg2: memref<16xf32>) {
19-
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%arg2 : memref<16xf32>) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg2)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
19+
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%arg2 : memref<16xf32>) [original_read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>), original_write_memrefs(%arg2 : memref<16xf32>)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
2020
// CHECK-NEXT: ^bb0(%arg3: memref<16xf32>, %arg4: memref<16xf32>, %arg5: memref<16xf32>):
2121
// CHECK-NEXT: affine.for %arg6 = 0 to 16 {
2222
// CHECK-NEXT: %0 = affine.load %arg3[%arg6] : memref<16xf32>

test/Conversion/TosaToTaskflow/tosa-to-taskflow.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ func.func @simple_add(%arg0: tensor<16xf32>, %arg1: tensor<16xf32>) -> tensor<16
1111

1212
// CHECK: func.func @simple_add(%arg0: memref<16xf32>, %arg1: memref<16xf32>) -> memref<16xf32> {
1313
// CHECK-NEXT: %alloc = memref.alloc() {alignment = 64 : i64} : memref<16xf32>
14-
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%alloc : memref<16xf32>) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%alloc)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
14+
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%alloc : memref<16xf32>) [original_read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>), original_write_memrefs(%alloc : memref<16xf32>)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
1515
// CHECK-NEXT: ^bb0(%arg2: memref<16xf32>, %arg3: memref<16xf32>, %arg4: memref<16xf32>):
1616
// CHECK-NEXT: affine.for %arg5 = 0 to 16 {
1717
// CHECK-NEXT: %0 = affine.load %arg2[%arg5] : memref<16xf32>

test/e2e/tosa_e2e.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ func.func @test_e2e(%arg0: tensor<16xf32>, %arg1: tensor<16xf32>) -> tensor<16xf
1111

1212
// CHECK: func.func @test_e2e(%arg0: memref<16xf32>, %arg1: memref<16xf32>) -> memref<16xf32> {
1313
// CHECK-NEXT: %alloc = memref.alloc() {alignment = 64 : i64} : memref<16xf32>
14-
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%alloc : memref<16xf32>) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%alloc)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
14+
// CHECK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>) write_memrefs(%alloc : memref<16xf32>) [original_read_memrefs(%arg0, %arg1 : memref<16xf32>, memref<16xf32>), original_write_memrefs(%alloc : memref<16xf32>)] : (memref<16xf32>, memref<16xf32>, memref<16xf32>) -> (memref<16xf32>) {
1515
// CHECK-NEXT: ^bb0(%arg2: memref<16xf32>, %arg3: memref<16xf32>, %arg4: memref<16xf32>):
1616
// CHECK-NEXT: affine.for %arg5 = 0 to 16 {
1717
// CHECK-NEXT: %0 = affine.load %arg2[%arg5] : memref<16xf32>

test/multi-cgra/kernel_mapping/fir/fir.mlir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ module attributes {} {
9595
// TASKFLOW: module {
9696
// TASKFLOW-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
9797
// TASKFLOW-NEXT: %c0_i32 = arith.constant 0 : i32
98-
// TASKFLOW-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
98+
// TASKFLOW-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
9999
// TASKFLOW-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
100100
// TASKFLOW-NEXT: %0 = affine.for %arg6 = 0 to 32 iter_args(%arg7 = %arg5) -> (i32) {
101101
// TASKFLOW-NEXT: %1 = affine.load %arg3[%arg6] : memref<?xi32>
@@ -113,7 +113,7 @@ module attributes {} {
113113
// HYPERBLOCK: module {
114114
// HYPERBLOCK-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
115115
// HYPERBLOCK-NEXT: %c0_i32 = arith.constant 0 : i32
116-
// HYPERBLOCK-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
116+
// HYPERBLOCK-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
117117
// HYPERBLOCK-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
118118
// HYPERBLOCK-NEXT: %0 = taskflow.counter attributes {lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
119119
// HYPERBLOCK-NEXT: %1 = "taskflow.hyperblock"(%0, %arg5) <{operandSegmentSizes = array<i32: 1, 1>}> ({
@@ -133,7 +133,7 @@ module attributes {} {
133133
// KERNEL: module {
134134
// KERNEL-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
135135
// KERNEL-NEXT: %c0_i32 = arith.constant 0 : i32
136-
// KERNEL-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
136+
// KERNEL-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
137137
// KERNEL-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
138138
// KERNEL-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
139139
// KERNEL-NEXT: %1 = neura.kernel inputs(%arg3, %arg4 : memref<?xi32>, memref<?xi32>) iter_args_init(%arg5 : i32) {
@@ -154,7 +154,7 @@ module attributes {} {
154154
// NEURA: module {
155155
// NEURA-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
156156
// NEURA-NEXT: %c0_i32 = arith.constant 0 : i32
157-
// NEURA-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
157+
// NEURA-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
158158
// NEURA-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
159159
// NEURA-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
160160
// NEURA-NEXT: %1 = neura.kernel inputs(%arg3, %arg4 : memref<?xi32>, memref<?xi32>) iter_args_init(%arg5 : i32) attributes {accelerator = "neura"} {
@@ -175,7 +175,7 @@ module attributes {} {
175175
// DATAFLOW: module {
176176
// DATAFLOW-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
177177
// DATAFLOW-NEXT: %c0_i32 = arith.constant 0 : i32
178-
// DATAFLOW-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
178+
// DATAFLOW-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
179179
// DATAFLOW-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
180180
// DATAFLOW-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
181181
// DATAFLOW-NEXT: %1 = neura.kernel inputs(%arg3, %arg4 : memref<?xi32>, memref<?xi32>) iter_args_init(%arg5 : i32) attributes {accelerator = "neura", dataflow_mode = "predicate"} {
@@ -204,7 +204,7 @@ module attributes {} {
204204
// MAPPED: module {
205205
// MAPPED-NEXT: func.func @_Z6kernelPiS_S_(%arg0: memref<?xi32>, %arg1: memref<?xi32>, %arg2: memref<?xi32>) -> i32 attributes {llvm.linkage = #llvm.linkage<external>} {
206206
// MAPPED-NEXT: %c0_i32 = arith.constant 0 : i32
207-
// MAPPED-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
207+
// MAPPED-NEXT: %value_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg2 : memref<?xi32>, memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, i32) -> (i32) {
208208
// MAPPED-NEXT: ^bb0(%arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
209209
// MAPPED-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
210210
// MAPPED-NEXT: %1 = neura.kernel inputs(%arg3, %arg4 : memref<?xi32>, memref<?xi32>) iter_args_init(%arg5 : i32) attributes {accelerator = "neura", dataflow_mode = "predicate", mapping_info = {compiled_ii = 4 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 2 : i32, res_mii = 1 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}} {

test/multi-cgra/kernel_mapping/relu/relu.mlir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ module attributes {} {
9999
// TASKFLOW: module {
100100
// TASKFLOW-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
101101
// TASKFLOW-NEXT: %c0_i32 = arith.constant 0 : i32
102-
// TASKFLOW-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
102+
// TASKFLOW-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
103103
// TASKFLOW-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
104104
// TASKFLOW-NEXT: affine.for %arg6 = 0 to 32 {
105105
// TASKFLOW-NEXT: %0 = affine.load %arg2[%arg6] : memref<?xi32>
@@ -123,7 +123,7 @@ module attributes {} {
123123
// HYPERBLOCK: module {
124124
// HYPERBLOCK-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
125125
// HYPERBLOCK-NEXT: %c0_i32 = arith.constant 0 : i32
126-
// HYPERBLOCK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
126+
// HYPERBLOCK-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
127127
// HYPERBLOCK-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
128128
// HYPERBLOCK-NEXT: %0 = taskflow.counter attributes {lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
129129
// HYPERBLOCK-NEXT: "taskflow.hyperblock"(%0) <{operandSegmentSizes = array<i32: 1, 0>}> ({
@@ -150,7 +150,7 @@ module attributes {} {
150150
// KERNEL: module {
151151
// KERNEL-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
152152
// KERNEL-NEXT: %c0_i32 = arith.constant 0 : i32
153-
// KERNEL-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
153+
// KERNEL-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
154154
// KERNEL-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
155155
// KERNEL-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
156156
// KERNEL-NEXT: neura.kernel inputs(%arg2, %arg5, %arg4 : memref<?xi32>, i32, memref<?xi32>) {
@@ -178,7 +178,7 @@ module attributes {} {
178178
// NEURA: module {
179179
// NEURA-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
180180
// NEURA-NEXT: %c0_i32 = arith.constant 0 : i32
181-
// NEURA-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
181+
// NEURA-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
182182
// NEURA-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
183183
// NEURA-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
184184
// NEURA-NEXT: neura.kernel inputs(%arg2, %arg5, %arg4 : memref<?xi32>, i32, memref<?xi32>) attributes {accelerator = "neura"} {
@@ -209,7 +209,7 @@ module attributes {} {
209209
// DATAFLOW: module {
210210
// DATAFLOW-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
211211
// DATAFLOW-NEXT: %c0_i32 = arith.constant 0 : i32
212-
// DATAFLOW-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
212+
// DATAFLOW-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
213213
// DATAFLOW-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
214214
// DATAFLOW-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
215215
// DATAFLOW-NEXT: neura.kernel inputs(%arg2, %arg5, %arg4 : memref<?xi32>, i32, memref<?xi32>) attributes {accelerator = "neura", dataflow_mode = "predicate"} {
@@ -237,7 +237,7 @@ module attributes {} {
237237
// MAPPED: module {
238238
// MAPPED-NEXT: func.func @_Z6kernelPiS_(%arg0: memref<?xi32>, %arg1: memref<?xi32>) attributes {llvm.linkage = #llvm.linkage<external>} {
239239
// MAPPED-NEXT: %c0_i32 = arith.constant 0 : i32
240-
// MAPPED-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1), original_write_memrefs(%arg1)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
240+
// MAPPED-NEXT: %write_outputs = taskflow.task @Task_0 read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>) write_memrefs(%arg1 : memref<?xi32>) value_inputs(%c0_i32 : i32) [original_read_memrefs(%arg0, %arg1 : memref<?xi32>, memref<?xi32>), original_write_memrefs(%arg1 : memref<?xi32>)] : (memref<?xi32>, memref<?xi32>, memref<?xi32>, i32) -> (memref<?xi32>) {
241241
// MAPPED-NEXT: ^bb0(%arg2: memref<?xi32>, %arg3: memref<?xi32>, %arg4: memref<?xi32>, %arg5: i32):
242242
// MAPPED-NEXT: %0 = taskflow.counter attributes {counter_id = 0 : i32, counter_type = "leaf", lower_bound = 0 : index, step = 1 : index, upper_bound = 32 : index} : index
243243
// MAPPED-NEXT: neura.kernel inputs(%arg2, %arg5, %arg4 : memref<?xi32>, i32, memref<?xi32>) attributes {accelerator = "neura", dataflow_mode = "predicate", mapping_info = {compiled_ii = 2 : i32, mapping_mode = "spatial-temporal", mapping_strategy = "heuristic", rec_mii = 1 : i32, res_mii = 1 : i32, x_tiles = 4 : i32, y_tiles = 4 : i32}} {

0 commit comments

Comments
 (0)