diff options
| author | Lang Hames <lhames@gmail.com> | 2016-05-27 22:34:56 +0000 | 
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2016-05-27 22:34:56 +0000 | 
| commit | 88cec7f7c071b328c5f926f1e41473ec24616394 (patch) | |
| tree | 56a803b8afe3d40f5e3456bb4f11c99bd1da37ab /llvm/docs | |
| parent | b0195f28d7f63f24ad7b54fcb36f0de9ffaca766 (diff) | |
| download | bcm5719-llvm-88cec7f7c071b328c5f926f1e41473ec24616394.tar.gz bcm5719-llvm-88cec7f7c071b328c5f926f1e41473ec24616394.zip  | |
[Kaleidoscope][BuildingAJIT] Add stub chapter text for Building A JIT Chapter 4.
llvm-svn: 271064
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/tutorial/BuildingAJIT4.rst | 48 | 
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/docs/tutorial/BuildingAJIT4.rst b/llvm/docs/tutorial/BuildingAJIT4.rst new file mode 100644 index 00000000000..39d9198a85c --- /dev/null +++ b/llvm/docs/tutorial/BuildingAJIT4.rst @@ -0,0 +1,48 @@ +=========================================================================== +Building a JIT: Extreme Laziness - Using Compile Callbacks to JIT from ASTs +=========================================================================== + +.. contents:: +   :local: + +**This tutorial is under active development. It is incomplete and details may +change frequently.** Nonetheless we invite you to try it out as it stands, and +we welcome any feedback. + +Chapter 4 Introduction +====================== + +Welcome to Chapter 4 of the "Building an ORC-based JIT in LLVM" tutorial. This +chapter introduces the Compile Callbacks and Indirect Stubs APIs and shows how +they can be used to replace the CompileOnDemand layer from +`Chapter 3 <BuildingAJIT3.html>`_ with a custom lazy-JITing scheme that JITs +directly from Kaleidoscope ASTs. + +**To be done:** + +**(1) Describe the drawbacks of JITing from IR (have to compile to IR first, +which reduces the benefits of laziness).** + +**(2) Describe CompileCallbackManagers and IndirectStubManagers in detail.** + +**(3) Run through the implementation of addFunctionAST.** + +Full Code Listing +================= + +Here is the complete code listing for our running example that JITs lazily from +Kaleidoscope ASTS. To build this example, use: + +.. code-block:: bash + +    # Compile +    clang++ -g toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core orc native` -O3 -o toy +    # Run +    ./toy + +Here is the code: + +.. literalinclude:: ../../examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h +   :language: c++ + +`Next: Remote-JITing -- Process-isolation and laziness-at-a-distance <BuildingAJIT5.html>`_  | 

