<div dir="ltr"><div dir="ltr">With regard to using LLVM to implement a JIT compiler,<div><br></div><div>This can be considered to consist of two stages, first generating intermediate code in SSA form and second JIT-compiling it to machine code.</div><div><br></div><div>The JIT API has undergone large changes in recent years with the move to ORC.</div><div><br></div><div>Do I understand correctly that this only affects the second stage? So when I look at the Kaleidoscope tutorial, e.g. chapter 3 <a href="https://llvm.org/docs/tutorial/LangImpl03.html">https://llvm.org/docs/tutorial/LangImpl03.html</a> which is one of the chapters acknowledged to have been not yet updated, the example code for the first stage, generating intermediate code, starts with</div><div><br></div><div><div>static LLVMContext TheContext;</div><div>static IRBuilder<> Builder(TheContext);</div><div>static std::unique_ptr<Module> TheModule;</div><div>static std::map<std::string, Value *> NamedValues;</div></div><div><br></div><div>Is this still considered to be correct, unaffected by the move to ORC?</div></div></div>