This PR makes the compilation log from ISA compiler available to users by returning it as part of the `gpu::ObjectAttr` properties, following the existing pattern like `LLVMIRToISATimeInMs`. Currently, the compiler log (which contains useful information such as spill statistics when --verbose is passed) is only accessible in debug builds via `LLVM_DEBUG`. However, there are good reasons to make this information available in release builds as well: 1. Both `ptxas` and `libnvptxcompiler` are publicly available tools/libraries distributed with the CUDA Toolkit. The `--verbose` flag and its output are documented public features, not internal debug information. 2. The verbose output provides valuable insights for users. A new `SerializedObject` class is used to carry the metadata alongside the binary when returning from `serializeObject`.
15 lines
543 B
MLIR
15 lines
543 B
MLIR
// RUN: mlir-opt %s --gpu-module-to-binary="format=%gpu_compilation_format opts=--verbose" \
|
|
// RUN: | FileCheck %s
|
|
|
|
module attributes {gpu.container_module} {
|
|
// CHECK-LABEL: gpu.binary @kernel_module
|
|
// CHECK: properties = {{{.*}}ISACompilerLog = {{.*}}
|
|
gpu.module @kernel_module [#nvvm.target<chip = "sm_70", flags = {"collect-compiler-diagnostics"}>] {
|
|
llvm.func @kernel(%arg0: i32, %arg1: !llvm.ptr,
|
|
%arg2: !llvm.ptr, %arg3: i64, %arg4: i64,
|
|
%arg5: i64) attributes {gpu.kernel} {
|
|
llvm.return
|
|
}
|
|
}
|
|
}
|