15#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
16#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
69 return SystemOneAddressSpaceSSID;
73 return AgentOneAddressSpaceSSID;
77 return WorkgroupOneAddressSpaceSSID;
81 return WavefrontOneAddressSpaceSSID;
85 return SingleThreadOneAddressSpaceSSID;
89 return ClusterOneAddressSpaceSSID;
124 auto GetLevelAndOneAS =
125 [&](
SyncScope::ID SSID) -> std::optional<std::pair<unsigned, bool>> {
128 return std::make_pair(
I,
false);
130 return std::make_pair(
I,
true);
135 auto AI = GetLevelAndOneAS(
A);
136 auto BI = GetLevelAndOneAS(
B);
140 unsigned Level = std::max(AI->first, BI->first);
142 return (AI->second && BI->second) ? OneAS[Level] : CrossAS[Level];
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
SyncScope::ID getWorkgroupSSID() const
AMDGPUMachineModuleInfo(const MachineModuleInfo &MMI)
SyncScope::ID getWavefrontSSID() const
SyncScope::ID getAgentSSID() const
SyncScope::ID getClusterOneAddressSpaceSSID() const
SyncScope::ID getClusterSSID() const
SyncScope::ID getAgentOneAddressSpaceSSID() const
SyncScope::ID getSingleThreadOneAddressSpaceSSID() const
SyncScope::ID getWavefrontOneAddressSpaceSSID() const
std::optional< SyncScope::ID > getMergedSyncScopeID(SyncScope::ID A, SyncScope::ID B) const
In AMDGPU, synchronization scopes are inclusive: a larger scope is inclusive of a smaller one (e....
SyncScope::ID getSystemOneAddressSpaceSSID() const
SyncScope::ID getWorkgroupOneAddressSpaceSSID() const
MachineModuleInfoELF(const MachineModuleInfo &)
This class contains meta information specific to a module.
@ SingleThread
Synchronized with respect to signal handlers executing in the same thread.
@ System
Synchronized with respect to all concurrently executing threads.
This is an optimization pass for GlobalISel generic memory operations.
auto enumerate(FirstRange &&First, RestRanges &&...Rest)
Given two or more input ranges, returns a new range whose values are tuples (A, B,...