1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Add documentation for the JIT feature.

As promised in earlier commits, this adds documentation about the new
build options, the new GUCs, about the planner logic when JIT is used,
and the benefits of JIT in general.

Also adds a more implementation oriented README.

I'm sure we're going to want to expand this further, but I think this
is a reasonable start.

Author: Andres Freund, with contributions by Thomas Munro
Reviewed-By: Thomas Munro
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de
This commit is contained in:
Andres Freund
2018-03-28 14:22:42 -07:00
parent 1f0c6a9e7d
commit e6c039d13e
9 changed files with 844 additions and 2 deletions

View File

@ -758,6 +758,39 @@ su - postgres
</listitem>
</varlistentry>
<varlistentry id="configure-with-llvm">
<term><option>--with-llvm</option></term>
<listitem>
<para>
Build with support for <productname>LLVM</productname> based
<acronym>JIT</acronym> compilation (see <xref linkend="jit"/>). This
requires the <productname>LLVM</productname> library to be installed.
The minimum required version of <productname>LLVM</productname> is
currently 3.9.
</para>
<para>
<command>llvm-config</command><indexterm><primary>llvm-config</primary></indexterm>
will be used to find the required compilation options.
<command>llvm-config</command>, and then
<command>llvm-config-$major-$minor</command> for all supported
versions, will be searched on <envar>PATH</envar>. If that would not
yield the correct binary, use <envar>LLVM_CONFIG</envar> to specify a
path to the correct <command>llvm-config</command>. For example
<programlisting>
./configure ... --with-llvm LLVM_CONFIG='/path/to/llvm/bin/llvm-config'
</programlisting>
</para>
<para>
<productname>LLVM</productname> support requires a compatible
<command>clang</command> compiler (specified, if necessary, using the
<envar>CLANG</envar> environment variable), and a working C++
compiler (specified, if necessary, using the <envar>CXX</envar>
environment variable).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--with-icu</option></term>
<listitem>
@ -1342,6 +1375,16 @@ su - postgres
</listitem>
</varlistentry>
<varlistentry>
<term><envar>CLANG</envar></term>
<listitem>
<para>
path to <command>clang</command> program used to process source code
for inlining when compiling with <literal>--with-llvm</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><envar>CPP</envar></term>
<listitem>
@ -1432,6 +1475,16 @@ su - postgres
</listitem>
</varlistentry>
<varlistentry>
<term><envar>LLVM_CONFIG</envar></term>
<listitem>
<para>
<command>llvm-config</command> program used to locate the
<productname>LLVM</productname> installation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><envar>MSGFMT</envar></term>
<listitem>