<div dir="rtl"><div dir="ltr">In MCJIT, the old JIT functions are deprecated in favor of getFunctionAddress. </div><div dir="ltr">Code like:</div><div dir="ltr"><br></div><div dir="ltr"><div dir="ltr"><font face="courier new, monospace">  llvm::Function *F = M->getFunction(FuncName);</font></div>

<div dir="ltr"><font face="courier new, monospace">  void *FN = EE->getPointerToFunction(F);</font></div><div><br></div><div>should be rewritten as</div><div><br></div><div><div><font face="courier new, monospace">  uint64_t FN = EE->getFunctionAddress(FuncName);</font></div>

</div><div><br></div><div>While functionally identical, in case the correct module is known the new version will be much slower, linear with the number of added (but not loaded) modules, since it has to (possibly) search for the correct module while old code directly searches the correct module.</div>

<div><br></div><div>To solve the issue, getFunctionAddress could get an optional Module "hint" (=NULL by default) which - if provided - will make getSymbolAddress skip calling findModuleForSymbol (a very slow operation) and instead directly use the Module provided.</div>

<div><br></div><div>Yaron</div><div><br></div></div></div>