From 1bdab4f693802e91d70dd342f5a485f67dd80e8a Mon Sep 17 00:00:00 2001 From: Nikolay Haustov Date: Fri, 6 May 2016 14:59:04 +0000 Subject: [PATCH] Revert "AMDGPU/SI: Add amdgpu_kernel calling convention. Part 2." This reverts commit 47486d52454d60cdf6becc0b2efe533c73794380. It broke calling OpenCL kernel from another kernel. llvm-svn: 268739 --- lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | 9 +-- lib/Target/AMDGPU/AMDGPUMachineFunction.h | 5 +- test/CodeGen/AMDGPU/hsa-func.ll | 61 --------------------- 3 files changed, 5 insertions(+), 70 deletions(-) delete mode 100644 test/CodeGen/AMDGPU/hsa-func.ll diff --git a/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp b/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp index 2f86e0d66fd..c824ab83ad8 100644 --- a/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp +++ b/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp @@ -13,12 +13,5 @@ AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) : LDSSize(0), ABIArgOffset(0), ScratchSize(0), - IsKernel(MF.getFunction()->getCallingConv() == llvm::CallingConv::AMDGPU_KERNEL || - MF.getFunction()->getCallingConv() == llvm::CallingConv::SPIR_KERNEL) -{ -} - -bool AMDGPUMachineFunction::isKernel() const -{ - return IsKernel; + IsKernel(true) { } diff --git a/lib/Target/AMDGPU/AMDGPUMachineFunction.h b/lib/Target/AMDGPU/AMDGPUMachineFunction.h index 247837a71f4..2ef3bf5f2fb 100644 --- a/lib/Target/AMDGPU/AMDGPUMachineFunction.h +++ b/lib/Target/AMDGPU/AMDGPUMachineFunction.h @@ -29,7 +29,10 @@ public: /// Start of implicit kernel args unsigned ABIArgOffset; - bool isKernel() const; + bool isKernel() const { + // FIXME: Assume everything is a kernel until function calls are supported. + return true; + } unsigned ScratchSize; bool IsKernel; diff --git a/test/CodeGen/AMDGPU/hsa-func.ll b/test/CodeGen/AMDGPU/hsa-func.ll deleted file mode 100644 index 4aa003265ba..00000000000 --- a/test/CodeGen/AMDGPU/hsa-func.ll +++ /dev/null @@ -1,61 +0,0 @@ -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | FileCheck --check-prefix=HSA %s -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri -mattr=-flat-for-global | FileCheck --check-prefix=HSA-CI %s -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=carrizo | FileCheck --check-prefix=HSA %s -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=carrizo -mattr=-flat-for-global | FileCheck --check-prefix=HSA-VI %s -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri -filetype=obj | llvm-readobj -symbols -s -sd | FileCheck --check-prefix=ELF %s -; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri | llvm-readobj -symbols -s -sd | FileCheck %s --check-prefix=ELF - -; The SHT_NOTE section contains the output from the .hsa_code_object_* -; directives. - -; ELF: Section { -; ELF: Name: .text -; ELF: Type: SHT_PROGBITS (0x1) -; ELF: Flags [ (0x6) -; ELF: SHF_ALLOC (0x2) -; ELF: SHF_EXECINSTR (0x4) -; ELF: } - -; ELF: SHT_NOTE -; ELF: 0000: 04000000 08000000 01000000 414D4400 -; ELF: 0010: 02000000 00000000 04000000 1B000000 - -; ELF: 0020: 03000000 414D4400 04000700 07000000 -; ELF: 0030: 00000000 00000000 414D4400 414D4447 -; ELF: 0040: 50550000 - -; ELF: Symbol { -; ELF: Name: simple -; ELF: Size: 288 -; ELF: Type: Function (0x2) -; ELF: } - -; HSA: .hsa_code_object_version 2,0 -; HSA-CI: .hsa_code_object_isa 7,0,0,"AMD","AMDGPU" -; HSA-VI: .hsa_code_object_isa 8,0,1,"AMD","AMDGPU" - -; HSA: .text - -; HSA-NOT: .amdgpu_hsa_kernel simple -; HSA: {{^}}simple: -; HSA: .amd_kernel_code_t -; HSA: enable_sgpr_private_segment_buffer = 1 -; HSA: enable_sgpr_kernarg_segment_ptr = 1 -; HSA: .end_amd_kernel_code_t -; HSA: s_load_dwordx2 s[{{[0-9]+:[0-9]+}}], s[4:5], 0x0 - -; Make sure we are setting the ATC bit: -; HSA-CI: s_mov_b32 s[[HI:[0-9]]], 0x100f000 -; On VI+ we also need to set MTYPE = 2 -; HSA-VI: s_mov_b32 s[[HI:[0-9]]], 0x1100f000 -; Make sure we generate flat store for HSA -; HSA: flat_store_dword v{{\[[0-9]+:[0-9]+\]}}, v{{[0-9]+}} - -; HSA: .Lfunc_end0: -; HSA: .size simple, .Lfunc_end0-simple - -define void @simple(i32 addrspace(1)* %out) { -entry: - store i32 0, i32 addrspace(1)* %out - ret void -}