Skip to content

Commit

Permalink
[mlir][vector] Add side-effect information to different load/store ops
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D94434
  • Loading branch information
ThomasRaoux committed Jan 11, 2021
1 parent 05e90ce commit c1ae378
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 6 deletions.
12 changes: 6 additions & 6 deletions mlir/include/mlir/Dialect/Vector/VectorOps.td
Expand Up @@ -1318,7 +1318,7 @@ def Vector_TransferWriteOp :

def Vector_MaskedLoadOp :
Vector_Op<"maskedload">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemRead]>:$base,
Variadic<Index>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$pass_thru)>,
Expand Down Expand Up @@ -1370,7 +1370,7 @@ def Vector_MaskedLoadOp :

def Vector_MaskedStoreOp :
Vector_Op<"maskedstore">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemWrite]>:$base,
Variadic<Index>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$value)> {
Expand Down Expand Up @@ -1418,7 +1418,7 @@ def Vector_MaskedStoreOp :

def Vector_GatherOp :
Vector_Op<"gather">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemRead]>:$base,
VectorOfRankAndType<[1], [AnyInteger]>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$pass_thru)>,
Expand Down Expand Up @@ -1475,7 +1475,7 @@ def Vector_GatherOp :

def Vector_ScatterOp :
Vector_Op<"scatter">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemWrite]>:$base,
VectorOfRankAndType<[1], [AnyInteger]>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$value)> {
Expand Down Expand Up @@ -1531,7 +1531,7 @@ def Vector_ScatterOp :

def Vector_ExpandLoadOp :
Vector_Op<"expandload">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemRead]>:$base,
Variadic<Index>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$pass_thru)>,
Expand Down Expand Up @@ -1586,7 +1586,7 @@ def Vector_ExpandLoadOp :

def Vector_CompressStoreOp :
Vector_Op<"compressstore">,
Arguments<(ins AnyMemRef:$base,
Arguments<(ins Arg<AnyMemRef, "", [MemWrite]>:$base,
Variadic<Index>:$indices,
VectorOfRankAndType<[1], [I1]>:$mask,
VectorOfRank<[1]>:$value)> {
Expand Down
19 changes: 19 additions & 0 deletions mlir/test/Dialect/Vector/canonicalize.mlir
Expand Up @@ -677,3 +677,22 @@ func @dead_transfer_op(%arg0 : tensor<4x4xf32>, %arg1 : memref<4x4xf32>,
vector<1x4xf32>, tensor<4x4xf32>
return
}

// -----

// CHECK-LABEL: func @dead_load
// CHECK-NOT: vector.maskedload
// CHECK-NOT: vector.gather
// CHECK-NOT: vector.expandload
// CHECK: return
func @dead_load(%base: memref<?xf32>, %indices: vector<16xi32>,
%mask: vector<16xi1>, %passthru: vector<16xf32>) {
%c0 = constant 0 : index
%0 = vector.maskedload %base[%c0], %mask, %passthru :
memref<?xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
%1 = vector.gather %base[%indices], %mask, %passthru :
memref<?xf32>, vector<16xi32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
%2 = vector.expandload %base[%c0], %mask, %passthru :
memref<?xf32>, vector<16xi1>, vector<16xf32> into vector<16xf32>
return
}

0 comments on commit c1ae378

Please sign in to comment.