Lines Matching refs:JIT
2 Kaleidoscope: Adding JIT and Optimizer Support
15 language, and adding JIT compiler support. These additions will
139 (* Create the JIT. *)
169 The "``the_execution_engine``" variable is related to the JIT, which we
229 Adding a JIT Compiler
235 the code to an assembly file (.s) for some target, or you can JIT
239 In this section, we'll add JIT compiler support to our interpreter. The
246 In order to do this, we first declare and initialize the JIT. This is
254 (* Create the JIT. *)
258 This creates an abstract "Execution Engine" which can be either a JIT
259 compiler or the LLVM interpreter. LLVM will automatically pick a JIT
263 Once the ``Llvm_executionengine.ExecutionEngine.t`` is created, the JIT
267 method JIT compiles the specified LLVM Function and returns a function
280 (* JIT the function, returning a function pointer. *)
290 Because the LLVM JIT compiler matches the native platform ABI, this
293 between JIT compiled code and native machine code that is statically
334 a bit subtle going on here. Note that we only invoke the JIT on the
336 *testfunc* itself. What actually happened here is that the JIT scanned
337 for all non-JIT'd functions transitively called from the anonymous
341 The JIT provides a number of other more advanced interfaces for things
375 Whoa, how does the JIT know about sin and cos? The answer is
376 surprisingly simple: in this example, the JIT started execution of a
378 not yet JIT compiled and invoked the standard set of routines to resolve
380 so the JIT ended up calling "``dlsym("sin")``" on the Kaleidoscope
381 process itself. Since "``sin``" is defined within the JIT's address
385 The LLVM JIT provides a number of interfaces (look in the
390 the fly based on the function name, and even allows you to have the JIT
412 This completes the JIT and optimizer chapter of the Kaleidoscope
414 programming language, optimize and JIT compile it in a user-driven way.
423 the LLVM JIT and optimizer. To build this example, use:
797 * Top-Level parsing and JIT Driver
831 (* JIT the function, returning a function pointer. *)
872 (* Create the JIT. *)