#include #include namespace torch::jit::mobile { BuildFeatureTracer::BuildFeatureTracer() { auto recorder_cb = [](const at::RecordFunction& fn) -> std::unique_ptr { std::string name = fn.name(); getBuildFeatures().withLock( [&](BuildFeatureTracer::build_feature_type& build_features) { build_features.insert(name); }); return nullptr; }; handle_ = at::addGlobalCallback(at::RecordFunctionCallback(recorder_cb) .scopes({at::RecordScope::BUILD_FEATURE})); } c10::Synchronized& BuildFeatureTracer:: getBuildFeatures() { static c10::Synchronized build_features; return build_features; } } // namespace torch::jit::mobile