xref: /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1  //===--- AMDGPUMachineModuleInfo.cpp ----------------------------*- C++ -*-===//
2  //
3  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  // See https://llvm.org/LICENSE.txt for license information.
5  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  //
7  //===----------------------------------------------------------------------===//
8  //
9  /// \file
10  /// AMDGPU Machine Module Info.
11  ///
12  //
13  //===----------------------------------------------------------------------===//
14  
15  #include "AMDGPUMachineModuleInfo.h"
16  #include "llvm/IR/Module.h"
17  #include "llvm/MC/MCSymbol.h"
18  
19  namespace llvm {
20  
AMDGPUMachineModuleInfo(const MachineModuleInfo & MMI)21  AMDGPUMachineModuleInfo::AMDGPUMachineModuleInfo(const MachineModuleInfo &MMI)
22      : MachineModuleInfoELF(MMI) {
23    LLVMContext &CTX = MMI.getModule()->getContext();
24    AgentSSID = CTX.getOrInsertSyncScopeID("agent");
25    WorkgroupSSID = CTX.getOrInsertSyncScopeID("workgroup");
26    WavefrontSSID = CTX.getOrInsertSyncScopeID("wavefront");
27    SystemOneAddressSpaceSSID =
28        CTX.getOrInsertSyncScopeID("one-as");
29    AgentOneAddressSpaceSSID =
30        CTX.getOrInsertSyncScopeID("agent-one-as");
31    WorkgroupOneAddressSpaceSSID =
32        CTX.getOrInsertSyncScopeID("workgroup-one-as");
33    WavefrontOneAddressSpaceSSID =
34        CTX.getOrInsertSyncScopeID("wavefront-one-as");
35    SingleThreadOneAddressSpaceSSID =
36        CTX.getOrInsertSyncScopeID("singlethread-one-as");
37  }
38  
39  } // end namespace llvm
40