[AMDGPU] Fix compilation failure when IR contains comdat

Remove a useless SwitchSection which also causes compilation failure
when IR contains comdat.

The SwitchSection is useless because the current section is already
correct text section for the function therefore no need to switch.

It causes compilation failure for comdat because functions with comdat
has specific text section, not the default .text section.

Since HIP uses comdat, this bug caused failures for HIP.

Differential Revision: https://reviews.llvm.org/D46770

llvm-svn: 332137
This commit is contained in:
Yaxun Liu 2018-05-11 20:40:14 +00:00
parent 3ee2a6bd5c
commit deba150c27
2 changed files with 19 additions and 2 deletions

View File

@ -197,8 +197,6 @@ void AMDGPUAsmPrinter::EmitFunctionBodyStart() {
amd_kernel_code_t KernelCode;
if (STM.isAmdCodeObjectV2(*MF)) {
getAmdKernelCode(KernelCode, CurrentProgramInfo, *MF);
OutStreamer->SwitchSection(getObjFileLowering().getTextSection());
getTargetStreamer()->EmitAMDKernelCodeT(KernelCode);
}

View File

@ -0,0 +1,19 @@
; RUN: llc -mtriple amdgcn-amd-amdhsa -filetype=obj <%s \
; RUN: | llvm-readobj -symbols - | FileCheck %s
; CHECK: Name: func1
; CHECK: Section: .text.func1
; CHECK: Name: func2
; CHECK: Section: .text.func2
$func1 = comdat any
$func2 = comdat any
define amdgpu_kernel void @func1() local_unnamed_addr comdat {
ret void
}
define amdgpu_kernel void @func2() local_unnamed_addr comdat {
ret void
}