Go to the documentation of this file.
30 NeededSafePoints =
true;
41 NeededSafePoints =
true;
56 ShadowStackGC() =
default;
68 UseStatepoints =
true;
72 NeededSafePoints =
false;
76 std::optional<bool> isGCManagedPointer(
const Type *Ty)
const override {
101 UseStatepoints =
true;
105 NeededSafePoints =
false;
106 UsesMetadata =
false;
109 std::optional<bool> isGCManagedPointer(
const Type *Ty)
const override {
123 "erlang-compatible garbage collector");
126 C(
"shadow-stack",
"Very portable GC for uncooperative code generators");
128 "an example strategy for statepoint");
This is an optimization pass for GlobalISel generic memory operations.
GCStrategy describes a garbage collector algorithm's code generation requirements,...
unsigned getAddressSpace() const
Return the address space of the Pointer type.
The instances of the Type class are immutable: once they are created, they are never changed.
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
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")
Class to represent pointers.
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
void linkAllBuiltinGCs()
FIXME: Collector instances are not useful on their own.
A static registration template.