aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Huber <huberjn@outlook.com>2024-07-22 07:07:51 -0500
committerGitHub <noreply@github.com>2024-07-22 07:07:51 -0500
commitf39bd0a24e8aaa55c957c179607c071a86590ec1 (patch)
tree9a62b16d7423573c302eb717fb2e60ee1eb3fca4
parentc1622cae10c953f327c7ef24d57508eebd84f244 (diff)
downloadllvm-f39bd0a24e8aaa55c957c179607c071a86590ec1.zip
llvm-f39bd0a24e8aaa55c957c179607c071a86590ec1.tar.gz
llvm-f39bd0a24e8aaa55c957c179607c071a86590ec1.tar.bz2
[AMDGPU] Do not print `kernel-resource-usage` information on non-kernels (#99720)
Summary: This pass is used to get helpful information about the kernel resources without needing to insepct the binary. However, it currently prints on every function. These values will always be zero, so it's just spam on the terminal, at best an indication that a function wasn't internalized / optimized out. This patch makes it only print for kernels to make it more useful in practice.
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp4
-rw-r--r--llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll21
2 files changed, 6 insertions, 19 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
index 3154dc6..e64e28e0 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -1487,6 +1487,10 @@ void AMDGPUAsmPrinter::emitResourceUsageRemarks(
if (!Ctx.getDiagHandlerPtr()->isAnalysisRemarkEnabled(Name))
return;
+ // Currently non-kernel functions have no resources to emit.
+ if (!isEntryFunctionCC(MF.getFunction().getCallingConv()))
+ return;
+
auto EmitResourceUsageRemark = [&](StringRef RemarkName,
StringRef RemarkLabel, auto Argument) {
// Add an indent for every line besides the line with the kernel name. This
diff --git a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
index a640ac9..002de8b 100644
--- a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
+++ b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
@@ -113,16 +113,7 @@ define amdgpu_kernel void @test_kernel() !dbg !3 {
ret void
}
-; STDERR: remark: foo.cl:42:0: Function Name: test_func
-; STDERR-NEXT: remark: foo.cl:42:0: SGPRs: 0
-; STDERR-NEXT: remark: foo.cl:42:0: VGPRs: 0
-; STDERR-NEXT: remark: foo.cl:42:0: AGPRs: 0
-; STDERR-NEXT: remark: foo.cl:42:0: ScratchSize [bytes/lane]: 0
-; STDERR-NEXT: remark: foo.cl:42:0: Dynamic Stack: False
-; STDERR-NEXT: remark: foo.cl:42:0: Occupancy [waves/SIMD]: 0
-; STDERR-NEXT: remark: foo.cl:42:0: SGPRs Spill: 0
-; STDERR-NEXT: remark: foo.cl:42:0: VGPRs Spill: 0
-; STDERR-NOT: LDS Size
+; STDERR-NOT: test_func
define void @test_func() !dbg !6 {
call void asm sideeffect "; clobber v17", "~{v17}"()
call void asm sideeffect "; clobber s11", "~{s11}"()
@@ -144,15 +135,7 @@ define amdgpu_kernel void @empty_kernel() !dbg !7 {
ret void
}
-; STDERR: remark: foo.cl:52:0: Function Name: empty_func
-; STDERR-NEXT: remark: foo.cl:52:0: SGPRs: 0
-; STDERR-NEXT: remark: foo.cl:52:0: VGPRs: 0
-; STDERR-NEXT: remark: foo.cl:52:0: AGPRs: 0
-; STDERR-NEXT: remark: foo.cl:52:0: ScratchSize [bytes/lane]: 0
-; STDERR-NEXT: remark: foo.cl:52:0: Dynamic Stack: False
-; STDERR-NEXT: remark: foo.cl:52:0: Occupancy [waves/SIMD]: 0
-; STDERR-NEXT: remark: foo.cl:52:0: SGPRs Spill: 0
-; STDERR-NEXT: remark: foo.cl:52:0: VGPRs Spill: 0
+; STDERR-NOT: empty_func
define void @empty_func() !dbg !8 {
ret void
}