[llvm] r226970 - R600/SI: Emit .hsa.version section for amdhsa OS

Tom Stellard tom at stellard.net
Mon Jan 26 07:56:02 PST 2015


Hi Hans,

Is this patch OK to merge to the 3.6?  It adds missing version
information required by the HSA run-time.

I am the code owner and I approve this patch.

-Tom

On Fri, Jan 23, 2015 at 11:59:08PM -0000, Tom Stellard wrote:
> Author: tstellar
> Date: Fri Jan 23 17:59:08 2015
> New Revision: 226970
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=226970&view=rev
> Log:
> R600/SI: Emit .hsa.version section for amdhsa OS
> 
> Modified:
>     llvm/trunk/lib/Target/R600/AMDGPUAsmPrinter.cpp
>     llvm/trunk/test/CodeGen/R600/hsa.ll
> 
> Modified: llvm/trunk/lib/Target/R600/AMDGPUAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDGPUAsmPrinter.cpp?rev=226970&r1=226969&r2=226970&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/R600/AMDGPUAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/R600/AMDGPUAsmPrinter.cpp Fri Jan 23 17:59:08 2015
> @@ -118,7 +118,6 @@ bool AMDGPUAsmPrinter::runOnMachineFunct
>    const AMDGPUSubtarget &STM = TM.getSubtarget<AMDGPUSubtarget>();
>    SIProgramInfo KernelInfo;
>    if (STM.isAmdHsaOS()) {
> -    OutStreamer.SwitchSection(getObjFileLowering().getTextSection());
>      getSIProgramInfo(KernelInfo, MF);
>      EmitAmdKernelCodeT(MF, KernelInfo);
>      OutStreamer.EmitCodeAlignment(2 << (MF.getAlignment() - 1));
> @@ -511,6 +510,19 @@ void AMDGPUAsmPrinter::EmitAmdKernelCode
>  
>    header.wavefront_size = STM.getWavefrontSize();
>  
> +  const MCSectionELF *VersionSection = OutContext.getELFSection(".hsa.version",
> +      ELF::SHT_PROGBITS, 0, SectionKind::getReadOnly());
> +  OutStreamer.SwitchSection(VersionSection);
> +  OutStreamer.EmitBytes(Twine("HSA Code Unit:" +
> +                        Twine(header.hsail_version_major) + "." +
> +                        Twine(header.hsail_version_minor) + ":" +
> +                        "AMD:" +
> +                        Twine(header.amd_code_version_major) + "." +
> +                        Twine(header.amd_code_version_minor) +  ":" +
> +                        "GFX8.1:0").str());
> +
> +  OutStreamer.SwitchSection(getObjFileLowering().getTextSection());
> +
>    if (isVerbose()) {
>      OutStreamer.emitRawComment("amd_code_version_major = " +
>                                 Twine(header.amd_code_version_major), false);
> 
> Modified: llvm/trunk/test/CodeGen/R600/hsa.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/R600/hsa.ll?rev=226970&r1=226969&r2=226970&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/R600/hsa.ll (original)
> +++ llvm/trunk/test/CodeGen/R600/hsa.ll Fri Jan 23 17:59:08 2015
> @@ -1,6 +1,8 @@
>  ; RUN: llc < %s -mtriple=r600--amdhsa -mcpu=kaveri | FileCheck --check-prefix=HSA %s
>  
>  ; HSA: {{^}}simple:
> +; HSA: .section        .hsa.version
> +; HSA-NEXT: .ascii  "HSA Code Unit:0.0:AMD:0.1:GFX8.1:0"
>  ; Make sure we are setting the ATC bit:
>  ; HSA: s_mov_b32 s[[HI:[0-9]]], 0x100f000
>  ; HSA: buffer_store_dword v{{[0-9]+}}, s[0:[[HI]]], 0
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list