Fix mistakes in the just added JIT docs.
Reported-By: Lukas Fittl Author: Andres Freund
This commit is contained in:
parent
e6c039d13e
commit
a0a08c1d85
@ -7498,7 +7498,7 @@ SET XML OPTION { DOCUMENT | CONTENT };
|
||||
used. The built-in default is <literal>llvmjit</literal>.
|
||||
</para>
|
||||
<para>
|
||||
If set to a non-existent library <acronym>JIT</acronym> will not
|
||||
If set to a non-existent library <acronym>JIT</acronym> will not be
|
||||
available, but no error will be raised. This allows JIT support to be
|
||||
installed separately from the main
|
||||
<productname>PostgreSQL</productname> package.
|
||||
|
@ -32,9 +32,9 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<productname>PostgreSQL</productname> has builtin support perform
|
||||
<productname>PostgreSQL</productname> has builtin support to perform
|
||||
<acronym>JIT</acronym> using <ulink
|
||||
url="https://llvm.org/"><productname>LLVM</productname></ulink> when built
|
||||
url="https://llvm.org/"><productname>LLVM</productname></ulink> when
|
||||
<productname>PostgreSQL</productname> was built with
|
||||
<literal>--with-llvm</literal> (see <xref linkend="configure-with-llvm"/>).
|
||||
</para>
|
||||
|
@ -74,7 +74,7 @@ the shared library providing JIT support can be loaded (i.e. postgres
|
||||
was compiled with LLVM support and the shared library is installed),
|
||||
the task of JIT compiling an expression gets handed of to shared
|
||||
library. This obviously requires that the function in jit.c is allowed
|
||||
to fail in case not JIT provider can be loaded.
|
||||
to fail in case no JIT provider can be loaded.
|
||||
|
||||
Which shared library is loaded is determined by the jit_provider GUC,
|
||||
defaulting to "llvmjit".
|
||||
@ -174,7 +174,7 @@ least a few postgres types. While it is possible to inform LLVM about
|
||||
type definitions by recreating them manually in C code, that is failure
|
||||
prone and labor intensive.
|
||||
|
||||
Instead the is one small file (llvmjit_types.c) which references each of
|
||||
Instead there is one small file (llvmjit_types.c) which references each of
|
||||
the types required for JITing. That file is translated to bitcode at
|
||||
compile time, and loaded when LLVM is initialized in a backend.
|
||||
|
||||
@ -232,10 +232,16 @@ an ExprState, rather than absolute pointers into memory.
|
||||
|
||||
Once that is addressed, adding an LRU cache that's keyed by the
|
||||
generated LLVM IR will allow to use optimized functions even for
|
||||
shorter functions.
|
||||
faster queries.
|
||||
|
||||
A longer term project is to move expression compilation to the planner
|
||||
stage, allowing to tie
|
||||
stage, allowing e.g. to tie compiled expressions to prepared
|
||||
statements.
|
||||
|
||||
An even more advanced approach would be to use JIT with few
|
||||
optimizations initially, and build an optimized version in the
|
||||
background. But that's even further off.
|
||||
|
||||
|
||||
What to JIT
|
||||
===========
|
||||
|
Loading…
x
Reference in New Issue
Block a user