mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-21 03:05:26 -04:00
[BuildingAJIT] Fix a couple of typos in the Chapter 3 draft.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278033 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -19,14 +19,14 @@ CompileOnDemand layer the JIT from `Chapter 2 <BuildingAJIT2.html>`_.
|
||||
Lazy Compilation
|
||||
================
|
||||
|
||||
When we add a module to the KaleidoscopeJIT class described in Chapter 2 it is
|
||||
When we add a module to the KaleidoscopeJIT class from Chapter 2 it is
|
||||
immediately optimized, compiled and linked for us by the IRTransformLayer,
|
||||
IRCompileLayer and ObjectLinkingLayer respectively. This scheme, where all the
|
||||
work to make a Module executable is done up front, is simple to understand its
|
||||
performance characteristics are easy to reason about. However, it will lead to
|
||||
very high startup times if the amount of code to be compiled is large, and may
|
||||
also do a lot of unnecessary compilation if only a few compiled functions are
|
||||
ever called at runtime. A truly "just-in-time" compiler should allow us to
|
||||
work to make a Module executable is done up front, is simple to understand and
|
||||
its performance characteristics are easy to reason about. However, it will lead
|
||||
to very high startup times if the amount of code to be compiled is large, and
|
||||
may also do a lot of unnecessary compilation if only a few compiled functions
|
||||
are ever called at runtime. A truly "just-in-time" compiler should allow us to
|
||||
defer the compilation of any given function until the moment that function is
|
||||
first called, improving launch times and eliminating redundant work. In fact,
|
||||
the ORC APIs provide us with a layer to lazily compile LLVM IR:
|
||||
|
||||
Reference in New Issue
Block a user