Lines Matching refs:JIT
2 Kaleidoscope: Adding JIT and Optimizer Support
15 language, and adding JIT compiler support. These additions will
159 "``TheExecutionEngine``" variable is related to the JIT, which we will
216 Adding a JIT Compiler
222 the code to an assembly file (.s) for some target, or you can JIT
226 In this section, we'll add JIT compiler support to our interpreter. The
233 In order to do this, we first declare and initialize the JIT. This is
242 // Create the JIT. This takes ownership of the module.
247 This creates an abstract "Execution Engine" which can be either a JIT
248 compiler or the LLVM interpreter. LLVM will automatically pick a JIT
252 Once the ``ExecutionEngine`` is created, the JIT is ready to be used.
254 "``getPointerToFunction(F)``" method. This method JIT compiles the
267 // JIT the function, returning a function pointer.
278 Because the LLVM JIT compiler matches the native platform ABI, this
281 between JIT compiled code and native machine code that is statically
324 a bit subtle going on here. Note that we only invoke the JIT on the
326 *testfunc* itself. What actually happened here is that the JIT scanned
327 for all non-JIT'd functions transitively called from the anonymous
331 The JIT provides a number of other more advanced interfaces for things
378 Whoa, how does the JIT know about sin and cos? The answer is
379 surprisingly simple: in this example, the JIT started execution of a
381 not yet JIT compiled and invoked the standard set of routines to resolve
383 so the JIT ended up calling "``dlsym("sin")``" on the Kaleidoscope
384 process itself. Since "``sin``" is defined within the JIT's address
388 The LLVM JIT provides a number of interfaces (look in the
393 the fly based on the function name, and even allows you to have the JIT
415 This completes the JIT and optimizer chapter of the Kaleidoscope
417 programming language, optimize and JIT compile it in a user-driven way.
426 the LLVM JIT and optimizer. To build this example, use: