@@ -30,20 +30,38 @@ switching to `Opaque Pointers <https://llvm.org/docs/OpaquePointers.html>`_:
30
30
therefore may have bugs that go unfixed).
31
31
- In LLVM 17, support for Typed Pointers is removed.
32
32
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/> `_.
35
41
36
42
Examples(s) of the impact
37
43
-------------------------
38
44
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.
41
52
42
53
Schedule
43
54
--------
44
55
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.
47
65
48
66
Recommendations
49
67
---------------
@@ -127,7 +145,8 @@ When working with global variables and functions (which will be :class:`ValueRef
127
145
128
146
When passing assembly to :func: `llvmlite.binding.parse_assembly `:
129
147
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.
131
150
132
151
133
152
Deprecation of `llvmlite.llvmpy ` module
0 commit comments