AMDGPU: Add target id and code object v4 support
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Wed, 24 Mar 2021 15:52:10 +0000 (11:52 -0400)
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Wed, 24 Mar 2021 15:54:05 +0000 (11:54 -0400)
commitf4ace6373747a661ebdae7a14f9e510c7adfea4e
treef983a3abf1a49740789d6815aa4b6dfd0549d52c
parenteb4ad0e3e3635194c21dccdd1c52027e632d2996
AMDGPU: Add target id and code object v4 support

  - Add target id support (https://clang.llvm.org/docs/ClangOffloadBundler.html#target-id)
  - Add code object v4 support (https://llvm.org/docs/AMDGPUUsage.html#elf-code-object)
    - Add kernarg_size to kernel descriptor
    - Change trap handler ABI to no longer move queue pointer into s[0:1]
  - Cleanup ELF definitions
    - Add V2, V3, V4 suffixes to make a clear distinction for code object version
    - Consolidate note names

Differential Revision: https://reviews.llvm.org/D95638
97 files changed:
lld/test/ELF/amdgpu-abi-version.s
lld/test/ELF/lto/amdgcn-oses.ll
llvm/include/llvm/BinaryFormat/ELF.h
llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
llvm/include/llvm/MC/MCSubtargetInfo.h
llvm/include/llvm/Support/AMDGPUMetadata.h
llvm/include/llvm/Support/AMDHSAKernelDescriptor.h
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/MC/MCParser/MasmParser.cpp
llvm/lib/MC/MCSubtargetInfo.cpp
llvm/lib/ObjectYAML/ELFYAML.cpp
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
llvm/lib/Target/AMDGPU/AMDGPUPTNote.h
llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
llvm/lib/Target/AMDGPU/GCNSubtarget.h
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/SIISelLowering.h
llvm/lib/Target/AMDGPU/SIInstrInfo.td
llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp
llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h
llvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-non-entry-func.ll
llvm/test/CodeGen/AMDGPU/and.ll
llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-v3.ll
llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size.ll
llvm/test/CodeGen/AMDGPU/break-smem-soft-clauses.mir
llvm/test/CodeGen/AMDGPU/cluster-flat-loads-postra.mir
llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
llvm/test/CodeGen/AMDGPU/elf-header-flags-sramecc.ll [moved from llvm/test/CodeGen/AMDGPU/elf-header-flags-sram-ecc.ll with 53% similarity]
llvm/test/CodeGen/AMDGPU/elf-header-flags-xnack.ll
llvm/test/CodeGen/AMDGPU/elf-header-osabi.ll
llvm/test/CodeGen/AMDGPU/elf-notes.ll
llvm/test/CodeGen/AMDGPU/fabs.ll
llvm/test/CodeGen/AMDGPU/flat-scratch-reg.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-enqueue-kernel-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-hidden-args-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-absent-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-hostcall-present-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-images-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-invalid-ocl-version-1-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-invalid-ocl-version-2-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-invalid-ocl-version-3-v3.ll
llvm/test/CodeGen/AMDGPU/hsa-metadata-wavefrontsize.ll
llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
llvm/test/CodeGen/AMDGPU/hsa.ll
llvm/test/CodeGen/AMDGPU/kernarg-size.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/large-alloca-compute.ll
llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
llvm/test/CodeGen/AMDGPU/lshr.v2i16.ll
llvm/test/CodeGen/AMDGPU/s_addk_i32.ll
llvm/test/CodeGen/AMDGPU/s_mulk_i32.ll
llvm/test/CodeGen/AMDGPU/sram-ecc-default.ll
llvm/test/CodeGen/AMDGPU/stack-realign-kernel.ll
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-any.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-not-supported.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-off.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-on.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-1.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-2.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-1.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-2.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-invalid-any-off-on.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-any.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-not-supported.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-off.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-on.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/trap-abis.ll [new file with mode: 0644]
llvm/test/MC/AMDGPU/hsa-diag-v3.s
llvm/test/MC/AMDGPU/hsa-gfx10-v3.s
llvm/test/MC/AMDGPU/hsa-v3.s
llvm/test/MC/AMDGPU/hsa-v4.s [new file with mode: 0644]
llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s
llvm/test/MC/AMDGPU/isa-version-hsa.s
llvm/test/MC/AMDGPU/isa-version-pal.s
llvm/test/MC/AMDGPU/isa-version-unk.s
llvm/test/MC/AMDGPU/round-trip.s
llvm/test/Object/AMDGPU/elf-header-flags-sramecc.yaml [moved from llvm/test/Object/AMDGPU/elf-header-flags-sram-ecc.yaml with 73% similarity]
llvm/test/Object/AMDGPU/elf-header-flags-xnack.yaml
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-failure.s
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-sgpr.s
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-vgpr.s
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx9.s
llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-raw.s
llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test
llvm/test/tools/llvm-readobj/ELF/note-amd.s
llvm/tools/llvm-readobj/ELFDumper.cpp