[all-commits] [llvm/llvm-project] 24a523: AMDGPU: Introduce amdgpu triple arch (#206480)

Matt Arsenault via All-commits all-commits at lists.llvm.org
Thu Jul 9 04:44:02 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 24a5231188bf92e2ce9fe38e29e4cb75bab51414
      https://github.com/llvm/llvm-project/commit/24a5231188bf92e2ce9fe38e29e4cb75bab51414
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-07-09 (Thu, 09 Jul 2026)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/lib/Basic/OffloadArch.cpp
    M clang/lib/Basic/Targets.cpp
    M clang/lib/Basic/Targets/SPIR.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Sema/SemaAMDGPU.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/Driver/amdgpu-toolchain.c
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M flang/include/flang/Tools/TargetSetup.h
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M lld/ELF/InputFiles.cpp
    M lldb/source/Utility/ArchSpec.cpp
    M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
    M lldb/unittests/Utility/ArchSpecTest.cpp
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/include/llvm/Object/ELFObjectFile.h
    M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
    M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/Frontend/OpenMP/OMPContext.cpp
    M llvm/lib/Object/RelocationResolver.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
    M llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
    M llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp
    M llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h
    M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
    M llvm/lib/TargetParser/TargetDataLayout.cpp
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/lib/Transforms/IPO/ExpandVariadics.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    A llvm/test/CodeGen/AMDGPU/amdgpu-triple.ll
    M llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
    M llvm/test/CodeGen/AMDGPU/loop-prefetch.ll
    A llvm/test/CodeGen/AMDGPU/march-amdgcn-legacy-arch-name.ll
    A llvm/test/CodeGen/AMDGPU/target-id-from-triple.ll
    A llvm/test/CodeGen/AMDGPU/validate-subtarget-subarch-empty-module.ll
    A llvm/test/CodeGen/AMDGPU/validate-subtarget-subarch.ll
    M llvm/test/CodeGen/MIR/AMDGPU/init-whole.wave.ll
    A llvm/test/Linker/Inputs/amdgpu-amdpal-no-subarch.ll
    A llvm/test/Linker/Inputs/amdgpu-no-subarch.ll
    A llvm/test/Linker/Inputs/amdgpu10-subarch.ll
    A llvm/test/Linker/Inputs/amdgpu9.00-subarch.ll
    A llvm/test/Linker/amdgpu-triple-os-mismatch.ll
    A llvm/test/Linker/amdgpu-triple-subarch.ll
    M llvm/test/MC/AMDGPU/amd-amdgpu-isa-malformed-target-id.s
    A llvm/test/MC/AMDGPU/amdgcn-target-directive-subarch-cpu-field.s
    M llvm/test/MC/AMDGPU/amdgcn-target-malformed-target-id.s
    M llvm/test/MC/AMDGPU/amdgcn_target_directive_from_eflags.s
    A llvm/test/MC/AMDGPU/arch-amdgcn-legacy-arch-name.s
    M llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
    M llvm/test/Object/AMDGPU/objdump.s
    A llvm/test/tools/llvm-objdump/AMDGPU/arch-amdgcn-legacy-arch-name.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s
    A llvm/test/tools/llvm-objdump/ELF/AMDGPU/subarch-triple.s
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll
    M llvm/test/tools/llvm-readobj/ELF/AMDGPU/elf-headers.test
    M llvm/tools/llvm-objdump/llvm-objdump.cpp
    M llvm/unittests/Object/ELFObjectFileTest.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp
    M llvm/unittests/TargetParser/TripleTest.cpp
    M llvm/utils/UpdateTestChecks/asm.py
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp

  Log Message:
  -----------
  AMDGPU: Introduce amdgpu triple arch (#206480)

Move towards using the triple for representing incompatible
ISA changes. Use the subarch field to represent the various
incompatible cases. Previously we pretended a single triple arch
was universally compatible, and only distinguished by function
level subtargets. Move towards using distinct triples to enable
more sophisticated toolchain handling in the future, like proper
runtime library linking.

Introduce a new subarch per unique ISA, but also introduce
"major subarches" which are compatible by a set of covered
minor ISA versions. These map to the existing generic targets.
There are a few placeholder subarch entries, which currently
have missing backing generic arches for codegen.

This should be the preferred triple arch name going forward,
but is treated as an alias of amdgcn. This does not yet change
clang to emit the new triples.

Part of #154925



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list