Skip to content

Commit cd331af

Browse files
committed
[MLIR][LLVM] Mark read/write behavior of memcpy/memset/memmove
This commit adds MemWrite (and MemRead, as appropriate) to the arugments of the memset/memcpy/memmove intrinsics within the LLVM dialect Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D122552
1 parent 3929458 commit cd331af

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,20 +1436,20 @@ def LLVM_UMaxOp : LLVM_BinarySameArgsIntrinsicOp<"umax">;
14361436
def LLVM_UMinOp : LLVM_BinarySameArgsIntrinsicOp<"umin">;
14371437

14381438
def LLVM_MemcpyOp : LLVM_ZeroResultIntrOp<"memcpy", [0, 1, 2]> {
1439-
let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len,
1439+
let arguments = (ins Arg<LLVM_Type,"",[MemWrite]>:$dst, Arg<LLVM_Type,"",[MemRead]>:$src, LLVM_Type:$len,
14401440
LLVM_Type:$isVolatile);
14411441
}
14421442
def LLVM_MemcpyInlineOp : LLVM_ZeroResultIntrOp<"memcpy.inline", [0, 1, 2]> {
1443-
let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len,
1443+
let arguments = (ins Arg<LLVM_Type,"",[MemWrite]>:$dst, Arg<LLVM_Type,"",[MemRead]>:$src, LLVM_Type:$len,
14441444
LLVM_Type:$isVolatile);
14451445
}
14461446
def LLVM_MemmoveOp : LLVM_ZeroResultIntrOp<"memmove", [0, 1, 2]> {
1447-
let arguments = (ins LLVM_Type:$dst, LLVM_Type:$src, LLVM_Type:$len,
1447+
let arguments = (ins Arg<LLVM_Type,"",[MemWrite]>:$dst, Arg<LLVM_Type,"",[MemRead]>:$src, LLVM_Type:$len,
14481448
LLVM_Type:$isVolatile);
14491449
}
14501450

14511451
def LLVM_MemsetOp : LLVM_ZeroResultIntrOp<"memset", [0, 2]> {
1452-
let arguments = (ins LLVM_Type:$dst, LLVM_Type:$val, LLVM_Type:$len,
1452+
let arguments = (ins Arg<LLVM_Type,"",[MemWrite]>:$dst, LLVM_Type:$val, LLVM_Type:$len,
14531453
LLVM_Type:$isVolatile);
14541454
}
14551455

0 commit comments

Comments
 (0)