15#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
16#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
52 std::optional<uint8_t>
100 return SystemOneAddressSpaceSSID;
104 return AgentOneAddressSpaceSSID;
108 return WorkgroupOneAddressSpaceSSID;
112 return WavefrontOneAddressSpaceSSID;
116 return SingleThreadOneAddressSpaceSSID;
129 const auto &AIO = getSyncScopeInclusionOrdering(
A);
130 const auto &BIO = getSyncScopeInclusionOrdering(
B);
134 bool IsAOneAddressSpace = isOneAddressSpace(
A);
135 bool IsBOneAddressSpace = isOneAddressSpace(
B);
137 return *AIO >= *BIO &&
138 (IsAOneAddressSpace == IsBOneAddressSpace || !IsAOneAddressSpace);
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
SyncScope::ID getWorkgroupSSID() const
SyncScope::ID getWavefrontSSID() const
SyncScope::ID getAgentSSID() const
std::optional< bool > isSyncScopeInclusion(SyncScope::ID A, SyncScope::ID B) const
In AMDGPU target synchronization scopes are inclusive, meaning a larger synchronization scope is incl...
SyncScope::ID getAgentOneAddressSpaceSSID() const
SyncScope::ID getSingleThreadOneAddressSpaceSSID() const
SyncScope::ID getWavefrontOneAddressSpaceSSID() const
SyncScope::ID getSystemOneAddressSpaceSSID() const
SyncScope::ID getWorkgroupOneAddressSpaceSSID() const
MachineModuleInfoELF - This is a MachineModuleInfoImpl implementation for ELF targets.
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.