Lines Matching refs:pointers
11 types, there is a desire to remove pointee types from pointers.
33 Address spaces are still used to distinguish between different kinds of pointers
34 where the distinction is relevant for lowering (e.g. data vs function pointers
35 have different sizes on some architectures). Opaque pointers are not changing
37 `DataLayout <LangRef.html#langref-datalayout>`_. Opaque pointers in non-default
46 LLVM IR pointers can be cast back and forth between pointers with different
83 deal with bitcasts. When looking up through def-use chains for pointers it's
93 bitcast pointers, losing address space information.
107 mode all pointer types have a pointee type and opaque pointers cannot be used.
108 In opaque pointers mode (the default), all pointers are opaque. The opaque
109 pointer mode can be disabled using ``-opaque-pointers=0`` in
110 LLVM tools like ``opt``, or ``-Xclang -no-opaque-pointers`` in clang.
112 files that explicitly mention ``i8*`` style typed pointers.
114 In opaque pointer mode, all typed pointers used in IR, bitcode, or created
116 opaque pointers. This simplifies migration and allows testing existing IR with
117 opaque pointers.
126 ; Is automatically converted into the following if -opaque-pointers
137 In order to support opaque pointers, two types of changes tend to be necessary.
159 * To check that two pointers have the same element type, use
162 opaque pointers, ``Type::isOpaquePointerTy()`` and
163 ``PointerType::isOpaque()`` can be used to handle opaque pointers specially.
165 code-paths where opaque pointers have been explicitly excluded.
175 and opaque pointers at the same time, and will be dropped once the migration
177 meaningless once all pointers are opaque.
180 there is a more subtle issue that opaque pointers need to contend with: A lot
183 with typed and opaque pointers:
200 Without opaque pointers, a check that the pointer operand of the load and
205 With opaque pointers, the bitcast is not present, and this check is no longer
236 It is possible to control whether opaque pointers are used (if you want to
239 Temporarily disabling opaque pointers
242 In LLVM 15, opaque pointers are enabled by default, but it it still possible to
243 use typed pointers using a number of opt-in flags.
247 or by passing ``-Xclang -no-opaque-pointers`` to a single clang invocation.
249 For users of the clang cc1 interface, ``-no-opaque-pointers`` can be passed.
253 Usage for LTO can be disabled by passing ``-Wl,-plugin-opt=no-opaque-pointers``
256 For users of LLVM as a library, opaque pointers can be disabled by calling
259 For users of LLVM tools like opt, opaque pointers can be disabled by passing
260 ``-opaque-pointers=0``.
265 …pointers and deprecates/removes incompatible APIs. However, using opaque pointers in the optimizat…
267 **LLVM 15:** Opaque pointers are enabled by default. Typed pointers are still
270 **LLVM 16:** Opaque pointers are enabled by default. Typed pointers are
273 **LLVM 17:** Only opaque pointers are supported. Typed pointers are not
281 Typed pointers are **not** supported on the ``main`` branch.
286 * The ``-no-opaque-pointers`` cc1 clang flag is no longer supported.
287 * The ``-opaque-pointers`` opt flag is no longer supported.
288 * The ``-plugin-opt=no-opaque-pointers`` LTO flag is no longer supported.
289 * C APIs that do not support opaque pointers (like ``LLVMBuildLoad``) are no
294 * Various APIs that are no longer relevant with opaque pointers.