[llvm] MCExpr-ify amd_kernel_code_t (PR #91587)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon May 20 05:10:13 PDT 2024
================
@@ -1218,39 +1219,36 @@ unsigned getAllocatedNumVGPRBlocks(const MCSubtargetInfo *STI,
}
} // end namespace IsaInfo
-void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
+void initDefaultAMDKernelCodeT(AMDGPUMCKernelCodeT &KernelCode,
const MCSubtargetInfo *STI) {
IsaVersion Version = getIsaVersion(STI->getCPU());
-
- memset(&Header, 0, sizeof(Header));
-
- Header.amd_kernel_code_version_major = 1;
- Header.amd_kernel_code_version_minor = 2;
- Header.amd_machine_kind = 1; // AMD_MACHINE_KIND_AMDGPU
- Header.amd_machine_version_major = Version.Major;
- Header.amd_machine_version_minor = Version.Minor;
- Header.amd_machine_version_stepping = Version.Stepping;
- Header.kernel_code_entry_byte_offset = sizeof(Header);
- Header.wavefront_size = 6;
+ KernelCode.amd_kernel_code_version_major = 1;
+ KernelCode.amd_kernel_code_version_minor = 2;
+ KernelCode.amd_machine_kind = 1; // AMD_MACHINE_KIND_AMDGPU
+ KernelCode.amd_machine_version_major = Version.Major;
+ KernelCode.amd_machine_version_minor = Version.Minor;
+ KernelCode.amd_machine_version_stepping = Version.Stepping;
+ KernelCode.kernel_code_entry_byte_offset = sizeof(amd_kernel_code_t);
+ KernelCode.wavefront_size = 6;
// If the code object does not support indirect functions, then the value must
// be 0xffffffff.
- Header.call_convention = -1;
+ KernelCode.call_convention = -1;
// These alignment values are specified in powers of two, so alignment =
// 2^n. The minimum alignment is 2^4 = 16.
- Header.kernarg_segment_alignment = 4;
- Header.group_segment_alignment = 4;
- Header.private_segment_alignment = 4;
+ KernelCode.kernarg_segment_alignment = 4;
+ KernelCode.group_segment_alignment = 4;
+ KernelCode.private_segment_alignment = 4;
if (Version.Major >= 10) {
if (STI->getFeatureBits().test(FeatureWavefrontSize32)) {
- Header.wavefront_size = 5;
- Header.code_properties |= AMD_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32;
+ KernelCode.wavefront_size = 5;
----------------
arsenm wrote:
this can just move up to the first write of wavefront_size
https://github.com/llvm/llvm-project/pull/91587
More information about the llvm-commits
mailing list