diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2017-10-14 15:40:33 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2017-10-14 15:40:33 +0000 |
commit | 9c05b2bc3b848f40731d0207170f6f2d08aba9f3 (patch) | |
tree | 870c97a9b8eae7157276413090bb73dd0c5f6010 /llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | |
parent | f367c27d2d0596028fcf64a3cf1f81a9b5eff5fc (diff) | |
download | bcm5719-llvm-9c05b2bc3b848f40731d0207170f6f2d08aba9f3.tar.gz bcm5719-llvm-9c05b2bc3b848f40731d0207170f6f2d08aba9f3.zip |
AMDGPU: Add support for isa version note
- Emit NT_AMD_AMDGPU_ISA
- Add assembler parsing for isa version directive
- If isa version directive does not match command line arguments, then return error
Differential Revision: https://reviews.llvm.org/D38748
llvm-svn: 315808
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index 142543cc47e..bbe0879499e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp @@ -132,6 +132,22 @@ void AMDGPUAsmPrinter::EmitStartOfAsmFile(Module &M) { } void AMDGPUAsmPrinter::EmitEndOfAsmFile(Module &M) { + if (TM.getTargetTriple().getArch() != Triple::amdgcn) + return; + + // Emit ISA Version (NT_AMD_AMDGPU_ISA). + std::string ISAVersionString; + raw_string_ostream ISAVersionStream(ISAVersionString); + IsaInfo::streamIsaVersion(getSTI(), ISAVersionStream); + getTargetStreamer().EmitISAVersion(ISAVersionStream.str()); + + // Emit HSA Metadata (NT_AMD_AMDGPU_HSA_METADATA). + if (TM.getTargetTriple().getOS() == Triple::AMDHSA) { + HSAMetadataStream.end(); + getTargetStreamer().EmitHSAMetadata(HSAMetadataStream.getHSAMetadata()); + } + + // Emit PAL Metadata (NT_AMD_AMDGPU_PAL_METADATA). if (TM.getTargetTriple().getOS() == Triple::AMDPAL) { // Copy the PAL metadata from the map where we collected it into a vector, // then write it as a .note. @@ -142,12 +158,6 @@ void AMDGPUAsmPrinter::EmitEndOfAsmFile(Module &M) { } getTargetStreamer().EmitPALMetadata(PALMetadataVector); } - - if (TM.getTargetTriple().getOS() != Triple::AMDHSA) - return; - - HSAMetadataStream.end(); - getTargetStreamer().EmitHSAMetadata(HSAMetadataStream.getHSAMetadata()); } bool AMDGPUAsmPrinter::isBlockOnlyReachableByFallthrough( |