@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).