aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2015-06-26 21:58:31 +0000
committerTom Stellard <thomas.stellard@amd.com>2015-06-26 21:58:31 +0000
commitff7416ba060d144a2da317af32ac880c7abb2c22 (patch)
tree0a08892c73a17ed3218508e6590b2f04ec88b937 /llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
parent833ae4faddae5ab7469945d6d1feb260342d12a3 (diff)
downloadllvm-ff7416ba060d144a2da317af32ac880c7abb2c22.zip
llvm-ff7416ba060d144a2da317af32ac880c7abb2c22.tar.gz
llvm-ff7416ba060d144a2da317af32ac880c7abb2c22.tar.bz2
AMDGPU/SI: Update amd_kernel_code_t definition and add assembler support
Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10772 llvm-svn: 240839
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
index 220de5c..b76b400 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
@@ -33,5 +33,28 @@ IsaVersion getIsaVersion(const FeatureBitset &Features) {
return {0, 0, 0};
}
+void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
+ const FeatureBitset &Features) {
+
+ IsaVersion ISA = getIsaVersion(Features);
+
+ memset(&Header, 0, sizeof(Header));
+
+ Header.amd_kernel_code_version_major = 1;
+ Header.amd_kernel_code_version_minor = 0;
+ Header.amd_machine_kind = 1; // AMD_MACHINE_KIND_AMDGPU
+ Header.amd_machine_version_major = ISA.Major;
+ Header.amd_machine_version_minor = ISA.Minor;
+ Header.amd_machine_version_stepping = ISA.Stepping;
+ Header.kernel_code_entry_byte_offset = sizeof(Header);
+ // wavefront_size is specified as a power of 2: 2^6 = 64 threads.
+ Header.wavefront_size = 6;
+ // 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;
+}
+
} // End namespace AMDGPU
} // End namespace llvm