30 NeededSafePoints =
true;
41 NeededSafePoints =
true;
56 ShadowStackGC() =
default;
68 UseStatepoints =
true;
72 NeededSafePoints =
false;
84 return (1 == PT->getAddressSpace());
101 UseStatepoints =
true;
105 NeededSafePoints =
false;
106 UsesMetadata =
false;
113 return (1 == PT->getAddressSpace());
123 "erlang-compatible garbage collector");
126 C(
"shadow-stack",
"Very portable GC for uncooperative code generators");
128 "an example strategy for statepoint");
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
GCStrategy describes a garbage collector algorithm's code generation requirements,...
virtual std::optional< bool > isGCManagedPointer(const Type *Ty) const
If the type specified can be reliably distinguished, returns true for pointers to GC managed location...
A static registration template.
The instances of the Type class are immutable: once they are created, they are never changed.
This is an optimization pass for GlobalISel generic memory operations.
void linkAllBuiltinGCs()
FIXME: Collector instances are not useful on their own.