[PATCH] D74211: [mlir] use unpacked memref descriptors at function boundaries
Diego Caballero via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 14 14:39:26 PST 2020
dcaballe added a subscriber: ayzhuang.
dcaballe added a comment.
@ayzhuang found another case that is breaking our project using the default calling convention. The `noalias` attribute is now added to all the flattened arguments, including those that are not pointers. LLVM complaints about it:
<stdin>:4:3: error: llvm.noalias attribute attached to LLVM non-pointer argument
llvm.func @check_noalias(%arg0: !llvm<"float*"> {llvm.noalias = true}, %arg1: !llvm<"float*"> {llvm.noalias = true}, %arg2: !llvm.i64 {llvm.noalias = true}, %arg3: !llvm.i64 {llvm.noalias
= true}, %arg4: !llvm.i64 {llvm.noalias = true}, %arg5: !llvm<"float*"> {llvm.noalias = true}, %arg6: !llvm<"float*"> {llvm.noalias = true}, %arg7: !llvm.i64 {llvm.noalias = true}, %arg8: !l
lvm.i64 {llvm.noalias = true}, %arg9: !llvm.i64 {llvm.noalias = true}) {
^
This is extending the test case to cover this new scenario:
diff --git a/mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir b/mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
index 105a80dec7a..da3ae1341f0 100644
--- a/mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
+++ b/mlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
@@ -2,6 +2,9 @@
// RUN: mlir-opt -convert-std-to-llvm='use-alloca=1' %s | FileCheck %s --check-prefix=ALLOCA
// RUN: mlir-opt -convert-std-to-llvm='use-bare-ptr-memref-call-conv=1' -split-input-file %s | FileCheck %s --check-prefix=BAREPTR
+// CHECK-LABEL: func @check_noalias
+// CHECK-SAME: %{{.*}}: !llvm<"float*"> {llvm.noalias = true}, %{{.*}}: !llvm<"float*"> {llvm.noalias = true}, %{{.*}}: !llvm.i64, %{{.*}}: !llvm.i64, %{{.*}}: !llvm.i64,
+// CHECK-SAME: %{{.*}}: !llvm<"float*"> {llvm.noalias = true}, %{{.*}}: !llvm<"float*"> {llvm.noalias = true}, %{{.*}}: !llvm.i64, %{{.*}}: !llvm.i64, %{{.*}}: !llvm.i64)
// BAREPTR-LABEL: func @check_noalias
// BAREPTR-SAME: %{{.*}}: !llvm<"float*"> {llvm.noalias = true}, %{{.*}}: !llvm<"float*"> {llvm.noalias = true}
func @check_noalias(%static : memref<2xf32> {llvm.noalias = true}, %other : memref<2xf32> {llvm.noalias = true}) {
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74211/new/
https://reviews.llvm.org/D74211
More information about the llvm-commits
mailing list