jit: Use opaque pointers in all supported LLVM versions.
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 1 Oct 2024 09:05:51 +0000 (05:05 -0400)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 1 Oct 2024 10:10:15 +0000 (06:10 -0400)
commitee4859123e3d47aef8cfe078f7faee2ebcecb613
tree9fe243917dd9ee551b661c669384c5b5d2909fb3
parent972c2cd2882b6dd7a2059d030d03e89dae47ede7
jit: Use opaque pointers in all supported LLVM versions.

LLVM's opaque pointer change began in LLVM 14, but remained optional
until LLVM 16.  When commit 37d5babb added opaque pointer support, we
didn't turn it on for LLVM 14 and 15 yet because we didn't want to risk
weird bitcode incompatibility problems in released branches of
PostgreSQL.  (That might have been overly cautious, I don't know.)

Now that PostgreSQL 18 has dropped support for LLVM versions < 14, and
since it hasn't been released yet and no extensions or bitcode have been
built against it in the wild yet, we can be more aggressive.  We can rip
out the support code and build system clutter that made opaque pointer
use optional.

Author: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussions: https://postgr.es/m/CA%2BhUKGLhNs5geZaVNj2EJ79Dx9W8fyWUU3HxcpZy55sMGcY%3DiA%40mail.gmail.com
configure
configure.ac
src/backend/jit/llvm/llvmjit.c
src/backend/jit/llvm/meson.build
src/include/jit/llvmjit_emit.h