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

Reply via email to