diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index 3154dc6fe433d..e64e28e01d3d1 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 a640ac985ade4..002de8bb4eb51 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 }