]> granicus.if.org Git - llvm/commitdiff
AMDGPU: Set call_convention bit in kernel_code_t
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 25 Jan 2017 20:21:57 +0000 (20:21 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 25 Jan 2017 20:21:57 +0000 (20:21 +0000)
According to the documentation this is supposed to be -1
if indirect calls are not supported.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293081 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
test/CodeGen/AMDGPU/hsa.ll
test/MC/AMDGPU/hsa-exp.s
test/MC/AMDGPU/hsa.s

index a24c44c8eb3f6d4fb0dabd80b15d301e898a721b..821f4e29ac71a09f698e5b3b7bfc9529b927c1e2 100644 (file)
@@ -127,6 +127,11 @@ void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
   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;
+
+  // If the code object does not support indirect functions, then the value must
+  // be 0xffffffff.
+  Header.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;
index 12c15441c0f5f0c7b232f5e701f62e92cb07cd07..972fbd66ef3786da181f04670370c62b430cb84b 100644 (file)
@@ -45,6 +45,8 @@
 ; HSA: .amd_kernel_code_t
 ; HSA: enable_sgpr_private_segment_buffer = 1
 ; HSA: enable_sgpr_kernarg_segment_ptr = 1
+; HSA: wavefront_size = 6
+; HSA: call_convention = -1
 ; HSA: .end_amd_kernel_code_t
 ; HSA: s_load_dwordx2 s[{{[0-9]+:[0-9]+}}], s[4:5], 0x0
 
index 488afc5b400f9ca83ac9c128f7598c9af1c7bd0d..cc5dfe82ff493491fb6630aa72e53d0f994cb016 100644 (file)
@@ -124,6 +124,6 @@ amd_kernel_code_t_minimal:
 // ASM:        group_segment_alignment = 4
 // ASM:        private_segment_alignment = 4
 // ASM:        wavefront_size = 6
-// ASM:        call_convention = 0
+// ASM:        call_convention = -1
 // ASM:        runtime_loader_kernel_symbol = 0
 // ASM: .end_amd_kernel_code_t
index b428c817ea67b655b40f2e7f37d6a2c78bb7896b..21083f3915db2dff9fec468a2359400d1fb54ec2 100644 (file)
@@ -273,6 +273,6 @@ amd_kernel_code_t_minimal:
 // ASM:        group_segment_alignment = 4
 // ASM:        private_segment_alignment = 4
 // ASM:        wavefront_size = 6
-// ASM:        call_convention = 0
+// ASM:        call_convention = -1
 // ASM:        runtime_loader_kernel_symbol = 0
 // ASM: .end_amd_kernel_code_t