@@ -74,7 +74,7 @@ the shared library providing JIT support can be loaded (i.e. postgres
7474was compiled with LLVM support and the shared library is installed),
7575the task of JIT compiling an expression gets handed of to shared
7676library. This obviously requires that the function in jit.c is allowed
77- to fail in case not JIT provider can be loaded.
77+ to fail in case no JIT provider can be loaded.
7878
7979Which shared library is loaded is determined by the jit_provider GUC,
8080defaulting to "llvmjit".
@@ -174,7 +174,7 @@ least a few postgres types. While it is possible to inform LLVM about
174174type definitions by recreating them manually in C code, that is failure
175175prone and labor intensive.
176176
177- Instead the is one small file (llvmjit_types.c) which references each of
177+ Instead there is one small file (llvmjit_types.c) which references each of
178178the types required for JITing. That file is translated to bitcode at
179179compile time, and loaded when LLVM is initialized in a backend.
180180
@@ -232,10 +232,16 @@ an ExprState, rather than absolute pointers into memory.
232232
233233Once that is addressed, adding an LRU cache that's keyed by the
234234generated LLVM IR will allow to use optimized functions even for
235- shorter functions .
235+ faster queries .
236236
237237A longer term project is to move expression compilation to the planner
238- stage, allowing to tie
238+ stage, allowing e.g. to tie compiled expressions to prepared
239+ statements.
240+
241+ An even more advanced approach would be to use JIT with few
242+ optimizations initially, and build an optimized version in the
243+ background. But that's even further off.
244+
239245
240246What to JIT
241247===========
0 commit comments