On Tue, 30 Sep 2025 14:04:13 +0200
Laurenz Albe <[email protected]> wrote:

> On Fri, 2025-06-27 at 16:19 +0900, Yugo Nagata wrote:
> > On Mon, 26 May 2025 19:17:53 +1200
> > David Rowley <[email protected]> wrote:
> > 
> > > On Mon, 26 May 2025 at 18:08, Yugo Nagata <[email protected]> wrote:
> > > > While building PostgreSQL 17 on Windows, I noticed bitcode files (.bc) 
> > > > are not
> > > > generated with meson. Does this means that "inlining" of JIT doesn't
> > > > work when PostgreSQL is build with meson?
> > > 
> > > Yes.  I believe [1] aims to fix this.
> > > 
> > > [1] https://commitfest.postgresql.org/patch/5671/
> > 
> > Thank you for the clarification.
> > 
> > I've attached a patch to update the documentation.
> > I believe it's worth stating this explicitly, since the fix will not be
> > applied until at the earliest PostgreSQL 19.
> 
> I think that it is a good idea to document this lack of functionality.

Thank you for taking a look at it.

> One thing stood out to me:
> 
> > --- a/doc/src/sgml/jit.sgml
> > +++ b/doc/src/sgml/jit.sgml
> > @@ -36,7 +36,8 @@
> >     <acronym>JIT</acronym> compilation using <ulink
> >     url="https://llvm.org/";><productname>LLVM</productname></ulink> when
> >     <productname>PostgreSQL</productname> is built with
> > -   <link 
> > linkend="configure-with-llvm"><literal>--with-llvm</literal></link>.
> > +   <link 
> > linkend="configure-with-llvm"><literal>--with-llvm</literal></link>
> > +   or <link 
> > linkend="configure-with-llvm-meson"><option>-Dllvm</option></link>.
> 
> You used the <option> tag, which I believe is correct, but the surrounding
> code uses <literal>.  I don't think it renders differently, but I think it
> would be good to use the same tag.  I suggest that you change the
> surrounding code to use <option> as well.

Agreed. I fixed it to use <option>, as well as in other place where I think
<option> is appropriate. Please find the attached patch.

> v18 is already shipped, and we don't know if the patch to produce bitcode
> with Meson will make v19 or not.  Consequently, I don't know if we should
> apply the patch to git HEAD yet.  But I believe that it should be
> backpatched to all older releases, since this is a shortcoming in the
> documentation.

+1.

Regards,
Yugo Nagata

-- 
Yugo Nagata <[email protected]>
diff --git a/doc/src/sgml/jit.sgml b/doc/src/sgml/jit.sgml
index 44e18bf1a6f..d5373061e3a 100644
--- a/doc/src/sgml/jit.sgml
+++ b/doc/src/sgml/jit.sgml
@@ -36,7 +36,8 @@
    <acronym>JIT</acronym> compilation using <ulink
    url="https://llvm.org/";><productname>LLVM</productname></ulink> when
    <productname>PostgreSQL</productname> is built with
-   <link linkend="configure-with-llvm"><literal>--with-llvm</literal></link>.
+   <link linkend="configure-with-llvm"><option>--with-llvm</option></link>
+   or <link linkend="configure-with-llvm-meson"><option>-Dllvm</option></link>.
   </para>
 
   <para>
@@ -76,6 +77,15 @@
     bodies of small functions into the expressions using them. That allows a
     significant percentage of the overhead to be optimized away.
    </para>
+   <note>
+    <para>
+    Inlining does not work if <productname>PostgreSQL</productname> is built using
+    <application>Meson</application> with
+    <link linkend="configure-with-llvm-meson"><option>-Dllvm</option></link>,
+    because the <productname>LLVM</productname> bitcode is not built.
+    See <xref linkend="jit-extensibility-bitcode"/> for more details about bitcode.
+    </para>
+   </note>
   </sect2>
 
   <sect2 id="jit-optimization">
@@ -133,7 +143,7 @@
    <para>
     If <xref linkend="guc-jit"/> is set to <literal>off</literal>, or if no
     <acronym>JIT</acronym> implementation is available (for example because
-    the server was compiled without <literal>--with-llvm</literal>),
+    the server was compiled without <option>--with-llvm</option>),
     <acronym>JIT</acronym> will not be performed, even if it would be
     beneficial based on the above criteria.  Setting <xref linkend="guc-jit"/>
     to <literal>off</literal> has effects at both plan and execution time.

Reply via email to