Skip to content

Commit 88268e3

Browse files
committedMar 20, 2019
AMDHSA: Fix COMPUTE_PGM_RSRC2.USER_SGPR calculation when parsing ISA assembly
It must match https://llvm.org/docs/AMDGPUUsage.html#initial-kernel-execution-state Differential Revision: https://reviews.llvm.org/D59570 llvm-svn: 356603
1 parent 61914dc commit 88268e3

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed
 

‎llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -2958,37 +2958,37 @@ bool AMDGPUAsmParser::ParseDirectiveAMDHSAKernel() {
29582958
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29592959
KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER,
29602960
Val, ValRange);
2961-
UserSGPRCount++;
2961+
UserSGPRCount += 4;
29622962
} else if (ID == ".amdhsa_user_sgpr_dispatch_ptr") {
29632963
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29642964
KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR, Val,
29652965
ValRange);
2966-
UserSGPRCount++;
2966+
UserSGPRCount += 2;
29672967
} else if (ID == ".amdhsa_user_sgpr_queue_ptr") {
29682968
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29692969
KERNEL_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR, Val,
29702970
ValRange);
2971-
UserSGPRCount++;
2971+
UserSGPRCount += 2;
29722972
} else if (ID == ".amdhsa_user_sgpr_kernarg_segment_ptr") {
29732973
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29742974
KERNEL_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR,
29752975
Val, ValRange);
2976-
UserSGPRCount++;
2976+
UserSGPRCount += 2;
29772977
} else if (ID == ".amdhsa_user_sgpr_dispatch_id") {
29782978
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29792979
KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID, Val,
29802980
ValRange);
2981-
UserSGPRCount++;
2981+
UserSGPRCount += 2;
29822982
} else if (ID == ".amdhsa_user_sgpr_flat_scratch_init") {
29832983
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29842984
KERNEL_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT, Val,
29852985
ValRange);
2986-
UserSGPRCount++;
2986+
UserSGPRCount += 2;
29872987
} else if (ID == ".amdhsa_user_sgpr_private_segment_size") {
29882988
PARSE_BITS_ENTRY(KD.kernel_code_properties,
29892989
KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE,
29902990
Val, ValRange);
2991-
UserSGPRCount++;
2991+
UserSGPRCount += 1;
29922992
} else if (ID == ".amdhsa_system_sgpr_private_segment_wavefront_offset") {
29932993
PARSE_BITS_ENTRY(
29942994
KD.compute_pgm_rsrc2,

‎llvm/test/MC/AMDGPU/hsa-v3.s

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
// OBJDUMP-NEXT: 0040 01000000 01000000 00000000 00000000
3535
// OBJDUMP-NEXT: 0050 00000000 00000000 00000000 00000000
3636
// OBJDUMP-NEXT: 0060 00000000 00000000 00000000 00000000
37-
// OBJDUMP-NEXT: 0070 c2500104 0f0f007f 7f000000 00000000
37+
// OBJDUMP-NEXT: 0070 c2500104 1f0f007f 7f000000 00000000
3838
// special_sgpr
3939
// OBJDUMP-NEXT: 0080 00000000 00000000 00000000 00000000
4040
// OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000

0 commit comments

Comments
 (0)
Please sign in to comment.