<div dir="ltr"><div>Nice!</div><div>Let me try to answer some questions, <br></div><div>Before that I have to mention this is ORC version 2 APIs and this is where the project is moving forward. <br></div><div>JITDylib is the symbol table, basically for a JIT Symbol it have an associated materializers, (you can think of it like an entity that generate the address for that symbol),  <br></div><div>Example: compiler are materializers.</div><div>So to add symbols to your own JIT you can define them in JITDylib. <br></div><div><br></div><div>For example, Suppose you want to add "your host process (on which JIT runs) symbols to the JIT". <br></div><div>You can do <br></div><div>JD.setGenerator(DynamicLibrarySearchGenerator::GetForCurrentProcess(DL.getGlobalPrefix())) <br></div><div><br></div><div>Under hood, ORC normally search for your host symbols in the defGenerator if it can't find symbols anywhere else. <br></div><div> You can look at core.cpp at line 1163 to see how it works!</div><div><br></div><div>I highly recommended you to watch "Updating ORC for Concurrency" dev meeting talks, it is explained in detail,, </div><div>For question 4, I don't know maybe If I know after sometime I will write here :) <br></div><div><br></div><div>Thanks <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 27 Jun 2019 at 14:00, Gaier, Bjoern <<a href="mailto:Bjoern.Gaier@horiba.com">Bjoern.Gaier@horiba.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_2522667533607468957WordSection1">
<p class="MsoNormal">Hey Praveen,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks for your help! I still have questions and try providing some context.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">For questions:<u></u><u></u></p>
<p class="MsoNormal">2.) I exactly mean that! Sadly I was not able to understand how to use the ‘define’ function, I tried that:<u></u><u></u></p>
<p class="MsoNormal"><img style="width: 9.6041in; height: 0.7291in;" id="gmail-m_2522667533607468957Picture_x0020_1" src="cid:16b981842d04cff311" width="922" height="70"><u></u><u></u></p>
<p class="MsoNormal">I had no idea how to deal with that >o<<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">2.1.) With MCJIT I was actually used to getting the name of a function and then ‘answering’ with an address. Is that behavior not possible with OrcJIT anymore? I actually tried looking into the ‘setGenerator’ function of the JITDylib. As
 a test I came up with this:<u></u><u></u></p>
<p class="MsoNormal"><img style="width: 4.7395in; height: 1.6666in;" id="gmail-m_2522667533607468957Picture_x0020_2" src="cid:16b981842d15b16b22" width="455" height="160"><u></u><u></u></p>
<p class="MsoNormal">This was pretty cool, because I actually saw the missing function ‘puts’ but I have no idea how to reply with an  address for ‘puts’. Returning ‘Names’ actually makes the application pause and not go on.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">4.) I used the code of Kaleidoscope JIT for my little experiments. If I understood it correctly, the JIT process is completed after I used the lookup function to find a symbol in the code. Now I would like to reset the instance of the Kaleidoscope
 JIT I had, to jit new modules, which are not related to the previous modules I jitted.<u></u><u></u></p>
<p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal">Kind greetings<u></u><u></u></p>
<p class="MsoNormal">Björn<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>From:</b> Praveen Velliengiri <<a href="mailto:praveenvelliengiri@gmail.com" target="_blank">praveenvelliengiri@gmail.com</a>>
<br>
<b>Sent:</b> Donnerstag, 27. Juni 2019 08:21<br>
<b>To:</b> Gaier, Bjoern <<a href="mailto:Bjoern.Gaier@horiba.com" target="_blank">Bjoern.Gaier@horiba.com</a>>; Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>><br>
<b>Cc:</b> llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [llvm-dev] Questions about moving from MCJIT to Orc JIT<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">Hi Bjoern,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">CC'ing Lang hames <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">For questions,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">1. In short yes, you can replace the memory manager, default one provided is section memory manager.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">2. If you mean by " address of already compiled code", yes you can do that.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> Like this<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> JITDylib.define(absoluteSymbols, ( Your_own_symbol , JITTargetAddress(Address of function))), now ORC can resolve all the references to Your_own_symbol to the provided the Address.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">3. Yes, all the class/function with legacy prefix will be removed in subsequent releases.
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">4. Could please provide some more context on this? Like it's usage model, what goal you are aiming for?
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
Als GmbH eingetragen im Handelsregister Bad Homburg v.d.H. HRB 9816, USt.ID-Nr. DE 114 165 789 Geschäftsführer: Dr. Hiroshi Nakamura, Dr. Robert Plank, Markus Bode, Heiko Lampert, Takashi Nagano, Takeshi Fukushima. Junichi Tajika
</div>

</blockquote></div>