llvm-project/llvm/bindings/ocaml
Nikita Popov 5548e807b5 [IR] Remove support for extractvalue constant expression
This removes the extractvalue constant expression, as part of
https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179.
extractvalue is already not supported in bitcode, so we do not need
to worry about bitcode auto-upgrade.

Uses of ConstantExpr::getExtractValue() should be replaced with
IRBuilder::CreateExtractValue() (if the fact that the result is
constant is not important) or ConstantFoldExtractValueInstruction()
(if it is). Though for this particular case, it is also possible
and usually preferable to use getAggregateElement() instead.

The C API function LLVMConstExtractValue() is removed, as the
underlying constant expression no longer exists. Instead,
LLVMBuildExtractValue() should be used (which will constant fold
or create an instruction). Depending on the use-case,
LLVMGetAggregateElement() may also be used instead.

Differential Revision: https://reviews.llvm.org/D125795
2022-06-28 10:40:17 +02:00
..
all_backends [NFC][OCaml] Remove vestigial CAMLprim declarations 2021-04-05 10:55:08 +01:00
analysis [NFC][OCaml] Remove vestigial CAMLprim declarations 2021-04-05 10:55:08 +01:00
backends [NFC][OCaml] Remove vestigial CAMLprim declarations 2021-04-05 10:55:08 +01:00
bitreader [NFC][OCaml] Reformat to clean up following CAMLprim removal 2021-04-05 10:55:08 +01:00
bitwriter [NFC][OCaml] Remove vestigial CAMLprim declarations 2021-04-05 10:55:08 +01:00
debuginfo [OCaml][DebugInfo] Add bindings for parameter and auto variable creation 2022-04-24 09:37:04 +05:30
executionengine [NFC][OCaml] Reformat to clean up following CAMLprim removal 2021-04-05 10:55:08 +01:00
irreader [NFC][OCaml] Reformat to clean up following CAMLprim removal 2021-04-05 10:55:08 +01:00
linker [NFC][OCaml] Reformat to clean up following CAMLprim removal 2021-04-05 10:55:08 +01:00
llvm [IR] Remove support for extractvalue constant expression 2022-06-28 10:40:17 +02:00
target [NFC][OCaml] Reformat to clean up following CAMLprim removal 2021-04-05 10:55:08 +01:00
transforms [ArgPromotion] Remove legacy PM support 2022-06-27 09:42:17 +02:00
.ocamlformat
CMakeLists.txt
README.txt [llvm] [bindings/OCaml] Remove unused dep on ounit2 2022-02-16 19:30:25 +01:00

README.txt

This directory contains LLVM bindings for the OCaml programming language
(http://ocaml.org).

Prerequisites
-------------

* OCaml 4.00.0+.
* ctypes 0.4+.
* CMake (to build LLVM).

Building the bindings
---------------------

If all dependencies are present, the bindings will be built and installed
as a part of the default CMake configuration, with no further action.
They will only work with the specific OCaml compiler detected during the build.

The bindings can also be built out-of-tree, i.e. targeting a preinstalled
LLVM. To do this, configure the LLVM build tree as follows:

    $ cmake -DLLVM_OCAML_OUT_OF_TREE=TRUE \
            -DCMAKE_INSTALL_PREFIX=[Preinstalled LLVM path] \
            -DLLVM_OCAML_INSTALL_PATH=[OCaml install prefix] \
            [... any other options]

then build and install it as:

    $ make ocaml_all
    $ cmake -P bindings/ocaml/cmake_install.cmake