diff --git a/mlir/include/mlir/Conversion/Passes.td b/mlir/include/mlir/Conversion/Passes.td --- a/mlir/include/mlir/Conversion/Passes.td +++ b/mlir/include/mlir/Conversion/Passes.td @@ -361,6 +361,10 @@ }]; let options = [ + Option<"hostBarePtrCallConv", "use-bare-pointers-for-host", "bool", + /*default=*/"false", + "Use bare pointers to pass memref arguments to host functions. " + "All memrefs must have static shape.">, Option<"kernelBarePtrCallConv", "use-bare-pointers-for-kernels", "bool", /*default=*/"false", "Use bare pointers to pass memref arguments to kernels. " diff --git a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp --- a/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp +++ b/mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp @@ -716,6 +716,7 @@ void GpuToLLVMConversionPass::runOnOperation() { LowerToLLVMOptions options(&getContext()); options.useOpaquePointers = useOpaquePointers; + options.useBarePtrCallConv = hostBarePtrCallConv; LLVMTypeConverter converter(&getContext(), options); RewritePatternSet patterns(&getContext());