@liangfu, I think this question goes to you best, :slight_smile:
The above question originates when I looked at this function in src/runtime/crt/packed_func.h: ``` TVMPackedFunc* g_fexecs = 0; uint32_t g_fexecs_count = 0; // Implement TVMModule::GetFunction // Put implementation in this file so we have seen the TVMPackedFunc static inline void TVMModule_GetFunction(TVMModule* mod, const char* name, TVMPackedFunc* pf) { int idx; memset(pf, 0, sizeof(TVMPackedFunc)); assert(strlen(name) <= sizeof(pf->name)); snprintf(pf->name, strlen(name), "%s", name); pf->Call = TVMPackedFunc_Call; pf->SetArgs = TVMPackedFunc_SetArgs; pf->fexec = &TVMNoOperation; for (idx = 0; idx < g_fexecs_count; idx++) { if (!strcmp(g_fexecs[idx].name, name)) { pf->fexec = g_fexecs[idx].fexec; break; } } if (idx == g_fexecs_count) { fprintf(stderr, "function handle for %s not found\n", name); } } ``` I cannot find where g_fexecs being initialized, which leads me to the TVMBackendRegisterSystemLibSymbol() function. However, I cannot find where it was invoked in TVM source tree. Thanks in advance. --- [Visit Topic](https://discuss.tvm.ai/t/how-is-tvm-module-startup-invoked/6891/2) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/bb5a5639acbd77acbf1593a46a55d9771a45e28f5f56842aa0b7395cd4efac86).