[PATCH] D47736: AMDHSA Code Object v3 assembler syntax update

Konstantin Zhuravlyov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 15 07:31:46 PDT 2018


kzhuravl added inline comments.


================
Comment at: lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:237
 
+  auto Info = analyzeResourceUsage(*MF);
+
----------------
Use CurrentProgramInfo instead.


================
Comment at: lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:243-244
+      *getSTI(), KernelName, getAmdhsaKernelDescriptor(*MF, CurrentProgramInfo),
+      Info.NumVGPR, Info.NumExplicitSGPR, Info.UsesVCC, Info.UsesFlatScratch,
+      hasXNACK(*getSTI()));
 
----------------
Info.NumVGPR -> CurrentProgramInfo.NumVGPRsForWavesPerEU
Info.NumExplicitSGPR -> CurrentProgramInfo. NumSGPRsForWavesPerEU - IsaInfo::getNumExtraSGPRs...
Info.UsesVCC -> CurrentProgramInfo.VCCUsed
Info.UsesFlatScratch -> CurrentProgramInfo.FlatUsed

Otherwise you are not honoring requested waves per eu.


================
Comment at: lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:1855
+    return !Error(getParser().getTok().getLoc(),
+                  ".amdgcn.next_{v,s}gpr symbols must be variable");
+  if (!Sym->getVariableValue(false)->evaluateAsAbsolute(OldCount))
----------------
Did you mean .amdgcn.next_free_{v, s}gpr?


================
Comment at: lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:1858
+    return !Error(getParser().getTok().getLoc(),
+                  ".amdgcn.next_{v,s}gpr symbols must be absolute expressions");
+
----------------
Same as above.


================
Comment at: lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:2679
+
+  if (Version.Major >= 8 && !Features.test(FeatureSGPRInitBug) && NumSGPRs > MaxAddressableNumSGPRs)
+      return OutOfRangeError(SGPRRange);
----------------
Make less than 80 chars.


================
Comment at: lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp:2802-2815
+    } else if (ID == ".amdhsa_user_sgpr_grid_workgroup_count_x") {
+      PARSE_BITS_ENTRY(KD.kernel_code_properties,
+                       KERNEL_CODE_PROPERTY_ENABLE_SGPR_GRID_WORKGROUP_COUNT_X,
+                       Val, ValRange);
+      UserSGPRCount++;
+    } else if (ID == ".amdhsa_user_sgpr_grid_workgroup_count_y") {
+      PARSE_BITS_ENTRY(KD.kernel_code_properties,
----------------
amdhsa_user_sgpr_grid_workgroup_count_x/y/z should be removed. see https://reviews.llvm.org/D48191


https://reviews.llvm.org/D47736





More information about the llvm-commits mailing list