15#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
16#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINEMODULEINFO_H
51 std::optional<uint8_t>
99 return SystemOneAddressSpaceSSID;
103 return AgentOneAddressSpaceSSID;
107 return WorkgroupOneAddressSpaceSSID;
111 return WavefrontOneAddressSpaceSSID;
115 return SingleThreadOneAddressSpaceSSID;
128 const auto &AIO = getSyncScopeInclusionOrdering(
A);
129 const auto &BIO = getSyncScopeInclusionOrdering(
B);
133 bool IsAOneAddressSpace = isOneAddressSpace(
A);
134 bool IsBOneAddressSpace = isOneAddressSpace(
B);
136 return *AIO >= *BIO &&
137 (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.