@@ -30,20 +30,38 @@ switching to `Opaque Pointers <https://llvm.org/docs/OpaquePointers.html>`_:
3030 therefore may have bugs that go unfixed).
3131- In LLVM 17, support for Typed Pointers is removed.
3232
33- Although Opaque Pointers are already the default in LLVM 15, llvmlite still uses
34- Typed Pointers by default with LLVM 15.
33+ Although Opaque Pointers are already the default in LLVM 15, llvmlite still used
34+ Typed Pointers by default with LLVM 15 in llvmlite 0.44.
35+
36+ The binding layer will move to using Opaque Pointers. The IR layer will still
37+ support both Typed and Opaque Pointers, defaulting to Typed Pointers when
38+ pointee types are provided. This allows llvmlite to continue being used with
39+ LLVM-based projects that use an older LLVM version, such as `NVVM
40+ <https://docs.nvidia.com/cuda/nvvm-ir-spec/> `_.
3541
3642Examples(s) of the impact
3743-------------------------
3844
39- Code that uses llvmlite to work with pointers or to parse assembly that uses
40- pointers will break if not modified to use opaque pointers.
45+ In a future release, code that uses llvmlite to work with Typed Pointers or
46+ generate IR with Typed Pointers will break if not modified to use Opaque
47+ Pointers.
48+
49+ In the meantime, IR generated by the IR layer and parsed by the binding layer
50+ will be auto-upgraded to use Opaque Pointers transparently; no action is
51+ required by the user.
4152
4253Schedule
4354--------
4455
45- - In llvmlite 0.44, Opaque Pointers will be the default pointer kind.
46- - In llvmlite 0.45, support for Typed Pointers will be removed.
56+ - In llvmlite 0.45, support for Typed Pointers in the binding layer will be
57+ removed. The IR layer will still use Typed Pointers by default.
58+ - In a future version of llvmlite (>= 0.46), the IR layer will use Opaque
59+ Pointers by default.
60+ - In a subsequent version of llvmlite (>= 0.47), support for Typed Pointers at
61+ the IR layer will be removed.
62+
63+ This schedule may be updated to push out the deprecation / removal of Typed
64+ Pointer support to still later versions of llvmlite.
4765
4866Recommendations
4967---------------
@@ -127,7 +145,8 @@ When working with global variables and functions (which will be :class:`ValueRef
127145
128146When passing assembly to :func: `llvmlite.binding.parse_assembly `:
129147
130- - Ensure that any IR passed to ``parse_assembly() `` uses Opaque Pointers.
148+ - IR passed to ``parse_assembly() `` is free to use either Typed or Opaque
149+ Pointers.
131150
132151
133152Deprecation of `llvmlite.llvmpy ` module
0 commit comments