1 #ifndef HALIDE_OBJECT_INSTANCE_REGISTRY_H
2 #define HALIDE_OBJECT_INSTANCE_REGISTRY_H
55 const void *introspection_helper);
72 void *subject_ptr =
nullptr;
75 bool registered_for_introspection =
false;
77 InstanceInfo() =
default;
78 InstanceInfo(
size_t size,
Kind kind,
void *subject_ptr,
bool registered_for_introspection)
79 : subject_ptr(subject_ptr), size(size), kind(kind), registered_for_introspection(registered_for_introspection) {
84 std::map<uintptr_t, InstanceInfo> instances;
86 ObjectInstanceRegistry() =
default;
static std::vector< void * > instances_in_range(void *start, size_t size, Kind kind)
Returns the list of subject pointers for objects that have been directly registered within the given ...
ObjectInstanceRegistry & operator=(ObjectInstanceRegistry &&)=delete
ObjectInstanceRegistry(const ObjectInstanceRegistry &)=delete
ObjectInstanceRegistry & operator=(const ObjectInstanceRegistry &)=delete
static void unregister_instance(void *this_ptr)
Remove an instance from the registry.
static void register_instance(void *this_ptr, size_t size, Kind kind, void *subject_ptr, const void *introspection_helper)
Add an instance to the registry.
ObjectInstanceRegistry(ObjectInstanceRegistry &&)=delete
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.