spcl / open-earth-compiler

development repository for the open earth compiler
https://arxiv.org/abs/2005.13014
Other
72 stars 14 forks source link

cmake error: too many arguments to function createGpuToLLVMConversionPass #43

Open CONGCONGLEEE opened 2 years ago

CONGCONGLEEE commented 2 years ago

Hello ,I have two questions with the build instructions. Firstly, When building with "cmake --build . --target check-oec-opt", the error is open-earth-compiler/lib/Conversion/LoopsToGPU/ConvertKernelFuncToCubin.cpp:121:78: error: too many arguments to function ‘std::unique_ptr<mlir::OperationPass<mlir::ModuleOp> > mlir::createGpuToLLVMConversionPass(llvm::StringRef) pm.addPass(createGpuToLLVMConversionPass(gpuBinaryAnnotation, options)); which declared in llvm-project/mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h:48:1: note: createGpuToLLVMConversionPass(StringRef gpuBinaryAnnotation = "");
I have checked the build of LLVM to commit e59d336e75f4. And the number of arguments of the function actually does not match.

Secondly, along with the first question, I deleted the argument "options" in the function "createGpuToLLVMConversionPass " to match the number of arguments, and the compilation of oec-opt passed. But when running the command line llc -O3 laplace.bc -o laplace.s
the error is llc: laplace.bc:13:30: error: expected ')' at end of argument list: define void @laplace(double* %0, double* %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, double* %9, double* %10, i64 %11, i64 %12, i64 %13, i64 %14, i64 %15, i64 %16, i64 %17) !dbg !3 But there has ')' at end of argument list.It points to the brackets after the i64 %11 .

gysit commented 2 years ago

Hi, the additional options parameter is in deed needed. You can add it by applying the runtime.patch in the patches folder.

The command to apply the patch can be found in the README as well:

git apply ../stencil-dialect/patches/runtime.patch
CONGCONGLEEE commented 2 years ago

It works, thanks!