<div dir="ltr"><div dir="ltr">Hi Geoff,<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">We always compile and execute in the same process, so I don't imagine that would make any difference to us...?</blockquote><div><br></div><div>The runtime would be required for both in-process and out-of-process JITing if you use any features that depend on it. Existing and planned features that would require the runtime include: lazy compilation, exception handling, static initializer / destructors, thread local variables, and API based target memory access. Failure to load the runtime will cause any of these features to issue an error when used (probably a "failed to resolve symbol XXX" for the corresponding runtime implementation symbol).</div><div><br></div><div>So you'll need to build compiler-rt and ship the orc runtime alongside your JIT to use any of the features above.</div><div><br></div><div>-- Lang.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 20, 2021 at 10:04 AM Geoff Levner <<a href="mailto:glevner@gmail.com">glevner@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">We always compile and execute in the same process, so I don't imagine that would make any difference to us...?</div><div dir="ltr"><br></div><div>Geoff<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 19, 2021 at 11:08 PM Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Big question for JIT clients: Does anyone have any objection to APIs in ORC *relying* on the runtime being loaded in the target? If so, now is the time to let me know. :)</div><div><br></div><div>I think possible objections are JIT'd program startup time (unlikely to be very high, and likely fixable via careful runtime design and pre-linking of parts of the runtime), and difficulties building compiler-rt (which sounds like something we should fix in compiler-rt).</div><div><br></div><div>If we can assume that the runtime is loadable then we can significantly simplify the TargetProcess library, and TargetProcessControl API, and further accelerate feature development in LLVM 13.</div><div><br></div><div>-- Lang.</div></div></div><br></blockquote></div></div>
</blockquote></div>