diff options
Diffstat (limited to 'contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp')
-rw-r--r-- | contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp b/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp index 2112135..9908fc0 100644 --- a/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp +++ b/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp @@ -18,13 +18,20 @@ using namespace llvm; /// \brief The target which suports all AMD GPUs. This will eventually /// be deprecated and there will be a R600 target and a GCN target. -Target llvm::TheAMDGPUTarget; +Target &llvm::getTheAMDGPUTarget() { + static Target TheAMDGPUTarget; + return TheAMDGPUTarget; +} /// \brief The target for GCN GPUs -Target llvm::TheGCNTarget; +Target &llvm::getTheGCNTarget() { + static Target TheGCNTarget; + return TheGCNTarget; +} /// \brief Extern function to initialize the targets for the AMDGPU backend extern "C" void LLVMInitializeAMDGPUTargetInfo() { - RegisterTarget<Triple::r600, false> - R600(TheAMDGPUTarget, "r600", "AMD GPUs HD2XXX-HD6XXX"); - RegisterTarget<Triple::amdgcn, false> GCN(TheGCNTarget, "amdgcn", "AMD GCN GPUs"); + RegisterTarget<Triple::r600, false> R600(getTheAMDGPUTarget(), "r600", + "AMD GPUs HD2XXX-HD6XXX"); + RegisterTarget<Triple::amdgcn, false> GCN(getTheGCNTarget(), "amdgcn", + "AMD GCN GPUs"); } |