Re: LLVM 16 (opaque pointers)
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Devrim Gündüz <devrim@gunduz.org>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Fabien COELHO <coelho@cri.ensmp.fr>, Ronan Dunklau <ronan.dunklau@aiven.io>, Andres Freund <andres@anarazel.de>, Dmitry Dolgov <9erthalion6@gmail.com>
Date: 2023-10-11T08:59:50Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
jit: Adjust back-patch of f90b4a84 to 12 and 13.
- 9ad98627614b 12.17 landed
- 7c070e224c4a 13.13 landed
-
Log LLVM library version in configure output.
- 0a6e2c7f8694 11.22 landed
- 527e62a5e5d7 12.17 landed
- a13b63c788a3 13.13 landed
- 03e749c2b89e 14.10 landed
- 0e49e23782c5 15.5 landed
- 3b0f20f6ce14 16.1 landed
- 5e4dacb9878c 17.0 landed
-
jit: Changes for LLVM 17.
- 7da915e33abf 12.17 landed
- 53c4dabe18d3 13.13 landed
- 0a8b7d5c1126 14.10 landed
- b60e3ac7603d 15.5 landed
- 774185056834 16.1 landed
- 76200e5ee469 17.0 landed
-
jit: Supply LLVMGlobalGetValueType() for LLVM < 8.
- 60596f148a66 16.1 landed
- d701f0d1f3e7 12.17 landed
- 981292c19f38 13.13 landed
- ee3e4c41f354 14.10 landed
- b2e097788663 15.5 landed
- f90b4a846b32 17.0 landed
-
jit: Support opaque pointers in LLVM 16.
- 15ddc9725eb7 12.17 landed
- f28956b239f1 13.13 landed
- 82d9a782a296 14.10 landed
- eed1feb3fee1 15.5 landed
- 74d19ec096df 16.1 landed
- 37d5babb5cfa 17.0 landed
-
jit: Reference function pointer types via llvmjit_types.c.
- df99ddc70b97 14.0 cited
Attachments
- v3-0001-jit-Support-opaque-pointers-in-LLVM-16.patch (application/x-patch) patch v3-0001
- v3-0002-jit-Changes-for-LLVM-17.patch (application/x-patch) patch v3-0002
On Thu, Sep 21, 2023 at 12:47 PM Thomas Munro <thomas.munro@gmail.com> wrote: > On Thu, Sep 21, 2023 at 12:24 PM Devrim Gündüz <devrim@gunduz.org> wrote: > > RHEL releases new LLVM version along with their new minor releases every > > 6 month, and we have to build older versions with new LLVM each time. > > From RHEL point of view, it would be great if we can back-patch back to > > v12 :( > > Got it. OK, I'll work on 12 and 13 now. The back-patch to 12 was a little trickier than anticipated, but after taking a break and trying again I now have PG 12...17 patches that I've tested against LLVM 10...18 (that's 54 combinations), in every case only with the clang corresponding to LLVM. For 12, I decided to back-patch the llvm_types_module variable that was introduced in 13, to keep the code more similar. For master, I had to rebase over Daniel's recent commits, which required re-adding unused variables removed by 2dad308e, and then changing a bunch of LLVM type constructors like LLVMInt8Type() to the LLVMInt8TypeInContext(lc, ...) variants following the example of 9dce2203. Without that, type assertions in my LLVM 18 debug build would fail (and maybe there could be a leak problem, though I'm not sure that really applied to integer (non-struct) types). I've attached only the patches for master, but the 12-16 versions are available at https://github.com/macdice/postgres/tree/llvm16-$N in case anyone has comments on those.