10b57cec5SDimitry Andric //===-- TargetInfo/AMDGPUTargetInfo.cpp - TargetInfo for AMDGPU -----------===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric // 90b57cec5SDimitry Andric /// \file 100b57cec5SDimitry Andric // 110b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric #include "TargetInfo/AMDGPUTargetInfo.h" 14349cc55cSDimitry Andric #include "llvm/MC/TargetRegistry.h" 150b57cec5SDimitry Andric 160b57cec5SDimitry Andric using namespace llvm; 170b57cec5SDimitry Andric 18*06c3fb27SDimitry Andric /// The target for R600 GPUs. getTheR600Target()19*06c3fb27SDimitry AndricTarget &llvm::getTheR600Target() { 200b57cec5SDimitry Andric static Target TheAMDGPUTarget; 210b57cec5SDimitry Andric return TheAMDGPUTarget; 220b57cec5SDimitry Andric } 23*06c3fb27SDimitry Andric 24*06c3fb27SDimitry Andric /// The target for GCN GPUs. getTheGCNTarget()250b57cec5SDimitry AndricTarget &llvm::getTheGCNTarget() { 260b57cec5SDimitry Andric static Target TheGCNTarget; 270b57cec5SDimitry Andric return TheGCNTarget; 280b57cec5SDimitry Andric } 290b57cec5SDimitry Andric 300b57cec5SDimitry Andric /// Extern function to initialize the targets for the AMDGPU backend LLVMInitializeAMDGPUTargetInfo()31480093f4SDimitry Andricextern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAMDGPUTargetInfo() { 32*06c3fb27SDimitry Andric RegisterTarget<Triple::r600, false> R600(getTheR600Target(), "r600", 330b57cec5SDimitry Andric "AMD GPUs HD2XXX-HD6XXX", "AMDGPU"); 340b57cec5SDimitry Andric RegisterTarget<Triple::amdgcn, false> GCN(getTheGCNTarget(), "amdgcn", 350b57cec5SDimitry Andric "AMD GCN GPUs", "AMDGPU"); 360b57cec5SDimitry Andric } 37