[Mlir-commits] [mlir] [mlir] Add existing callback functions to GpuModuleToBinary pass (PR #117694)
Zichen Lu
llvmlistbot at llvm.org
Tue Nov 26 05:13:03 PST 2024
================
@@ -95,7 +95,19 @@ def GpuModuleToBinaryPass
Option<"cmdOptions", "opts", "std::string", [{""}],
"Command line options to pass to the tools.">,
Option<"compilationTarget", "format", "std::string", [{"fatbin"}],
- "The target representation of the compilation process.">
+ "The target representation of the compilation process.">,
+ Option<"initialLlvmIRCallback", "initialLlvmIRCallback",
+ "llvm::function_ref<void(llvm::Module &)>", "nullptr",
+ "Callback invoked with the initial LLVM IR for the device module.">,
+ Option<"linkedLlvmIRCallback", "linkedLlvmIRCallback",
+ "llvm::function_ref<void(llvm::Module &)>", "nullptr",
+ "Callback invoked with LLVM IR for the device module after linking the device libraries.">,
+ Option<"optimizedLlvmIRCallback", "optimizedLlvmIRCallback",
+ "llvm::function_ref<void(llvm::Module &)>", "nullptr",
+ "Callback invoked with LLVM IR for the device module after LLVM optimizations but before codegen.">,
+ Option<"isaCallback", "isaCallback",
+ "llvm::function_ref<void(llvm::StringRef)>", "nullptr",
+ "Callback invoked with the target ISA for the device, for example PTX assembly.">
----------------
MikaOvO wrote:
Got it. Thanks!
So if I understand correctly, it's difficult to pass pointers or references in options, is it right?
If right, I think it's better to use `serializer` directly, and I will persuade others to believe it. (because the main reason others want me to use `pass` but not `serializer` now is to eliminate code duplication, but maybe it's difficult to write a new `pass` and achieve this.)
https://github.com/llvm/llvm-project/pull/117694
More information about the Mlir-commits
mailing list