[llvm] [AMDGPU] More accurately account for AVGPR pressure (PR #150711)
Lucas Ramirez via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 7 09:16:22 PDT 2025
================
@@ -0,0 +1,481 @@
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -run-pass=machine-scheduler --debug-only=machine-scheduler -o - %s 2>&1 | FileCheck %s
+# REQUIRES: asserts
+
+--- |
+ define void @avgpr_rp_occ1() #0 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ2() #1 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ3() #2 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ4() #3 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ5() #4 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ6() #5 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ7() #6 {
+ entry:
+ unreachable
+ }
+
+ define void @avgpr_rp_occ8() #7 {
+ entry:
+ unreachable
+ }
+
+
+ define void @vgpr_rp_occ1() #0 {
+ entry:
+ unreachable
+ }
+
+ define void @vgpr_rp_occ2() #1 {
+ entry:
+ unreachable
+ }
+
+ define void @vgpr_rp_occ3() #2 {
+ entry:
+ unreachable
+ }
+
+ attributes #0 = {"amdgpu-waves-per-eu"="1,1" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #1 = {"amdgpu-waves-per-eu"="2,2" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #2 = {"amdgpu-waves-per-eu"="3,3" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #3 = {"amdgpu-waves-per-eu"="4,4" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #4 = {"amdgpu-waves-per-eu"="5,5" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #5 = {"amdgpu-waves-per-eu"="6,6" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #6 = {"amdgpu-waves-per-eu"="7,7" "amdgpu-flat-work-group-size"="64,64"}
+ attributes #7 = {"amdgpu-waves-per-eu"="8,8" "amdgpu-flat-work-group-size"="64,64"}
+
+
+...
+
+# CHECK: avgpr_rp_occ1:%bb.0
+# CHECK: Pressure before scheduling:
+# CHECK-NEXT: Region live-ins:
+# CHECK-NEXT: Region live-in pressure: VGPRs: 0 AGPRs: 0(O8), SGPRs: 0(O10), LVGPR WT: 0, LSGPR WT: 0 -> Occ: 8
----------------
lucas-rami wrote:
Isn't maximum occupancy 10 on gfx950? Why does this report 8 for VGPRs/AGPRs (here and in other tests)?
https://github.com/llvm/llvm-project/pull/150711
More information about the llvm-commits
mailing list