Home | History | Annotate | Download | only in TargetInfo
      1 //===-- TargetInfo/AMDGPUTargetInfo.cpp - TargetInfo for AMDGPU -----------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 /// \file
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "AMDGPUTargetMachine.h"
     15 #include "llvm/Support/TargetRegistry.h"
     16 
     17 using namespace llvm;
     18 
     19 /// The target which supports all AMD GPUs.  This will eventually
     20 ///         be deprecated and there will be a R600 target and a GCN target.
     21 Target &llvm::getTheAMDGPUTarget() {
     22   static Target TheAMDGPUTarget;
     23   return TheAMDGPUTarget;
     24 }
     25 /// The target for GCN GPUs
     26 Target &llvm::getTheGCNTarget() {
     27   static Target TheGCNTarget;
     28   return TheGCNTarget;
     29 }
     30 
     31 /// Extern function to initialize the targets for the AMDGPU backend
     32 extern "C" void LLVMInitializeAMDGPUTargetInfo() {
     33   RegisterTarget<Triple::r600, false> R600(getTheAMDGPUTarget(), "r600",
     34                                            "AMD GPUs HD2XXX-HD6XXX", "AMDGPU");
     35   RegisterTarget<Triple::amdgcn, false> GCN(getTheGCNTarget(), "amdgcn",
     36                                             "AMD GCN GPUs", "AMDGPU");
     37 }
     38