]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
amdgcn: fix GFX10/GFX11 VGPR counts
authorAndrew Stubbs <ams@baylibre.com>
Tue, 9 Sep 2025 13:48:16 +0000 (13:48 +0000)
committerAndrew Stubbs <ams@baylibre.com>
Tue, 9 Sep 2025 16:43:21 +0000 (16:43 +0000)
The previous definition had all the GFX11 register counts doubled to fix a bug
that was encountered in early testing.  This seems to have been a
misunderstanding of the problem (which is no longer reproducible).

gcc/ChangeLog:

* config/gcn/gcn-devices.def: Correct the Max ISA VGPRs counts for
GFX10 and GFX11 devices.
* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Remove the wave64
VGPR count fudge.

gcc/config/gcn/gcn-devices.def
gcc/config/gcn/gcn.cc

index 426acf0cb7a51cb9ca7fa0a15c6d7724ddf0b822..b27385bc565e41a744770869841bfb9a4a7ea94a 100644 (file)
@@ -222,7 +222,7 @@ GCN_DEVICE(gfx1030, GFX1030, 0x36, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -233,7 +233,7 @@ GCN_DEVICE(gfx1031, GFX1031, 0x37, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -244,7 +244,7 @@ GCN_DEVICE(gfx1032, GFX1032, 0x38, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -255,7 +255,7 @@ GCN_DEVICE(gfx1033, GFX1033, 0x39, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -266,7 +266,7 @@ GCN_DEVICE(gfx1034, GFX1034, 0x3e, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -277,7 +277,7 @@ GCN_DEVICE(gfx1035, GFX1035, 0x3d, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -288,7 +288,7 @@ GCN_DEVICE(gfx1036, GFX1036, 0x45, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX10,
           /* Generic Name */ GFX10_3_GENERIC
@@ -299,7 +299,7 @@ GCN_DEVICE(gfx10-3-generic, GFX10_3_GENERIC, 0x053, ISA_RDNA2,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 512, /* 512 SIMD32 = 256 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 1,
           /* Architecture Family */ GFX10,
           /* Generic Name */ NONE
@@ -312,7 +312,7 @@ GCN_DEVICE(gfx1100, GFX1100, 0x41, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536, /* 1536 SIMD32 = 768 wavefrontsize64.  */
+          /* Max ISA VGPRs */ 768,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -323,7 +323,7 @@ GCN_DEVICE(gfx1101, GFX1101, 0x46, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 768,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -334,7 +334,7 @@ GCN_DEVICE(gfx1102, GFX1102, 0x47, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -345,7 +345,7 @@ GCN_DEVICE(gfx1103, GFX1103, 0x44, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -356,7 +356,7 @@ GCN_DEVICE(gfx1150, GFX1150, 0x43, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -367,7 +367,7 @@ GCN_DEVICE(gfx1151, GFX1151, 0x4a, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 768,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -378,7 +378,7 @@ GCN_DEVICE(gfx1152, GFX1152, 0x55, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -389,7 +389,7 @@ GCN_DEVICE(gfx1153, GFX1153, 0x58, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 0,  /* non-generic */
           /* Architecture Family */ GFX11,
           /* Generic Name */ GFX11_GENERIC
@@ -400,7 +400,7 @@ GCN_DEVICE(gfx11-generic, GFX11_GENERIC, 0x054, ISA_RDNA3,
           /* SRAM_ECC default */ HSACO_ATTR_UNSUPPORTED,
           /* WAVE64 mode */ HSACO_ATTR_ON,
           /* CU mode */ HSACO_ATTR_ON,
-          /* Max ISA VGPRs */ 1536,
+          /* Max ISA VGPRs */ 512,
           /* Generic code obj version */ 1,
           /* Architecture Family */ GFX11,
           /* Generic Name */ NONE
index 665b05321e1dcb5852606a323cd9c7d544692201..df1c1a5b19ba0af07038d760a02d52296c2c84b3 100644 (file)
@@ -6787,10 +6787,6 @@ gcn_hsa_declare_function_name (FILE *file, const char *name,
        avgpr = MAX_NORMAL_AVGPR_COUNT;
     }
 
-  /* SIMD32 devices count double in wavefront64 mode.  */
-  if (TARGET_WAVE64_COMPAT)
-    vgpr *= 2;
-
   /* Round up to the allocation block size.  */
   int vgpr_block_size = TARGET_VGPR_GRANULARITY;
   if (vgpr % vgpr_block_size)